Changeset 3436689
- Timestamp:
- 01/10/2026 03:35:09 PM (3 months ago)
- Location:
- mayo-events-manager
- Files:
-
- 179 added
- 9 edited
-
tags/1.8.2 (added)
-
tags/1.8.2/CLAUDE.md (added)
-
tags/1.8.2/CONTRIBUTE.md (added)
-
tags/1.8.2/LICENSE (added)
-
tags/1.8.2/assets (added)
-
tags/1.8.2/assets/css (added)
-
tags/1.8.2/assets/css/# TODO.md (added)
-
tags/1.8.2/assets/css/admin.css (added)
-
tags/1.8.2/assets/css/public.css (added)
-
tags/1.8.2/assets/js (added)
-
tags/1.8.2/assets/js/dist (added)
-
tags/1.8.2/assets/js/dist/admin.bundle.js (added)
-
tags/1.8.2/assets/js/dist/admin.bundle.js.LICENSE.txt (added)
-
tags/1.8.2/assets/js/dist/public.bundle.js (added)
-
tags/1.8.2/assets/js/dist/public.bundle.js.LICENSE.txt (added)
-
tags/1.8.2/bin (added)
-
tags/1.8.2/bin/install-wp-tests.sh (added)
-
tags/1.8.2/build.txt (added)
-
tags/1.8.2/composer.json (added)
-
tags/1.8.2/docs (added)
-
tags/1.8.2/docs/enhanced-email-notifications.md (added)
-
tags/1.8.2/docs/rest-api-authentication.md (added)
-
tags/1.8.2/docs/submitter-notifications.md (added)
-
tags/1.8.2/includes (added)
-
tags/1.8.2/includes/Admin.php (added)
-
tags/1.8.2/includes/Announcement.php (added)
-
tags/1.8.2/includes/CalendarFeed.php (added)
-
tags/1.8.2/includes/Frontend.php (added)
-
tags/1.8.2/includes/Rest.php (added)
-
tags/1.8.2/includes/RssFeed.php (added)
-
tags/1.8.2/includes/Subscriber.php (added)
-
tags/1.8.2/includes/Widgets (added)
-
tags/1.8.2/includes/Widgets/AnnouncementWidget.php (added)
-
tags/1.8.2/mayo-events-manager.php (added)
-
tags/1.8.2/package.json (added)
-
tags/1.8.2/phpunit.xml (added)
-
tags/1.8.2/readme.txt (added)
-
tags/1.8.2/renovate.json (added)
-
tags/1.8.2/scripts (added)
-
tags/1.8.2/scripts/import-events-from-csv.py (added)
-
tags/1.8.2/scripts/sample-events.csv (added)
-
tags/1.8.2/support (added)
-
tags/1.8.2/support/banner-772x250.png (added)
-
tags/1.8.2/support/icon-256x256.png (added)
-
tags/1.8.2/templates (added)
-
tags/1.8.2/templates/archive-mayo-event.php (added)
-
tags/1.8.2/templates/details-mayo-announcement.php (added)
-
tags/1.8.2/templates/details-mayo-event.php (added)
-
tags/1.8.2/tests (added)
-
tags/1.8.2/tests/bootstrap.php (added)
-
tags/1.8.2/tests/integration (added)
-
tags/1.8.2/tests/integration/test-email-notifications.php (added)
-
tags/1.8.2/tests/integration/test-recurring-events.php (added)
-
tags/1.8.2/tests/integration/test-submitter-notifications.php (added)
-
tags/1.8.2/vendor (added)
-
tags/1.8.2/vendor/autoload.php (added)
-
tags/1.8.2/vendor/composer (added)
-
tags/1.8.2/vendor/composer/ClassLoader.php (added)
-
tags/1.8.2/vendor/composer/InstalledVersions.php (added)
-
tags/1.8.2/vendor/composer/LICENSE (added)
-
tags/1.8.2/vendor/composer/autoload_classmap.php (added)
-
tags/1.8.2/vendor/composer/autoload_namespaces.php (added)
-
tags/1.8.2/vendor/composer/autoload_psr4.php (added)
-
tags/1.8.2/vendor/composer/autoload_real.php (added)
-
tags/1.8.2/vendor/composer/autoload_static.php (added)
-
tags/1.8.2/vendor/composer/installed.json (added)
-
tags/1.8.2/vendor/composer/installed.php (added)
-
tags/1.8.2/vendor/composer/installers (added)
-
tags/1.8.2/vendor/composer/installers/.github (added)
-
tags/1.8.2/vendor/composer/installers/.github/workflows (added)
-
tags/1.8.2/vendor/composer/installers/.github/workflows/continuous-integration.yml (added)
-
tags/1.8.2/vendor/composer/installers/.github/workflows/lint.yml (added)
-
tags/1.8.2/vendor/composer/installers/.github/workflows/phpstan.yml (added)
-
tags/1.8.2/vendor/composer/installers/LICENSE (added)
-
tags/1.8.2/vendor/composer/installers/composer.json (added)
-
tags/1.8.2/vendor/composer/installers/src (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/AglInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/AkauntingInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/BotbleInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ChefInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ConcreteCMSInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/DframeInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ForkCMSInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/GravInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/Installer.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ItopInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/KnownInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MatomoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MauticInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MayaInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ModxInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/Plugin.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PortoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/SMFInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/TaoInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/TuskInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/WinterInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/YawikInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php (added)
-
tags/1.8.2/vendor/composer/installers/src/bootstrap.php (added)
-
tags/1.8.2/vendor/composer/platform_check.php (added)
-
trunk/assets/js/dist/admin.bundle.js (modified) (1 diff)
-
trunk/assets/js/dist/public.bundle.js (modified) (1 diff)
-
trunk/build.txt (modified) (1 diff)
-
trunk/includes/Frontend.php (modified) (4 diffs)
-
trunk/includes/Rest.php (modified) (10 diffs)
-
trunk/mayo-events-manager.php (modified) (2 diffs)
-
trunk/package.json (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mayo-events-manager/trunk/assets/js/dist/admin.bundle.js
r3432200 r3436689 1 1 /*! For license information please see admin.bundle.js.LICENSE.txt */ 2 (()=>{"use strict";const e=wp.element,t=function(){return React.createElement("div",{className:"wrap mayo-docs"},React.createElement("h1",null,"Shortcodes"),React.createElement("div",{className:"card",style:{marginBottom:"20px"}},React.createElement("h2",null,"Table of Contents"),React.createElement("ul",{style:{listStyle:"disc",marginLeft:"20px",lineHeight:"2"}},React.createElement("li",null,React.createElement("a",{href:"#event-list"},"[mayo_event_list] - Event List Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#event-form"},"[mayo_event_form] - Event Submission Form Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#announcement"},"[mayo_announcement] - Announcement Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#announcement-form"},"[mayo_announcement_form] - Announcement Submission Form Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#subscribe"},"[mayo_subscribe] - Email Subscription Form Shortcode")))),React.createElement("div",{className:"card",id:"event-list"},React.createElement("h2",null,"Event List Shortcode"),React.createElement("p",null,"Use this shortcode to display a list of upcoming events:"),React.createElement("pre",null,React.createElement("code",null,"[mayo_event_list]")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Options"),React.createElement("th",null,"Overridable via Querystring?"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"infinite_scroll"),React.createElement("td",null,"Enable automatic loading of more events as user scrolls down the page"),React.createElement("td",null,"true"),React.createElement("td",null,"true, false"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"autoexpand"),React.createElement("td",null,"Automatically expand all events when the page loads"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Filter by category slugs (comma-separated). Prefix a slug with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (all categories)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"meetings,workshops")," (include only meetings or workshops), ",React.createElement("pre",null,"meetings+workshops")," (is an and condition), or ",React.createElement("pre",null,"-meetings,-workshops")," (exclude meetings and workshops). For more information see the Wordpress documentation on ",React.createElement("a",{target:"_blank",href:"https://developer.wordpress.org/reference/classes/wp_query/#category-parameters"},"Category Parameters"),"."),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Filter by tag slugs (comma-separated). Prefix a slug with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (all tags)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"featured,ticketed")," (include only featured or ticketed), ",React.createElement("pre",null,"featured+ticketed")," (is an and condition), or ",React.createElement("pre",null,"-featured,-ticketed")," (exclude featured and ticketed). For more information see the Wordpress documentation on ",React.createElement("a",{target:"_blank",href:"https://developer.wordpress.org/reference/classes/wp_query/#tag-parameters"},"Tag Parameters"),"."),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"event_type"),React.createElement("td",null,"Filter by event type"),React.createElement("td",null,"empty (all types)"),React.createElement("td",null,"Service, Activity"),React.createElement("td",null,"Yes (only one event type at a time)")),React.createElement("tr",null,React.createElement("td",null,"time_format"),React.createElement("td",null,"Format for displaying time"),React.createElement("td",null,"12hour"),React.createElement("td",null,"12hour, 24hour"),React.createElement("td",null,"No")),React.createElement("tr",null,React.createElement("td",null,"per_page"),React.createElement("td",null,"Number of events to show per page"),React.createElement("td",null,"10"),React.createElement("td",null,"Any positive number"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"status"),React.createElement("td",null,"Shows events with a given status"),React.createElement("td",null,"publish"),React.createElement("td",null,"publish, pending"),React.createElement("td",null,"Yes (only one status at a time)")),React.createElement("tr",null,React.createElement("td",null,"service_body"),React.createElement("td",null,"Filter events by service body IDs (comma-separated)"),React.createElement("td",null,"empty (all service bodies)"),React.createElement("td",null,'e.g., "1,2,3" (shows events from any of the specified service bodies)'),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"source_ids"),React.createElement("td",null,"Filter events by source IDs (comma-separated)"),React.createElement("td",null,"empty (local events only)"),React.createElement("td",null,'e.g., "local,source_123,source_456"'),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"archive"),React.createElement("td",null,"Show only past events that have completely ended (excluding current and future events)"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"order"),React.createElement("td",null,"Sort order for events by start date and time"),React.createElement("td",null,"ASC"),React.createElement("td",null,"ASC (earliest first), DESC (latest first)"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"timezone"),React.createElement("td",null,"Timezone to use for date filtering"),React.createElement("td",null,"Browser's timezone"),React.createElement("td",null,'Any valid IANA timezone (e.g., "America/New_York", "Europe/London")'),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"view"),React.createElement("td",null,"Default view mode for displaying events"),React.createElement("td",null,"list"),React.createElement("td",null,"list, calendar"),React.createElement("td",null,"Yes")))),React.createElement("h3",null,"Example with Parameters"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_list time_format="24hour" per_page="5" categories="meetings,workshops" tags="featured" event_type="Service" service_body="1,2,3" source_ids="local,source_123" archive="false" order="ASC" timezone="America/New_York" view="calendar"]')),React.createElement("h3",null,"Example with Category/Tag Exclusions"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_list categories="-announcements,-alerts" tags="-archived"]')),React.createElement("p",null,React.createElement("em",null,'Shows all events except those with the "announcements" or "alerts" categories, and excludes the "archived" tag.')),React.createElement("h3",null,"Example with Querystring Overrides"),React.createElement("pre",null,React.createElement("code",null,'https://example.com/events?status=pending&categories=meetings,workshops&event_type=Service&service_body="1,2,3"&source_ids=local,source_123&archive=true&order=DESC&timezone=America/New_York&infinite_scroll=false&per_page=20&view=calendar')),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Prefix category or tag slugs with a minus sign (-) to exclude them from the event list"),React.createElement("li",null,"You can mix inclusions and exclusions: ",React.createElement("code",null,'categories="meetings,-cancelled"')," shows meetings but not cancelled ones"),React.createElement("li",null,"The ",React.createElement("code",null,"view")," parameter allows you to display events in either a list or calendar format. Users can toggle between views using the buttons in the header."),React.createElement("li",null,"Local events are always included by default unless specifically excluded"),React.createElement("li",null,"To include only local events, use ",React.createElement("code",null,'source_ids="local"')),React.createElement("li",null,"To exclude local events, specify only external source IDs (e.g., ",React.createElement("code",null,'source_ids="source_123,source_456"'),")"),React.createElement("li",null,"To include all events (local and external), leave source_ids empty"),React.createElement("li",null,"When ",React.createElement("code",null,'archive="true"'),", only past events that have completely ended will be shown (excludes current and future events)"),React.createElement("li",null,"When ",React.createElement("code",null,'archive="false"')," (default), only upcoming and ongoing events will be shown"),React.createElement("li",null,"Use ",React.createElement("code",null,'order="DESC"')," with ",React.createElement("code",null,'archive="true"')," to show most recent past events first"),React.createElement("li",null,"Use ",React.createElement("code",null,'order="ASC"')," (default) to show events in chronological order (earliest first)"),React.createElement("li",null,"The ",React.createElement("code",null,"timezone")," parameter ensures date filtering is accurate across different time zones"),React.createElement("li",null,"Events are loaded using infinite scroll automatically as the user scrolls down the page"))),React.createElement("div",{className:"card",id:"event-form"},React.createElement("h2",null,"Event Submission Form Shortcode"),React.createElement("p",null,"The Event Submission Form Shortcode allows users to submit new events to your site. The form includes fields for event name, type, start date, end date, and more."),React.createElement("p",null,"When a new event is submitted, an email notification will be sent to the email addresses configured in the plugin settings. Multiple email addresses can be specified, separated by commas or semicolons."),React.createElement("h3",null,"Shortcode"),React.createElement("code",null,"[mayo_event_form]"),React.createElement("h3",null,"Default Required Fields"),React.createElement("p",null,"The following fields are always required and cannot be overridden:"),React.createElement("ul",null,React.createElement("li",null,"Event Name (event_name)"),React.createElement("li",null,"Event Type (event_type)"),React.createElement("li",null,"Service Body (service_body)"),React.createElement("li",null,"Email (email)"),React.createElement("li",null,"Start Date (event_start_date)"),React.createElement("li",null,"Start Time (event_start_time)"),React.createElement("li",null,"End Date (event_end_date)"),React.createElement("li",null,"End Time (event_end_time)"),React.createElement("li",null,"Timezone (timezone)")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Available Fields"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"additional_required_fields"),React.createElement("td",null,"Comma-separated list of additional fields that should be required"),React.createElement("td",null,"empty (no additional required fields)"),React.createElement("td",null,React.createElement("ul",null,React.createElement("li",null,"description"),React.createElement("li",null,"location_name"),React.createElement("li",null,"location_address"),React.createElement("li",null,"location_details"),React.createElement("li",null,"flyer")))),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Comma-separated list of category slugs that should be available in the form. Prefix a category with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (all categories)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"meetings,workshops")," to show only meetings and workshops, or ",React.createElement("pre",null,"-meetings,-workshops")," to show all categories except meetings and workshops")),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Comma-separated list of tag slugs that should be available in the form. Prefix a tag with a minus sign (-) to exclude it. Tag slugs are always compared in lowercase."),React.createElement("td",null,"empty (all tags)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"featured,ticketed")," to show only featured and ticketed tags, or ",React.createElement("pre",null,"-featured,-ticketed")," to show all tags except featured and ticketed")),React.createElement("tr",null,React.createElement("td",null,"default_service_bodies"),React.createElement("td",null,"Comma-separated list of service body IDs to restrict the form to specific service bodies. Perfect for multi-site setups where each site should only allow events for specific service bodies."),React.createElement("td",null,"empty (all service bodies)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"1,2,3")," to allow only service bodies 1, 2, and 3, or ",React.createElement("pre",null,"0")," for only Unaffiliated events. If only one service body is specified, the field will be hidden and auto-selected.")))),React.createElement("h3",null,"Examples"),React.createElement("h4",null,"Standard Form with Additional Requirements"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_form additional_required_fields="flyer,location_name,location_address" categories="meetings,workshops" tags="featured,-ticketed"]')),React.createElement("h4",null,"Multi-Site Configuration - Restrict to Specific Service Bodies"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_form default_service_bodies="1,2,5" categories="meetings"]')),React.createElement("p",null,React.createElement("em",null,"Perfect for multi-site setups where each subsite should only allow events for specific service bodies.")),React.createElement("h4",null,"Single Service Body (Auto-Hidden)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_form default_service_bodies="3"]')),React.createElement("p",null,React.createElement("em",null,"When only one service body is specified, the service body field is hidden and automatically selected.")),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Default required fields are always enforced"),React.createElement("li",null,"Additional required fields will be marked with an asterisk (*)"),React.createElement("li",null,"Form validation will ensure all required fields are filled"))),React.createElement("div",{className:"card",id:"announcement"},React.createElement("h2",null,"Announcement Shortcode"),React.createElement("p",null,"Use this shortcode to display announcements as banners or modals. Announcements are managed separately from events and are useful for:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Meeting closures or changes"),React.createElement("li",null,"Weather alerts"),React.createElement("li",null,"Breaking news or important updates"),React.createElement("li",null,"Promoting upcoming events (can be linked to events)"),React.createElement("li",null,"Post-event thank you messages")),React.createElement("pre",null,React.createElement("code",null,"[mayo_announcement]")),React.createElement("h3",null,"How It Works"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Announcements have their own display window (",React.createElement("code",null,"display_start_date")," and ",React.createElement("code",null,"display_end_date"),")"),React.createElement("li",null,"Can optionally be linked to one or more events"),React.createElement("li",null,"Priority levels (low/normal/high/urgent) affect display order and styling"),React.createElement("li",null,React.createElement("strong",null,"Banner mode:")," Shows a fixed bar at the top of the viewport with carousel navigation for multiple announcements"),React.createElement("li",null,React.createElement("strong",null,"Modal mode:")," Shows a centered popup with a list of all matching announcements"),React.createElement("li",null,"When dismissed, announcements stay hidden for 24 hours but can be re-opened via a bell icon in the bottom-right corner")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Options"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"mode"),React.createElement("td",null,"Display mode for announcements"),React.createElement("td",null,"banner"),React.createElement("td",null,"banner (sticky top bar), modal (popup)")),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Filter by category slugs (comma-separated)"),React.createElement("td",null,"empty (all categories)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"announcements,alerts"))),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Filter by tag slugs (comma-separated)"),React.createElement("td",null,"empty (all tags)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"urgent,featured"))),React.createElement("tr",null,React.createElement("td",null,"priority"),React.createElement("td",null,"Filter by priority level"),React.createElement("td",null,"empty (all priorities)"),React.createElement("td",null,"low, normal, high, urgent")),React.createElement("tr",null,React.createElement("td",null,"show_linked_events"),React.createElement("td",null,"Show linked event titles with the announcement"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false")),React.createElement("tr",null,React.createElement("td",null,"time_format"),React.createElement("td",null,"Format for displaying time"),React.createElement("td",null,"12hour"),React.createElement("td",null,"12hour, 24hour")),React.createElement("tr",null,React.createElement("td",null,"background_color"),React.createElement("td",null,"Custom background color for the banner/modal header/bell icon"),React.createElement("td",null,"empty (uses CSS default)"),React.createElement("td",null,"Any hex color, e.g., ",React.createElement("pre",null,"#ff6600"))),React.createElement("tr",null,React.createElement("td",null,"text_color"),React.createElement("td",null,"Custom text color for the banner/modal header/bell icon"),React.createElement("td",null,"empty (uses CSS default)"),React.createElement("td",null,"Any hex color, e.g., ",React.createElement("pre",null,"#ffffff"))),React.createElement("tr",null,React.createElement("td",null,"orderby"),React.createElement("td",null,"Field to sort announcements by"),React.createElement("td",null,"date"),React.createElement("td",null,"date (display start date), title (alphabetical), created (post creation date)")),React.createElement("tr",null,React.createElement("td",null,"order"),React.createElement("td",null,"Sort direction"),React.createElement("td",null,"DESC for date/created, ASC for title"),React.createElement("td",null,"ASC (ascending), DESC (descending)")))),React.createElement("h3",null,"Examples"),React.createElement("h4",null,"Default Banner Mode"),React.createElement("pre",null,React.createElement("code",null,"[mayo_announcement]")),React.createElement("h4",null,"Modal Popup"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement mode="modal"]')),React.createElement("h4",null,"Filter by Category"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement categories="announcements,alerts"]')),React.createElement("h4",null,"Show Only Urgent Announcements"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement priority="urgent"]')),React.createElement("h4",null,"Show Linked Events"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement show_linked_events="true"]')),React.createElement("h4",null,"Combined Parameters"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement mode="banner" categories="announcements" tags="urgent" priority="high" time_format="24hour"]')),React.createElement("h4",null,"Custom Colors"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement background_color="#ff6600" text_color="#ffffff"]')),React.createElement("h4",null,"Red Alert Style"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement background_color="#dc3545" text_color="#fff" priority="urgent"]')),React.createElement("h4",null,"Sort by Title (Alphabetical)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement orderby="title"]')),React.createElement("h4",null,"Sort by Created Date (Newest First)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement orderby="created" order="DESC"]')),React.createElement("h3",null,"Widget Usage"),React.createElement("p",null,"For site-wide announcements without editing templates, use the ",React.createElement("strong",null,'"Mayo Event Announcements"')," widget:"),React.createElement("ol",null,React.createElement("li",null,"Go to ",React.createElement("strong",null,"Appearance → Widgets")),React.createElement("li",null,'Add the "Mayo Event Announcements" widget to any widget area (footer recommended for site-wide display)'),React.createElement("li",null,"Configure the display mode, categories, tags, priority, and time format")),React.createElement("h3",null,"Creating Announcements"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Go to ",React.createElement("strong",null,"Mayo → Announcements → Add New")),React.createElement("li",null,"Enter the announcement title and content"),React.createElement("li",null,"Set the ",React.createElement("strong",null,"Display Start Date")," to when you want the announcement to start showing"),React.createElement("li",null,"Set the ",React.createElement("strong",null,"Display End Date")," to when you want the announcement to stop showing"),React.createElement("li",null,"Choose a ",React.createElement("strong",null,"Priority Level")," (urgent announcements appear first)"),React.createElement("li",null,"Optionally ",React.createElement("strong",null,"link to events")," if this announcement relates to specific events")),React.createElement("h3",null,"Linking Events"),React.createElement("p",null,"Announcements can be linked to events in two ways:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("strong",null,"From the Announcement editor:"),' Search and add events in the "Linked Events" panel'),React.createElement("li",null,React.createElement("strong",null,"From the Event editor:"),' Click "Create Announcement for This Event" in the "Linked Announcements" panel')),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Announcements have independent display windows from events"),React.createElement("li",null,"Use announcements to promote events before they start, or recap after they end"),React.createElement("li",null,"Priority levels: ",React.createElement("strong",null,"urgent")," (red), ",React.createElement("strong",null,"high")," (orange), ",React.createElement("strong",null,"normal")," (blue), ",React.createElement("strong",null,"low")," (gray)"),React.createElement("li",null,"Use categories or tags to control which announcements appear"),React.createElement("li",null,"Multiple announcements are shown as a carousel in banner mode, or as a list in modal mode"))),React.createElement("div",{className:"card",id:"announcement-form"},React.createElement("h2",null,"Announcement Submission Form Shortcode"),React.createElement("p",null,"The Announcement Submission Form Shortcode allows users to submit new announcements to your site. This works similarly to the event form but for announcements."),React.createElement("p",null,'When a new announcement is submitted, an email notification will be sent to the email addresses configured in the plugin settings. The announcement will have a "pending" status until approved by an administrator.'),React.createElement("h3",null,"Shortcode"),React.createElement("code",null,"[mayo_announcement_form]"),React.createElement("h3",null,"Default Required Fields"),React.createElement("p",null,"The following fields are always required:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Announcement Title (title)"),React.createElement("li",null,"Description (description)"),React.createElement("li",null,"Service Body (service_body)"),React.createElement("li",null,"Point of Contact Name (contact_name)"),React.createElement("li",null,"Point of Contact Email (email)")),React.createElement("h3",null,"Optional Fields"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Start Date (start_date) - When the announcement should start displaying"),React.createElement("li",null,"Start Time (start_time) - Time of day the announcement should start"),React.createElement("li",null,"End Date (end_date) - When the announcement should stop displaying"),React.createElement("li",null,"End Time (end_time) - Time of day the announcement should end"),React.createElement("li",null,"Image/Flyer (flyer) - An image attachment for the announcement"),React.createElement("li",null,"Categories - Standard WordPress categories"),React.createElement("li",null,"Tags - Standard WordPress tags")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Options"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"additional_required_fields"),React.createElement("td",null,"Comma-separated list of additional fields that should be required"),React.createElement("td",null,"empty (no additional required fields)"),React.createElement("td",null,React.createElement("ul",null,React.createElement("li",null,"start_date"),React.createElement("li",null,"start_time"),React.createElement("li",null,"end_date"),React.createElement("li",null,"end_time"),React.createElement("li",null,"flyer")))),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Comma-separated list of category slugs that should be available in the form. Prefix a category with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (uses subscription settings)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"announcements,alerts")," or ",React.createElement("pre",null,"-internal"))),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Comma-separated list of tag slugs that should be available in the form. Prefix a tag with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (uses subscription settings)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"urgent,featured")," or ",React.createElement("pre",null,"-archived"))),React.createElement("tr",null,React.createElement("td",null,"default_service_bodies"),React.createElement("td",null,"Comma-separated list of service body IDs to restrict the form to specific service bodies."),React.createElement("td",null,"empty (uses subscription settings)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"1,2,3")," or ",React.createElement("pre",null,"0")," for Unaffiliated. If only one is specified, the field is hidden and auto-selected.")),React.createElement("tr",null,React.createElement("td",null,"show_flyer"),React.createElement("td",null,"Show the image/flyer upload field"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false")))),React.createElement("h3",null,"Examples"),React.createElement("h4",null,"Basic Form"),React.createElement("pre",null,React.createElement("code",null,"[mayo_announcement_form]")),React.createElement("h4",null,"With Flyer Upload"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form show_flyer="true"]')),React.createElement("h4",null,"With Required Dates"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form additional_required_fields="start_date,end_date"]')),React.createElement("h4",null,"Restricted to Specific Service Bodies"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form default_service_bodies="1,2,5"]')),React.createElement("h4",null,"Single Service Body (Auto-Hidden)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form default_service_bodies="3"]')),React.createElement("p",null,React.createElement("em",null,"When only one service body is specified, the field is hidden and automatically selected.")),React.createElement("h4",null,"Filter Categories and Tags"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form categories="announcements,alerts" tags="urgent,featured"]')),React.createElement("h4",null,"Full Configuration"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form show_flyer="true" additional_required_fields="start_date,end_date,flyer" default_service_bodies="1,2" categories="announcements"]')),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Categories, tags, and service bodies are filtered by subscription settings configured in ",React.createElement("strong",null,"Mayo → Settings → Subscription Preferences")),React.createElement("li",null,"Shortcode parameters further restrict the available options (intersection of both)"),React.createElement("li",null,"Contact name and email are private fields used for admin communication only"),React.createElement("li",null,'Submitted announcements are set to "pending" status and require admin approval'),React.createElement("li",null,"Admin receives email notification when new announcements are submitted"),React.createElement("li",null,"Start/end dates correspond to the announcement's display window"))),React.createElement("div",{className:"card",id:"subscribe"},React.createElement("h2",null,"Email Subscription Form Shortcode"),React.createElement("p",null,"Use this shortcode to display an email subscription form. Users can subscribe to receive announcement notifications via email:"),React.createElement("pre",null,React.createElement("code",null,"[mayo_subscribe]")),React.createElement("h3",null,"How It Works"),React.createElement("ol",{style:{marginLeft:"20px",lineHeight:"1.8"}},React.createElement("li",null,React.createElement("strong",null,"User enters email:")," A simple form with an email input field"),React.createElement("li",null,React.createElement("strong",null,"Confirmation email sent:")," User receives an email with a confirmation link (double opt-in)"),React.createElement("li",null,React.createElement("strong",null,"User confirms:")," Clicking the link activates their subscription"),React.createElement("li",null,React.createElement("strong",null,"Receive announcements:")," When announcements are published, subscribers get an email with the full content"),React.createElement("li",null,React.createElement("strong",null,"Easy unsubscribe:")," Each email includes a one-click unsubscribe link")),React.createElement("h3",null,"Features"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("strong",null,"Double opt-in:")," Confirmation email ensures valid addresses and prevents spam"),React.createElement("li",null,React.createElement("strong",null,"Full content delivery:")," Announcement emails include the complete content plus a link to view on site"),React.createElement("li",null,React.createElement("strong",null,"Token-based security:")," Unsubscribe links use cryptographically secure tokens (no login required)"),React.createElement("li",null,React.createElement("strong",null,"Spam folder reminder:")," Users are reminded to check spam/junk folders for the confirmation email"),React.createElement("li",null,React.createElement("strong",null,"Re-subscription support:")," Previously unsubscribed users can re-subscribe")),React.createElement("h3",null,"Example"),React.createElement("pre",null,React.createElement("code",null,"[mayo_subscribe]")),React.createElement("h3",null,"Email Flow"),React.createElement("h4",null,"Confirmation Email"),React.createElement("p",null,"Sent immediately when a user subscribes:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,'Subject: "Please confirm your subscription to [Site Name] announcements"'),React.createElement("li",null,"Contains a unique confirmation link"),React.createElement("li",null,"Includes note about checking spam folder")),React.createElement("h4",null,"Announcement Email"),React.createElement("p",null,"Sent to all confirmed subscribers when an announcement is published:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,'Subject: "[Site Name] [Announcement Title]"'),React.createElement("li",null,"Full announcement content in plain text"),React.createElement("li",null,"Link to view on site"),React.createElement("li",null,"One-click unsubscribe link")),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Emails are sent using WordPress's ",React.createElement("code",null,"wp_mail()")," function"),React.createElement("li",null,'The "From" address uses your WordPress email settings'),React.createElement("li",null,"Subscribers are stored in a custom database table (",React.createElement("code",null,"wp_mayo_subscribers"),")"),React.createElement("li",null,"Emails are only sent when announcements are first published (not on updates)"),React.createElement("li",null,"The preferences column is reserved for future filtering options"))))},n=wp.components;function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function l(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",c=n.toStringTag||"@@toStringTag";function o(n,a,l,c){var o=a&&a.prototype instanceof u?a:u,s=Object.create(o.prototype);return r(s,"_invoke",function(n,a,l){var r,c,o,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,c=0,o=e,d.n=n,i}};function p(n,a){for(c=n,o=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(o=r[(c=r[4])?5:(c=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(c=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,c=0))}if(l||n>1)return i;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),c=s,o=E;(t=c<2?e:o)||!m;){r||(c?c<3?(c>1&&(d.n=-1),p(c,o)):d.n=o:d.v=o);try{if(u=2,r){if(c||(l="next"),t=r[l]){if(!(t=t.call(r,o)))throw TypeError("iterator result is not an object");if(!t.done)return t;o=t.value,c<2&&(c=0)}else 1===c&&(t=r.return)&&t.call(r),c<2&&(o=TypeError("The iterator does not provide a '"+l+"' method"),c=1);r=e}else if((t=(m=d.n<0)?o:n.call(a,d))!==i)break}catch(t){r=e,c=1,o=t}finally{u=1}}return{value:t,done:m}}}(n,l,c),!0),s}var i={};function u(){}function s(){}function m(){}t=Object.getPrototypeOf;var d=[][a]?t(t([][a]())):(r(t={},a,function(){return this}),t),p=m.prototype=u.prototype=Object.create(d);function E(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,r(e,c,"GeneratorFunction")),e.prototype=Object.create(p),e}return s.prototype=m,r(p,"constructor",m),r(m,"constructor",s),s.displayName="GeneratorFunction",r(m,c,"GeneratorFunction"),r(p),r(p,c,"Generator"),r(p,a,function(){return this}),r(p,"toString",function(){return"[object Generator]"}),(l=function(){return{w:o,m:E}})()}function r(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}r=function(e,t,n,a){function c(t,n){r(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(c("next",0),c("throw",1),c("return",2))},r(e,t,n,a)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,n){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}var s=function(){var e,t=(e=l().m(function e(t){var n,a,r,c,i,u,s,m,d,p=arguments;return l().w(function(e){for(;;)switch(e.p=e.n){case 0:return r=p.length>1&&void 0!==p[1]?p[1]:{},(c=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.root)||(null===(a=window.wpApiSettings)||void 0===a?void 0:a.root)||"/wp-json/").endsWith("/")||(c+="/"),i="".concat(c,"event-manager/v1").concat(t),u="",window.mayoApiSettings&&window.mayoApiSettings.nonce?u=window.mayoApiSettings.nonce:window.wpApiSettings&&window.wpApiSettings.nonce&&(u=window.wpApiSettings.nonce),s=o(o({},{credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":u}}),r),e.p=1,e.n=2,fetch(i,s);case 2:if((m=e.v).ok){e.n=3;break}throw new Error("API error: ".concat(m.status," ").concat(m.statusText));case 3:return e.n=4,m.json();case 4:return e.a(2,e.v);case 5:throw e.p=5,d=e.v,console.error("API fetch error:",d),d;case 6:return e.a(2)}},e,null,[[1,5]])}),function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){u(r,a,l,c,o,"next",e)}function o(e){u(r,a,l,c,o,"throw",e)}c(void 0)})});return function(e){return t.apply(this,arguments)}}();function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return p(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(p(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function E(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,p(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,p(m,"constructor",u),p(u,"constructor",i),i.displayName="GeneratorFunction",p(u,l,"GeneratorFunction"),p(m),p(m,l,"Generator"),p(m,a,function(){return this}),p(m,"toString",function(){return"[object Generator]"}),(d=function(){return{w:r,m:E}})()}function p(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}p=function(e,t,n,a){function r(t,n){p(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},p(e,t,n,a)}function E(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function f(e){return function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){E(r,a,l,c,o,"next",e)}function o(e){E(r,a,l,c,o,"throw",e)}c(void 0)})}}function R(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||b(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach(function(t){g(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e){return function(e){if(Array.isArray(e))return _(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||b(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){if(e){if("string"==typeof e)return _(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_(e,t):void 0}}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var S=function(e){if(!e)return!1;try{return"https:"===new URL(e).protocol}catch(e){return!1}},w=function(e){return!e||e.split(/[,;]/).map(function(e){return e.trim()}).filter(function(e){return e}).every(function(e){return function(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}(e)})};const x=function(){var t=R((0,e.useState)({bmlt_root_server:"",notification_email:"",default_service_bodies:""}),2),a=t[0],l=t[1],r=R((0,e.useState)(!0),2),c=r[0],o=r[1],i=R((0,e.useState)(!1),2),u=i[0],m=i[1],p=R((0,e.useState)(null),2),E=p[0],v=p[1],b=R((0,e.useState)(null),2),_=b[0],x=b[1],k=R((0,e.useState)([]),2),C=k[0],T=k[1],A=R((0,e.useState)(null),2),N=A[0],P=A[1],O=R((0,e.useState)(null),2),j=O[0],D=O[1],B=R((0,e.useState)(!1),2),M=B[0],F=B[1],I=R((0,e.useState)({subscription_categories:[],subscription_tags:[],subscription_service_bodies:[],subscription_new_option_behavior:"auto_include"}),2),L=I[0],z=I[1],G=R((0,e.useState)([]),2),U=G[0],W=G[1],Y=R((0,e.useState)([]),2),H=Y[0],q=Y[1],J=R((0,e.useState)([]),2),$=J[0],K=J[1];(0,e.useEffect)(function(){var e=function(){var e=f(d().m(function e(){var t,n,a,r,c,i,u,m,p,E;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,o(!0),v(null),e.n=1,s("/settings");case 1:return t=e.v,l({bmlt_root_server:t.bmlt_root_server||"",notification_email:t.notification_email||"",default_service_bodies:t.default_service_bodies||""}),T(Array.isArray(t.external_sources)?t.external_sources:[]),z({subscription_categories:t.subscription_categories||[],subscription_tags:t.subscription_tags||[],subscription_service_bodies:t.subscription_service_bodies||[],subscription_new_option_behavior:t.subscription_new_option_behavior||"opt_in"}),e.p=2,e.n=3,fetch("/wp-json/wp/v2/categories?per_page=100");case 3:if(!(n=e.v).ok){e.n=5;break}return e.n=4,n.json();case 4:a=e.v,W(a.map(function(e){return{id:e.id,name:e.name}}));case 5:e.n=7;break;case 6:e.p=6,m=e.v,console.error("Failed to load categories:",m);case 7:return e.p=7,e.n=8,fetch("/wp-json/wp/v2/tags?per_page=100");case 8:if(!(r=e.v).ok){e.n=10;break}return e.n=9,r.json();case 9:c=e.v,q(c.map(function(e){return{id:e.id,name:e.name}}));case 10:e.n=12;break;case 11:e.p=11,p=e.v,console.error("Failed to load tags:",p);case 12:if(!t.bmlt_root_server){e.n=18;break}return e.p=13,e.n=14,fetch(t.bmlt_root_server+"/client_interface/json/?switcher=GetServiceBodies");case 14:if(!(i=e.v).ok){e.n=16;break}return e.n=15,i.json();case 15:u=e.v,K(u.map(function(e){return{id:e.id,name:e.name,parent_id:e.parent_id||"0"}}));case 16:e.n=18;break;case 17:e.p=17,E=e.v,console.error("Failed to load service bodies:",E);case 18:e.n=20;break;case 19:e.p=19,e.v,v("Failed to load settings. Please refresh the page and try again.");case 20:return e.p=20,o(!1),e.f(20);case 21:return e.a(2)}},e,null,[[13,17],[7,11],[2,6],[0,19,20,21]])}));return function(){return e.apply(this,arguments)}}();e()},[]);var V=function(e,t){l(function(n){return y(y({},n),{},g({},e,t))})},Z=function(){var e=f(d().m(function e(){var t,n,l,r;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(e.p=0,m(!0),v(null),S(j.url)){e.n=1;break}throw new Error("External source URL must use HTTPS protocol.");case 1:return t=y(y({},j),{},{event_type:j.event_type||""}),n=h(C),null!==N?n[N]=t:M&&n.push(t),e.n=2,s("/settings",{method:"POST",body:JSON.stringify(y(y({},a),{},{external_sources:n}))});case 2:l=e.v,T(l.settings.external_sources),D(null),P(null),F(!1),x("External source saved successfully!"),setTimeout(function(){return x(null)},3e3),e.n=4;break;case 3:e.p=3,r=e.v,v(r.message||"Failed to save external source.");case 4:return e.p=4,m(!1),e.f(4);case 5:return e.a(2)}},e,null,[[0,3,4,5]])}));return function(){return e.apply(this,arguments)}}(),Q=function(){var e=f(d().m(function e(t){var n;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(confirm("Are you sure you want to delete this external source?")){e.n=1;break}return e.a(2);case 1:return e.p=1,m(!0),n=C.filter(function(e,n){return n!==t}),e.n=2,s("/settings",{method:"POST",body:JSON.stringify(y(y({},a),{},{external_sources:n}))});case 2:T(n),D(null),P(null),F(!1),x("External source deleted successfully!"),setTimeout(function(){return x(null)},3e3),e.n=4;break;case 3:e.p=3,e.v,v("Failed to delete external source.");case 4:return e.p=4,m(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}));return function(t){return e.apply(this,arguments)}}(),X=function(e,t){z(function(n){var a=n[e]||[],l=a.includes(t);return y(y({},n),{},g({},e,l?a.filter(function(e){return e!==t}):[].concat(h(a),[t])))})},ee=function(){var e=f(d().m(function e(){var t;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(e.p=0,m(!0),v(null),S(a.bmlt_root_server)){e.n=1;break}throw new Error("BMLT Root Server URL must use HTTPS protocol.");case 1:if(!a.notification_email||w(a.notification_email)){e.n=2;break}throw new Error("Please enter valid email addresses for notifications. Multiple emails can be separated by commas or semicolons.");case 2:return e.n=3,s("/settings",{method:"POST",body:JSON.stringify({bmlt_root_server:a.bmlt_root_server,notification_email:a.notification_email,default_service_bodies:a.default_service_bodies,external_sources:C,subscription_categories:L.subscription_categories,subscription_tags:L.subscription_tags,subscription_service_bodies:L.subscription_service_bodies,subscription_new_option_behavior:L.subscription_new_option_behavior})});case 3:e.v,x("Settings saved successfully!"),setTimeout(function(){return x(null)},3e3),e.n=5;break;case 4:e.p=4,t=e.v,v(t.message||"Failed to save settings.");case 5:return e.p=5,m(!1),e.f(5);case 6:return e.a(2)}},e,null,[[0,4,5,6]])}));return function(){return e.apply(this,arguments)}}();return c?React.createElement("div",{className:"mayo-settings-loading"},React.createElement(n.Spinner,null)," Loading settings..."):React.createElement("div",{className:"mayo-settings-page"},React.createElement("h1",null,"Mayo Events Manager Settings"),React.createElement(n.Notice,{status:"warning",isDismissible:!1},React.createElement("p",null,React.createElement("strong",null,"Important:"),' This plugin requires Pretty Permalinks to be enabled for the REST API to function correctly. If you\'re experiencing 404 errors when accessing external source or settings BMLT server, please ensure your WordPress site is using Pretty Permalinks (Settings → Permalinks) and not the "Plain" setting.')),E&&React.createElement(n.Notice,{status:"error",isDismissible:!0,onRemove:function(){return v(null)}},E),_&&React.createElement(n.Notice,{status:"success",isDismissible:!0,onRemove:function(){return x(null)}},_),React.createElement(n.Panel,null,React.createElement(n.PanelBody,{title:"BMLT Settings",initialOpen:!0},React.createElement(n.PanelRow,null,React.createElement(n.TextControl,{label:"BMLT Root Server URL",value:a.bmlt_root_server,onChange:function(e){return V("bmlt_root_server",e)},help:a.bmlt_root_server&&!S(a.bmlt_root_server)?"URL must start with 'https://'":"Enter the URL of your BMLT root server (e.g., https://bmlt.example.org/main_server)",className:a.bmlt_root_server&&!S(a.bmlt_root_server)?"mayo-invalid-url":"",__next40pxDefaultSize:!0})),React.createElement(n.PanelRow,null,React.createElement(n.TextControl,{label:"Notification Email",value:a.notification_email,onChange:function(e){return V("notification_email",e)},help:a.notification_email&&!w(a.notification_email)?"Please enter valid email addresses. Multiple emails can be separated by commas or semicolons.":"Email addresses to receive event submission notifications. Multiple emails can be separated by commas or semicolons. Leave empty to send to all admins.",className:a.notification_email&&!w(a.notification_email)?"mayo-invalid-email":"",__next40pxDefaultSize:!0}))),React.createElement(n.PanelBody,{title:"Service Body Configuration",initialOpen:!0},React.createElement(n.PanelRow,null,React.createElement(n.TextControl,{label:"Restricted Service Bodies",value:a.default_service_bodies,onChange:function(e){return V("default_service_bodies",e)},help:"Comma-separated list of service body IDs (e.g., 1,2,3). When specified, only these service bodies will be available for event submission. Leave empty to allow all service bodies. Use '0' for Unaffiliated. Perfect for multi-site setups where each site should only show specific service bodies.",placeholder:"e.g., 1,2,3,0",__next40pxDefaultSize:!0})),React.createElement(n.PanelRow,null,React.createElement(n.Button,{isPrimary:!0,onClick:ee,isBusy:u,disabled:u||a.bmlt_root_server&&!S(a.bmlt_root_server)||a.notification_email&&!w(a.notification_email)},u?"Saving...":"Save Settings")))),React.createElement(n.Panel,null,React.createElement(n.PanelBody,{title:"External Event Sources",initialOpen:!0},React.createElement("div",{className:"mayo-external-sources-list"},C.map(function(e,t){return React.createElement("div",{key:e.id,className:"mayo-external-source-item"},React.createElement("div",{className:"mayo-external-source-info"},React.createElement("strong",null,e.name||e.url),React.createElement("div",{className:"mayo-external-source-details"},React.createElement("span",{className:"mayo-source-id"},"ID: ",e.id),e.event_type&&React.createElement("span",null,"Type: ",e.event_type),e.service_body&&React.createElement("span",null,"Service Body: ",e.service_body),React.createElement("span",{className:"mayo-source-status ".concat(e.enabled?"enabled":"disabled")},e.enabled?"Enabled":"Disabled"))),React.createElement("div",{className:"mayo-external-source-actions"},React.createElement(n.Button,{isSecondary:!0,onClick:function(){return function(e,t){D(e),P(t)}(e,t)}},"Edit"),React.createElement(n.Button,{isDestructive:!0,onClick:function(){return Q(t)}},"Delete")))})),React.createElement("div",{className:"mayo-external-sources-actions"},React.createElement(n.Button,{isPrimary:!0,onClick:function(){D({id:"",name:"",url:"",event_type:"",service_body:"",categories:"",tags:"",enabled:!0}),F(!0)},className:"mayo-add-source-button",disabled:M||null!==N},"Add New External Source")),(M||null!==N)&&j&&React.createElement("div",{className:"mayo-external-source-form"},React.createElement(n.TextControl,{label:"Site URL",value:j.url,onChange:function(e){return D(y(y({},j),{},{url:e}))},help:"Enter the URL of the WordPress site (e.g., https://example.com)",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Source Name",value:j.name,onChange:function(e){return D(y(y({},j),{},{name:e}))},help:"Enter a friendly name for this source (e.g., District 5 Website)",__next40pxDefaultSize:!0}),React.createElement(n.SelectControl,{label:"Event Type",value:j.event_type||"",options:[{label:"Select an event type",value:""},{label:"Activity",value:"Activity"},{label:"Service",value:"Service"}],onChange:function(e){D(y(y({},j),{},{event_type:e}))},help:"Select the event type",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Service Body",value:j.service_body,onChange:function(e){return D(y(y({},j),{},{service_body:e}))},help:"Filter by service body (optional)",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Categories",value:j.categories,onChange:function(e){return D(y(y({},j),{},{categories:e}))},help:"Filter by categories (comma-separated)",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Tags",value:j.tags,onChange:function(e){return D(y(y({},j),{},{tags:e}))},help:"Filter by tags (comma-separated)",__next40pxDefaultSize:!0}),React.createElement(n.ToggleControl,{label:"Enable Source",checked:j.enabled,onChange:function(e){return D(y(y({},j),{},{enabled:e}))}}),React.createElement("div",{className:"mayo-form-actions"},React.createElement(n.Button,{isPrimary:!0,onClick:Z,isBusy:u},u?"Saving...":"Save Source"),React.createElement(n.Button,{isSecondary:!0,onClick:function(){D(null),P(null),F(!1)}},"Cancel"))))),React.createElement(n.Panel,null,React.createElement(n.PanelBody,{title:"Subscription Preferences",initialOpen:!0},React.createElement("p",{className:"mayo-settings-description"},"Configure which categories, tags, and service bodies are available for subscribers to choose from when signing up for announcement notifications."),U.length>0&&React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"Categories available for subscription:"),React.createElement("div",{className:"mayo-checkbox-list",style:{border:"1px solid #ddd",borderRadius:"4px",background:"#fff",padding:"12px 16px",maxHeight:"300px",overflowY:"auto"}},U.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:L.subscription_categories.includes(e.id),onChange:function(){return X("subscription_categories",e.id)}})}))),H.length>0&&React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"Tags available for subscription:"),React.createElement("div",{className:"mayo-checkbox-list",style:{border:"1px solid #ddd",borderRadius:"4px",background:"#fff",padding:"12px 16px",maxHeight:"300px",overflowY:"auto"}},H.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:L.subscription_tags.includes(e.id),onChange:function(){return X("subscription_tags",e.id)}})}))),$.length>0&&React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"Service Bodies available for subscription:"),React.createElement("div",{className:"mayo-service-body-tree"},function(e){var t=h(e).sort(function(e,t){return e.name.localeCompare(t.name)}),n={},a=[];t.forEach(function(e){n[e.id]=[]}),t.forEach(function(e){var t=String(e.parent_id);"0"!==t&&n[t]?n[t].push(e):a.push(e)});var l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=[];return e.forEach(function(e){var r;a.push(y(y({},e),{},{depth:t})),(null===(r=n[e.id])||void 0===r?void 0:r.length)>0&&(a=a.concat(l(n[e.id],t+1)))}),a};return l(a)}($).map(function(e){return React.createElement("div",{key:e.id,className:"mayo-tree-item",style:{paddingLeft:"".concat(24*e.depth,"px")}},React.createElement(n.CheckboxControl,{label:"".concat(e.name," (").concat(e.id,")"),checked:L.subscription_service_bodies.includes(e.id),onChange:function(){return X("subscription_service_bodies",e.id)}}))}))),React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"When new options are added:"),React.createElement(n.RadioControl,{selected:L.subscription_new_option_behavior,options:[{label:"Auto-include: Automatically add to existing subscribers",value:"auto_include"},{label:"Opt-in: Existing subscribers must manually add new options",value:"opt_in"}],onChange:function(e){return function(e,t){z(function(e){return y(y({},e),{},g({},"subscription_new_option_behavior",t))})}(0,e)}})),React.createElement(n.PanelRow,null,React.createElement(n.Button,{isPrimary:!0,onClick:ee,isBusy:u,disabled:u||a.bmlt_root_server&&!S(a.bmlt_root_server)||a.notification_email&&!w(a.notification_email)},u?"Saving...":"Save Settings")))))};function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const C=function(){var t,n,a=(t=(0,e.useState)((new Date).toLocaleString()),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return React.createElement("div",{className:"wrap mayo-docs"},React.createElement("h1",null,"CSS Classes Documentation"),React.createElement("div",{className:"card"},React.createElement("div",{className:"mayo-docs-header"},React.createElement("h2",null,"Dynamic CSS Classes"),React.createElement("div",{className:"mayo-docs-meta"},React.createElement("span",{className:"mayo-docs-last-updated"},"Last updated: ",a))),React.createElement("div",{className:"notice notice-warning"},React.createElement("p",null,React.createElement("strong",null,"Important:"),' This plugin does not include a built-in CSS editor. To style the event cards, you need to use another plugin like "Simple Custom CSS" or add CSS to your theme\'s stylesheet.')),React.createElement("p",null,"This documentation explains the dynamic CSS classes used in the Event Card and Calendar View components. These classes are generated based on event properties and can be used to style specific events."),React.createElement("div",{className:"mayo-tab-content"},React.createElement("h3",null,"Dynamic Classes"),React.createElement("p",null,"These classes are dynamically generated based on event properties:"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Class Pattern"),React.createElement("th",null,"Based On"),React.createElement("th",null,"Example"))),React.createElement("tbody",null,[{pattern:"mayo-event-category-{category-slug}",baseName:"mayo-event-category",description:"Class for event categories"},{pattern:"mayo-event-tag-{tag-slug}",baseName:"mayo-event-tag",description:"Class for event tags"},{pattern:"mayo-event-type-{event-type-slug}",baseName:"mayo-event-type",description:"Class for event types"},{pattern:"mayo-event-service-body-{service-body-slug}",baseName:"mayo-event-service-body",description:"Class for service bodies"}].map(function(e,t){var n="",a="";return e.baseName.includes("category")?(n="Event categories",a="mayo-event-category-meetings"):e.baseName.includes("tag")?(n="Event tags",a="mayo-event-tag-featured"):e.baseName.includes("type")?(n="Event type",a="mayo-event-type-service"):e.baseName.includes("service-body")&&(n="Service body",a="mayo-event-service-body-district-1"),React.createElement("tr",{key:t},React.createElement("td",null,React.createElement("code",null,e.pattern)),React.createElement("td",null,n),React.createElement("td",null,React.createElement("code",null,a)))}))),React.createElement("h4",null,"Special Characters Handling"),React.createElement("p",null,"Special characters and emojis in category, tag, event type, and service body names are converted to Unicode codes to ensure valid CSS class names:"),React.createElement("pre",null,React.createElement("code",null,'// Example: "Meeting 🎉" becomes "mayo-event-category-meeting-u127881"')),React.createElement("h4",null,"Small Variants"),React.createElement("p",null,"Categories and tags in the event brief section use small variants:"),React.createElement("ul",null,React.createElement("li",null,React.createElement("code",null,"mayo-event-category-small")),React.createElement("li",null,React.createElement("code",null,"mayo-event-tag-small"))),React.createElement("h4",null,"How to Add Custom CSS"),React.createElement("p",null,"To style the event cards, you need to add CSS to your theme or use a custom CSS plugin. Here are some recommended plugins:"),React.createElement("ul",null,React.createElement("li",null,React.createElement("a",{href:"https://wordpress.org/plugins/simple-custom-css/",target:"_blank",rel:"noopener noreferrer"},"Simple Custom CSS")),React.createElement("li",null,React.createElement("a",{href:"https://wordpress.org/plugins/custom-css-js/",target:"_blank",rel:"noopener noreferrer"},"Custom CSS and JS")),React.createElement("li",null,React.createElement("a",{href:"https://wordpress.org/plugins/advanced-custom-css/",target:"_blank",rel:"noopener noreferrer"},"Advanced Custom CSS"))),React.createElement("h4",null,"List View vs Calendar View Styling"),React.createElement("p",null,"The same dynamic classes are applied to both list view and calendar view events. This means your existing styles will automatically work in both views:"),React.createElement("pre",null,React.createElement("code",null,"\n/* This styles events in BOTH list and calendar views */\n.mayo-event-category-meetings {\n border-left: 4px solid #4a90e2;\n}\n ")),React.createElement("p",null,"If you want ",React.createElement("strong",null,"different")," styling for each view, use the base element class as a prefix:"),React.createElement("ul",null,React.createElement("li",null,React.createElement("code",null,".mayo-event-card")," - List view event cards"),React.createElement("li",null,React.createElement("code",null,".mayo-calendar-event")," - Calendar view event pills")),React.createElement("pre",null,React.createElement("code",null,"\n/* List view only */\n.mayo-event-card.mayo-event-category-meetings {\n border-left: 4px solid #4a90e2;\n}\n\n/* Calendar view only */\n.mayo-calendar-event.mayo-event-category-meetings {\n background-color: #e3f2fd;\n border-left: 3px solid #1976d2;\n}\n ")),React.createElement("h4",null,"Customization Example"),React.createElement("p",null,"Once you have a CSS editor, you can add rules like these:"),React.createElement("pre",null,React.createElement("code",null,'\n/* Style events with the "meetings" category (both views) */\n.mayo-event-category-meetings {\n border-left: 4px solid #4a90e2;\n}\n\n/* Style events with the "workshops" category (both views) */\n.mayo-event-category-workshops {\n border-left: 4px solid #e2844a;\n}\n\n/* Style service events (both views) */\n.mayo-event-type-service {\n background-color: #f0f7ff;\n}\n\n/* Style events from a specific service body (both views) */\n.mayo-event-service-body-district-1 {\n border-top: 2px solid #4a90e2;\n}\n\n/* Calendar view only: different background for activity events */\n.mayo-calendar-event.mayo-event-type-activity {\n background-color: #fff3e0;\n}\n ')))))},T=function(){var e=window.location.origin;return React.createElement("div",{className:"wrap mayo-docs"},React.createElement("h1",null,"API Documentation"),React.createElement("div",{className:"card"},React.createElement("h2",null,"Overview"),React.createElement("p",null,"The Mayo Events Manager provides a REST API for programmatic access to events and announcements. All endpoints use the namespace ",React.createElement("code",null,"event-manager/v1"),"."),React.createElement("p",null,React.createElement("strong",null,"Base URL:")," ",React.createElement("code",null,e,"/wp-json/event-manager/v1"))),React.createElement("div",{className:"card"},React.createElement("h2",null,"Table of Contents"),React.createElement("h3",null,"Event Endpoints"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#get-events"},"GET /events")," - List events with filtering"),React.createElement("li",null,React.createElement("a",{href:"#get-event-slug"},"GET /event/","{slug}")," - Get event by slug"),React.createElement("li",null,React.createElement("a",{href:"#get-event-id"},"GET /events/","{id}")," - Get event by ID"),React.createElement("li",null,React.createElement("a",{href:"#search-events"},"GET /events/search")," - Search events"),React.createElement("li",null,React.createElement("a",{href:"#post-submit-event"},"POST /submit-event")," - Submit a new event")),React.createElement("h3",null,"Announcement Endpoints"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#get-announcements"},"GET /announcements")," - List announcements"),React.createElement("li",null,React.createElement("a",{href:"#get-announcement-id"},"GET /announcement/","{id}")," - Get announcement by ID")),React.createElement("h3",null,"Settings Endpoints"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#get-settings"},"GET /settings")," - Get plugin settings"),React.createElement("li",null,React.createElement("a",{href:"#post-settings"},"POST /settings")," - Update plugin settings")),React.createElement("h3",null,"Reference"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#event-meta-fields"},"Event Meta Fields")),React.createElement("li",null,React.createElement("a",{href:"#announcement-response"},"Announcement Response Object")),React.createElement("li",null,React.createElement("a",{href:"#wordpress-rest-api"},"WordPress REST API")),React.createElement("li",null,React.createElement("a",{href:"#usage-examples"},"Usage Examples")))),React.createElement("div",{className:"card",id:"get-events"},React.createElement("h2",null,"GET /events"),React.createElement("p",null,"Retrieve a list of events with optional filtering and pagination."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/events")),React.createElement("h3",null,"Query Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Default"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"page")),React.createElement("td",null,"integer"),React.createElement("td",null,"1"),React.createElement("td",null,"Page number for pagination")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"per_page")),React.createElement("td",null,"integer"),React.createElement("td",null,"10"),React.createElement("td",null,"Number of events per page")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"status")),React.createElement("td",null,"string"),React.createElement("td",null,"publish"),React.createElement("td",null,"Post status filter (",React.createElement("code",null,"publish"),", ",React.createElement("code",null,"pending"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_type")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter by event type (e.g., ",React.createElement("code",null,"Service"),", ",React.createElement("code",null,"Activity"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"service_body")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated service body IDs (e.g., ",React.createElement("code",null,"1,2,3"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated category slugs. Prefix with ",React.createElement("code",null,"-")," to exclude (e.g., ",React.createElement("code",null,"meetings,-cancelled"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated tag slugs. Prefix with ",React.createElement("code",null,"-")," to exclude")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"archive")),React.createElement("td",null,"boolean"),React.createElement("td",null,"false"),React.createElement("td",null,"When ",React.createElement("code",null,"true"),", returns only past events")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"order")),React.createElement("td",null,"string"),React.createElement("td",null,"ASC"),React.createElement("td",null,"Sort order: ",React.createElement("code",null,"ASC")," (earliest first) or ",React.createElement("code",null,"DESC")," (latest first)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"timezone")),React.createElement("td",null,"string"),React.createElement("td",null,"Server timezone"),React.createElement("td",null,"IANA timezone for date filtering (e.g., ",React.createElement("code",null,"America/New_York"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter events starting from this date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter events ending before this date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"source_ids")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated source IDs. Use ",React.createElement("code",null,"local")," for local events, or external source IDs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"relation")),React.createElement("td",null,"string"),React.createElement("td",null,"AND"),React.createElement("td",null,"Relation between meta query conditions (",React.createElement("code",null,"AND")," or ",React.createElement("code",null,"OR"),")")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/events?per_page=5&categories=meetings&order=ASC"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "events": [\n {\n "id": 123,\n "title": {\n "rendered": "Monthly Meeting"\n },\n "content": {\n "rendered": "<p>Event description...</p>"\n },\n "link": "'.concat(e,'/mayo/monthly-meeting/",\n "meta": {\n "event_start_date": "2024-03-15",\n "event_end_date": "2024-03-15",\n "event_start_time": "19:00:00",\n "event_end_time": "21:00:00",\n "timezone": "America/New_York",\n "event_type": "Service",\n "service_body": "1",\n "location_name": "Community Center",\n "location_address": "123 Main St",\n "location_details": "Room 101"\n },\n "featured_image": "').concat(e,'/wp-content/uploads/2024/03/flyer.jpg",\n "categories": [\n {\n "id": 5,\n "name": "Meetings",\n "slug": "meetings",\n "link": "').concat(e,'/category/meetings/"\n }\n ],\n "tags": [],\n "source": {\n "id": "local",\n "name": "Local Events",\n "url": "').concat(e,'"\n }\n }\n ],\n "pagination": {\n "total": 25,\n "per_page": 5,\n "current_page": 1,\n "total_pages": 5\n }\n}')))),React.createElement("div",{className:"card",id:"get-event-slug"},React.createElement("h2",null,"GET /event/","{slug}"),React.createElement("p",null,"Retrieve details for a single event by its slug."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/event/","{slug}")),React.createElement("h3",null,"Path Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"slug")),React.createElement("td",null,"string"),React.createElement("td",null,"The event's URL slug")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/event/monthly-meeting"))),React.createElement("h3",null,"Response"),React.createElement("p",null,"Returns a single event object (same structure as events in the list response)."),React.createElement("h3",null,"Error Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "no_event",\n "message": "Event not found",\n "data": {\n "status": 404\n }\n}'))),React.createElement("div",{className:"card",id:"get-event-id"},React.createElement("h2",null,"GET /events/","{id}"),React.createElement("p",null,"Retrieve a single event by its post ID."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/events/","{id}")),React.createElement("h3",null,"Path Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"id")),React.createElement("td",null,"integer"),React.createElement("td",null,"The event's post ID")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/events/123"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "id": 123,\n "title": "Monthly Meeting",\n "start_date": "2024-03-15",\n "end_date": "2024-03-15",\n "start_time": "19:00:00",\n "end_time": "21:00:00",\n "permalink": "'.concat(e,'/mayo/monthly-meeting/",\n "edit_link": "').concat(e,'/wp-admin/post.php?post=123&action=edit"\n}'))),React.createElement("h3",null,"Error Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "not_found",\n "message": "Event not found",\n "data": {\n "status": 404\n }\n}'))),React.createElement("div",{className:"card",id:"search-events"},React.createElement("h2",null,"GET /events/search"),React.createElement("p",null,"Search events by title. Useful for finding events to link to announcements."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/events/search")),React.createElement("h3",null,"Query Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Default"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"search")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Search term to match against event titles")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"limit")),React.createElement("td",null,"integer"),React.createElement("td",null,"20"),React.createElement("td",null,"Maximum number of results to return")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"include")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated event IDs to fetch specific events")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/events/search?search=meeting&limit=10"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "events": [\n {\n "id": 123,\n "title": "Monthly Meeting",\n "start_date": "2024-03-15",\n "permalink": "'.concat(e,'/mayo/monthly-meeting/",\n "edit_link": "').concat(e,'/wp-admin/post.php?post=123&action=edit"\n },\n {\n "id": 456,\n "title": "Regional Meeting",\n "start_date": "2024-04-01",\n "permalink": "').concat(e,'/mayo/regional-meeting/",\n "edit_link": "').concat(e,'/wp-admin/post.php?post=456&action=edit"\n }\n ]\n}')))),React.createElement("div",{className:"card",id:"post-submit-event"},React.createElement("h2",null,"POST /submit-event"),React.createElement("p",null,"Submit a new event. Events are created with ",React.createElement("code",null,"pending")," status and require admin approval."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"POST ",e,"/wp-json/event-manager/v1/submit-event")),React.createElement("h3",null,"Authentication"),React.createElement("p",null,"This endpoint is publicly accessible (no authentication required)."),React.createElement("h3",null,"Request Body (multipart/form-data)"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Field"),React.createElement("th",null,"Type"),React.createElement("th",null,"Required"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Event title")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_type")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Event type (e.g., ",React.createElement("code",null,"Service"),", ",React.createElement("code",null,"Activity"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"service_body")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Service body ID (use ",React.createElement("code",null,"0")," for Unaffiliated)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"email")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Contact email address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"contact_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Contact person's name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Start date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"End date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_time")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Start time (HH:MM:SS format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_time")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"End time (HH:MM:SS format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"timezone")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"IANA timezone (e.g., ",React.createElement("code",null,"America/New_York"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"description")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Event description (HTML allowed)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_name")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Venue name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_address")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Street address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_details")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Additional location info (room number, etc.)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Comma-separated category IDs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Comma-separated tag names or IDs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"recurring_pattern")),React.createElement("td",null,"JSON string"),React.createElement("td",null,"No"),React.createElement("td",null,"Recurring event configuration (see below)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"flyer")),React.createElement("td",null,"file"),React.createElement("td",null,"No"),React.createElement("td",null,"Event flyer image (set as featured image)")))),React.createElement("h3",null,"Recurring Pattern Object"),React.createElement("pre",null,React.createElement("code",null,'{\n "type": "weekly", // "none", "daily", "weekly", "monthly"\n "interval": 1, // Repeat every N days/weeks/months\n "weekdays": [1, 3, 5], // For weekly: days of week (0=Sun, 6=Sat)\n "monthlyType": "date", // For monthly: "date" or "weekday"\n "monthlyDate": 15, // For monthly by date: day of month\n "monthlyWeekday": "2,4", // For monthly by weekday: "week,day" (e.g., "2,4" = 2nd Thursday)\n "endDate": "2024-12-31" // When recurring pattern ends\n}')),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "id": 456,\n "title": {\n "rendered": "New Community Event"\n },\n "content": {\n "rendered": "<p>Event description...</p>"\n },\n "link": "'.concat(e,'/mayo/new-community-event/",\n "meta": {\n "event_start_date": "2024-04-01",\n "event_end_date": "2024-04-01",\n "event_start_time": "14:00:00",\n "event_end_time": "16:00:00",\n "timezone": "America/Los_Angeles",\n "event_type": "Activity",\n "service_body": "5",\n "location_name": "Park Pavilion",\n "location_address": "456 Oak Ave",\n "location_details": ""\n },\n "categories": [],\n "tags": []\n}')))),React.createElement("div",{className:"card",id:"get-announcements"},React.createElement("h2",null,"GET /announcements"),React.createElement("p",null,"Retrieve a list of announcements with optional filtering. By default, only returns announcements within their active display window."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/announcements")),React.createElement("h3",null,"Query Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Default"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"priority")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter by priority level: ",React.createElement("code",null,"low"),", ",React.createElement("code",null,"normal"),", ",React.createElement("code",null,"high"),", ",React.createElement("code",null,"urgent"))),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated category slugs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated tag slugs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"linked_event")),React.createElement("td",null,"integer"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter by linked event ID")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"active")),React.createElement("td",null,"string"),React.createElement("td",null,"true"),React.createElement("td",null,"Set to ",React.createElement("code",null,"false")," to include announcements outside their display window")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/announcements?priority=urgent"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "announcements": [\n {\n "id": 789,\n "title": "Weather Closure Notice",\n "content": "<p>Due to severe weather...</p>",\n "excerpt": "Due to severe weather...",\n "link": "'.concat(e,'/announcement/weather-closure/",\n "display_start_date": "2024-03-14",\n "display_end_date": "2024-03-16",\n "priority": "urgent",\n "linked_events": [\n {\n "id": 123,\n "title": "Monthly Meeting",\n "permalink": "').concat(e,'/mayo/monthly-meeting/",\n "start_date": "2024-03-15"\n }\n ],\n "featured_image": null,\n "categories": [],\n "tags": []\n }\n ],\n "total": 1\n}')))),React.createElement("div",{className:"card",id:"get-announcement-id"},React.createElement("h2",null,"GET /announcement/","{id}"),React.createElement("p",null,"Retrieve a single announcement by its post ID."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/announcement/","{id}")),React.createElement("h3",null,"Path Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"id")),React.createElement("td",null,"integer"),React.createElement("td",null,"The announcement's post ID")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/announcement/789"))),React.createElement("h3",null,"Response"),React.createElement("p",null,"Returns a single announcement object (same structure as announcements in the list response)."),React.createElement("h3",null,"Error Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "not_found",\n "message": "Announcement not found",\n "data": {\n "status": 404\n }\n}'))),React.createElement("div",{className:"card",id:"get-settings"},React.createElement("h2",null,"GET /settings"),React.createElement("p",null,"Retrieve plugin settings. This endpoint is publicly accessible for frontend configuration."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/settings")),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "bmlt_root_server": "https://bmlt.example.org/main_server",\n "notification_email": "events@example.org",\n "default_service_bodies": "1,2,3",\n "external_sources": [\n {\n "id": "source_abc123",\n "url": "https://other-site.org",\n "name": "Other Site Events",\n "event_type": "",\n "service_body": "",\n "categories": "",\n "tags": "",\n "enabled": true\n }\n ]\n}'))),React.createElement("div",{className:"card",id:"post-settings"},React.createElement("h2",null,"POST /settings"),React.createElement("p",null,"Update plugin settings. ",React.createElement("strong",null,"Requires administrator authentication.")),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"POST ",e,"/wp-json/event-manager/v1/settings")),React.createElement("h3",null,"Authentication"),React.createElement("p",null,"Requires a logged-in user with ",React.createElement("code",null,"manage_options")," capability (administrator)."),React.createElement("p",null,"Include the WordPress REST API nonce in your request:"),React.createElement("pre",null,React.createElement("code",null,"// Using wp-api-fetch (recommended)\nimport apiFetch from '@wordpress/api-fetch';\napiFetch({ path: '/event-manager/v1/settings', method: 'POST', data: {...} });\n\n// Using fetch with nonce\nfetch('".concat(e,"/wp-json/event-manager/v1/settings', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': wpApiSettings.nonce\n },\n body: JSON.stringify({...})\n});"))),React.createElement("h3",null,"Request Body (JSON)"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Field"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"bmlt_root_server")),React.createElement("td",null,"string"),React.createElement("td",null,"BMLT root server URL")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"notification_email")),React.createElement("td",null,"string"),React.createElement("td",null,"Email address(es) for event submission notifications")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"default_service_bodies")),React.createElement("td",null,"string"),React.createElement("td",null,"Comma-separated service body IDs to restrict submissions")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"external_sources")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of external source configurations")))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "success": true,\n "settings": {\n "bmlt_root_server": "https://bmlt.example.org/main_server",\n "notification_email": "events@example.org",\n "default_service_bodies": "1,2,3",\n "external_sources": []\n }\n}')),React.createElement("h3",null,"Error Response (Unauthorized)"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "rest_forbidden",\n "message": "Sorry, you are not allowed to update settings.",\n "data": {\n "status": 401\n }\n}'))),React.createElement("div",{className:"card",id:"event-meta-fields"},React.createElement("h2",null,"Event Meta Fields"),React.createElement("p",null,"Events use the following meta fields, which are exposed via the WordPress REST API for the ",React.createElement("code",null,"mayo_event")," post type:"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Meta Key"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_type")),React.createElement("td",null,"string"),React.createElement("td",null,"Event type (Service, Activity, etc.)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"service_body")),React.createElement("td",null,"string"),React.createElement("td",null,"Service body ID")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"Start date (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"End date (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_time")),React.createElement("td",null,"string"),React.createElement("td",null,"Start time (HH:MM:SS)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_time")),React.createElement("td",null,"string"),React.createElement("td",null,"End time (HH:MM:SS)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"timezone")),React.createElement("td",null,"string"),React.createElement("td",null,"IANA timezone identifier")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Venue name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_address")),React.createElement("td",null,"string"),React.createElement("td",null,"Street address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_details")),React.createElement("td",null,"string"),React.createElement("td",null,"Additional location information")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"contact_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Contact person's name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"email")),React.createElement("td",null,"string"),React.createElement("td",null,"Contact email address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"recurring_pattern")),React.createElement("td",null,"object"),React.createElement("td",null,"Recurring event configuration")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"skipped_occurrences")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of skipped dates for recurring events"))))),React.createElement("div",{className:"card",id:"announcement-response"},React.createElement("h2",null,"Announcement Response Object"),React.createElement("p",null,"Announcements returned from the API include the following fields:"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Field"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"id")),React.createElement("td",null,"integer"),React.createElement("td",null,"The announcement's post ID")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"title")),React.createElement("td",null,"string"),React.createElement("td",null,"Announcement title")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"content")),React.createElement("td",null,"string"),React.createElement("td",null,"Full announcement content (HTML)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"excerpt")),React.createElement("td",null,"string"),React.createElement("td",null,"Short excerpt of the announcement")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"link")),React.createElement("td",null,"string"),React.createElement("td",null,"Permalink to the announcement")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"edit_link")),React.createElement("td",null,"string"),React.createElement("td",null,"Admin edit URL for the announcement")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"display_start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"When the announcement starts showing (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"display_end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"When the announcement stops showing (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"priority")),React.createElement("td",null,"string"),React.createElement("td",null,"Priority level: ",React.createElement("code",null,"low"),", ",React.createElement("code",null,"normal"),", ",React.createElement("code",null,"high"),", or ",React.createElement("code",null,"urgent"))),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"linked_events")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of linked event objects with ",React.createElement("code",null,"id"),", ",React.createElement("code",null,"title"),", ",React.createElement("code",null,"permalink"),", ",React.createElement("code",null,"start_date"))),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"is_active")),React.createElement("td",null,"boolean"),React.createElement("td",null,"Whether the announcement is currently within its display window")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"featured_image")),React.createElement("td",null,"string|null"),React.createElement("td",null,"URL of the featured image, if set")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of category objects")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of tag objects"))))),React.createElement("div",{className:"card",id:"wordpress-rest-api"},React.createElement("h2",null,"WordPress REST API"),React.createElement("p",null,"Events are also accessible via the standard WordPress REST API at ",React.createElement("code",null,"/wp-json/wp/v2/mayo_event"),"."),React.createElement("h3",null,"Example"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/wp/v2/mayo_event?per_page=10&status=publish"))),React.createElement("p",null,"This provides access to all standard WordPress post fields plus the registered meta fields above.")),React.createElement("div",{className:"card",id:"usage-examples"},React.createElement("h2",null,"Usage Examples"),React.createElement("h3",null,"JavaScript (Fetch API)"),React.createElement("pre",null,React.createElement("code",null,"// Get upcoming events\nfetch('".concat(e,"/wp-json/event-manager/v1/events?per_page=10')\n .then(response => response.json())\n .then(data => {\n console.log('Events:', data.events);\n console.log('Total:', data.pagination.total);\n });\n\n// Get events for a specific service body\nfetch('").concat(e,"/wp-json/event-manager/v1/events?service_body=1,2')\n .then(response => response.json())\n .then(data => console.log(data));\n\n// Get past events (archive)\nfetch('").concat(e,"/wp-json/event-manager/v1/events?archive=true&order=DESC')\n .then(response => response.json())\n .then(data => console.log(data));\n\n// Get active announcements\nfetch('").concat(e,"/wp-json/event-manager/v1/announcements')\n .then(response => response.json())\n .then(data => console.log(data.announcements));\n\n// Get urgent announcements only\nfetch('").concat(e,"/wp-json/event-manager/v1/announcements?priority=urgent')\n .then(response => response.json())\n .then(data => console.log(data));"))),React.createElement("h3",null,"PHP (WordPress)"),React.createElement("pre",null,React.createElement("code",null,"// Get events using wp_remote_get\n$response = wp_remote_get('".concat(e,"/wp-json/event-manager/v1/events?per_page=5');\n\nif (!is_wp_error($response)) {\n $body = wp_remote_retrieve_body($response);\n $data = json_decode($body, true);\n\n foreach ($data['events'] as $event) {\n echo $event['title']['rendered'] . '<br>';\n }\n}"))),React.createElement("h3",null,"cURL"),React.createElement("pre",null,React.createElement("code",null,'# Get events\ncurl "'.concat(e,'/wp-json/event-manager/v1/events?per_page=5"\n\n# Get a single event\ncurl "').concat(e,'/wp-json/event-manager/v1/event/monthly-meeting"\n\n# Get settings\ncurl "').concat(e,'/wp-json/event-manager/v1/settings"\n\n# Get announcements\ncurl "').concat(e,'/wp-json/event-manager/v1/announcements"\n\n# Get announcements for a specific event (use linked_event filter)\ncurl "').concat(e,'/wp-json/event-manager/v1/announcements?linked_event=123"')))))};function A(e){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(e)}function N(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return P(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(P(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,P(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,P(m,"constructor",u),P(u,"constructor",i),i.displayName="GeneratorFunction",P(u,l,"GeneratorFunction"),P(m),P(m,l,"Generator"),P(m,a,function(){return this}),P(m,"toString",function(){return"[object Generator]"}),(N=function(){return{w:r,m:d}})()}function P(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}P=function(e,t,n,a){function r(t,n){P(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},P(e,t,n,a)}function O(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function j(e){return function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){O(r,a,l,c,o,"next",e)}function o(e){O(r,a,l,c,o,"throw",e)}c(void 0)})}}function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach(function(t){M(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function M(e,t,n){return(t=function(e){var t=function(e){if("object"!=A(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=A(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==A(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||I(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){if(e){if("string"==typeof e)return L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var z=function(t){var a,l,r,c,o,i,u=t.subscriber,s=t.options,m=t.onSave,d=t.onClose,p=t.saving,E=F((0,e.useState)(u.status),2),f=E[0],R=E[1],v=F((0,e.useState)(function(){var e=u.preferences||{};return{categories:(e.categories||[]).map(function(e){return Number(e)}),tags:(e.tags||[]).map(function(e){return Number(e)}),service_bodies:(e.service_bodies||[]).map(function(e){return String(e)})}}),2),y=v[0],g=v[1],h=function(e,t,n){g(function(a){var l,r=a[e]||[];return B(B({},a),{},M({},e,n?[].concat(function(e){if(Array.isArray(e))return L(e)}(l=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||I(l)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[t]):r.filter(function(e){return e!==t})))})};return React.createElement(n.Modal,{title:"Edit Subscriber: ".concat(u.email),onRequestClose:d,className:"mayo-subscriber-edit-modal"},React.createElement("div",{style:{minWidth:"400px"}},React.createElement(n.SelectControl,{label:"Status",value:f,options:[{label:"Active",value:"active"},{label:"Pending",value:"pending"},{label:"Unsubscribed",value:"unsubscribed"}],onChange:R}),React.createElement("div",{style:{marginTop:"16px"}},React.createElement("h4",{style:{marginBottom:"8px"}},"Subscription Preferences"),React.createElement("p",{className:"description",style:{marginBottom:"12px"}},"Select which categories, tags, and service bodies this subscriber should receive notifications for. If none are selected, they will receive all announcements."),(null==s||null===(a=s.categories)||void 0===a?void 0:a.length)>0&&React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("strong",{style:{display:"block",marginBottom:"8px"}},"Categories"),s.categories.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:(t=e.id,y.categories.some(function(e){return Number(e)===Number(t)})),onChange:function(t){return h("categories",Number(e.id),t)}});var t})),(null==s||null===(l=s.tags)||void 0===l?void 0:l.length)>0&&React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("strong",{style:{display:"block",marginBottom:"8px"}},"Tags"),s.tags.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:(t=e.id,y.tags.some(function(e){return Number(e)===Number(t)})),onChange:function(t){return h("tags",Number(e.id),t)}});var t})),(null==s||null===(r=s.service_bodies)||void 0===r?void 0:r.length)>0&&React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("strong",{style:{display:"block",marginBottom:"8px"}},"Service Bodies"),s.service_bodies.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:(t=e.id,y.service_bodies.some(function(e){return String(e)===String(t)})),onChange:function(t){return h("service_bodies",String(e.id),t)}});var t})),!(null!=s&&null!==(c=s.categories)&&void 0!==c&&c.length)&&!(null!=s&&null!==(o=s.tags)&&void 0!==o&&o.length)&&!(null!=s&&null!==(i=s.service_bodies)&&void 0!==i&&i.length)&&React.createElement("p",{style:{color:"#646970",fontStyle:"italic"}},"No subscription options configured. Configure them in the Settings page.")),React.createElement("div",{style:{marginTop:"20px",display:"flex",gap:"8px",justifyContent:"flex-end"}},React.createElement(n.Button,{isSecondary:!0,onClick:d,disabled:p},"Cancel"),React.createElement(n.Button,{isPrimary:!0,onClick:function(){m(u.id,{status:f,preferences:y})},disabled:p},p?"Saving...":"Save Changes"))))};const G=function(){var t=F((0,e.useState)([]),2),a=t[0],l=t[1],r=F((0,e.useState)(!0),2),c=r[0],o=r[1],i=F((0,e.useState)(null),2),u=i[0],m=i[1],d=F((0,e.useState)("all"),2),p=d[0],E=d[1],f=F((0,e.useState)(""),2),R=f[0],v=f[1],y=F((0,e.useState)(null),2),g=y[0],h=y[1],b=F((0,e.useState)(null),2),_=b[0],S=b[1],w=F((0,e.useState)(!1),2),x=w[0],k=w[1];(0,e.useEffect)(function(){var e=function(){var e=j(N().m(function e(){var t,n,a,r,c;return N().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([s("/subscribers"),s("/subscription-options")]);case 1:t=e.v,n=F(t,2),a=n[0],r=n[1],l(a),S(r),e.n=3;break;case 2:e.p=2,c=e.v,m(c.message||"Failed to load subscribers");case 3:return e.p=3,o(!1),e.f(3);case 4:return e.a(2)}},e,null,[[0,2,3,4]])}));return function(){return e.apply(this,arguments)}}();e()},[]);var C=function(){var e=j(N().m(function e(t,n){var a,r;return N().w(function(e){for(;;)switch(e.p=e.n){case 0:return k(!0),e.p=1,e.n=2,s("/subscribers/".concat(t),{method:"PUT",body:JSON.stringify(n)});case 2:return e.n=3,s("/subscribers");case 3:a=e.v,l(a),h(null),e.n=5;break;case 4:e.p=4,r=e.v,alert("Failed to update subscriber: "+(r.message||"Unknown error"));case 5:return e.p=5,k(!1),e.f(5);case 6:return e.a(2)}},e,null,[[1,4,5,6]])}));return function(t,n){return e.apply(this,arguments)}}(),T=function(){var e=j(N().m(function e(t,n){var r;return N().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),window.confirm('Are you sure you want to delete subscriber "'.concat(n.email,'"? This action cannot be undone.'))){e.n=1;break}return e.a(2);case 1:return e.p=1,e.n=2,s("/subscribers/".concat(n.id),{method:"DELETE"});case 2:l(a.filter(function(e){return e.id!==n.id})),e.n=4;break;case 3:e.p=3,r=e.v,alert("Failed to delete subscriber: "+(r.message||"Unknown error"));case 4:return e.a(2)}},e,null,[[1,3]])}));return function(t,n){return e.apply(this,arguments)}}(),A=(0,e.useMemo)(function(){return a.filter(function(e){return!("all"!==p&&e.status!==p||R&&!e.email.toLowerCase().includes(R.toLowerCase()))})},[a,p,R]),P=(0,e.useMemo)(function(){var e={all:a.length,active:0,pending:0,unsubscribed:0};return a.forEach(function(t){void 0!==e[t.status]&&e[t.status]++}),e},[a]),O=function(e){return e?new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}):"—"},D={category:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e3f2fd",color:"#1565c0",borderRadius:"3px",marginRight:"4px",marginBottom:"4px"},tag:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#fff3e0",color:"#e65100",borderRadius:"3px",marginRight:"4px",marginBottom:"4px"},serviceBody:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e8f5e9",color:"#2e7d32",borderRadius:"3px",marginRight:"4px",marginBottom:"4px"},all:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",color:"#666",borderRadius:"3px"}};return c?React.createElement("div",{className:"wrap"},React.createElement("h1",{className:"wp-heading-inline"},"Subscribers"),React.createElement("hr",{className:"wp-header-end"}),React.createElement("div",{style:{padding:"20px",textAlign:"center"}},React.createElement(n.Spinner,null))):u?React.createElement("div",{className:"wrap"},React.createElement("h1",{className:"wp-heading-inline"},"Subscribers"),React.createElement("hr",{className:"wp-header-end"}),React.createElement("div",{className:"notice notice-error"},React.createElement("p",null,u))):React.createElement("div",{className:"wrap"},React.createElement("h1",{className:"wp-heading-inline"},"Subscribers"),React.createElement("hr",{className:"wp-header-end"}),React.createElement("ul",{className:"subsubsub"},React.createElement("li",{className:"all"},React.createElement("a",{href:"#",className:"all"===p?"current":"",onClick:function(e){e.preventDefault(),E("all")}},"All ",React.createElement("span",{className:"count"},"(",P.all,")"))," |"),React.createElement("li",{className:"active"},React.createElement("a",{href:"#",className:"active"===p?"current":"",onClick:function(e){e.preventDefault(),E("active")}},"Active ",React.createElement("span",{className:"count"},"(",P.active,")"))," |"),React.createElement("li",{className:"pending"},React.createElement("a",{href:"#",className:"pending"===p?"current":"",onClick:function(e){e.preventDefault(),E("pending")}},"Pending ",React.createElement("span",{className:"count"},"(",P.pending,")"))," |"),React.createElement("li",{className:"unsubscribed"},React.createElement("a",{href:"#",className:"unsubscribed"===p?"current":"",onClick:function(e){e.preventDefault(),E("unsubscribed")}},"Unsubscribed ",React.createElement("span",{className:"count"},"(",P.unsubscribed,")")))),React.createElement("p",{className:"search-box"},React.createElement("label",{className:"screen-reader-text",htmlFor:"subscriber-search-input"},"Search Subscribers:"),React.createElement("input",{type:"search",id:"subscriber-search-input",value:R,onChange:function(e){return v(e.target.value)},placeholder:"Search by email..."})),React.createElement("div",{style:{clear:"both"}}),React.createElement("table",{className:"wp-list-table widefat fixed striped table-view-list"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{scope:"col",className:"manage-column column-email column-primary"},"Email"),React.createElement("th",{scope:"col",className:"manage-column column-status"},"Status"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Subscribed"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Confirmed"),React.createElement("th",{scope:"col",className:"manage-column column-preferences"},"Preferences"))),React.createElement("tbody",{id:"the-list"},0===A.length?React.createElement("tr",{className:"no-items"},React.createElement("td",{className:"colspanchange",colSpan:"5"},"No subscribers found.")):A.map(function(t){var n,a,l,r,c,o,i;return React.createElement(e.Fragment,{key:t.id},React.createElement("tr",null,React.createElement("td",{className:"email column-email column-primary","data-colname":"Email"},React.createElement("strong",null,t.email),React.createElement("div",{className:"row-actions visible",style:{visibility:"visible"}},React.createElement("span",{className:"edit"},React.createElement("button",{type:"button",className:"button button-small button-primary",onClick:function(){return h(t)},style:{marginRight:"4px"}},"Edit")),React.createElement("span",{className:"delete"},React.createElement("button",{type:"button",className:"button button-small button-link-delete",onClick:function(e){return T(e,t)},style:{color:"#b32d2e"}},"Delete")))),React.createElement("td",{className:"status column-status","data-colname":"Status"},React.createElement("span",{className:"mayo-subscriber-status mayo-status-".concat(t.status)},t.status.charAt(0).toUpperCase()+t.status.slice(1))),React.createElement("td",{className:"date column-date","data-colname":"Subscribed"},O(t.created_at)),React.createElement("td",{className:"date column-date","data-colname":"Confirmed"},O(t.confirmed_at)),React.createElement("td",{className:"preferences column-preferences","data-colname":"Preferences"},React.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px"}},((r=t.preferences)?((null===(c=r.categories)||void 0===c?void 0:c.length)||0)+((null===(o=r.tags)||void 0===o?void 0:o.length)||0)+((null===(i=r.service_bodies)||void 0===i?void 0:i.length)||0):0)>0?React.createElement(React.Fragment,null,null===(n=t.preferences.categories)||void 0===n?void 0:n.map(function(e,n){var a;return React.createElement("span",{key:"cat-".concat(e),style:D.category},(null===(a=t.preferences_display)||void 0===a||null===(a=a.categories)||void 0===a?void 0:a[n])||function(e){var t,n=null==_||null===(t=_.categories)||void 0===t?void 0:t.find(function(t){return String(t.id)===String(e)});return(null==n?void 0:n.name)||"Category ".concat(e)}(e))}),null===(a=t.preferences.tags)||void 0===a?void 0:a.map(function(e,n){var a;return React.createElement("span",{key:"tag-".concat(e),style:D.tag},(null===(a=t.preferences_display)||void 0===a||null===(a=a.tags)||void 0===a?void 0:a[n])||function(e){var t,n=null==_||null===(t=_.tags)||void 0===t?void 0:t.find(function(t){return String(t.id)===String(e)});return(null==n?void 0:n.name)||"Tag ".concat(e)}(e))}),null===(l=t.preferences.service_bodies)||void 0===l?void 0:l.map(function(e,n){var a;return React.createElement("span",{key:"sb-".concat(e),style:D.serviceBody},(null===(a=t.preferences_display)||void 0===a||null===(a=a.service_bodies)||void 0===a?void 0:a[n])||function(e){var t,n=null==_||null===(t=_.service_bodies)||void 0===t?void 0:t.find(function(t){return String(t.id)===String(e)});return(null==n?void 0:n.name)||"Service Body ".concat(e)}(e))})):React.createElement("span",{style:D.all},"All announcements")))))})),React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("th",{scope:"col",className:"manage-column column-email column-primary"},"Email"),React.createElement("th",{scope:"col",className:"manage-column column-status"},"Status"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Subscribed"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Confirmed"),React.createElement("th",{scope:"col",className:"manage-column column-preferences"},"Preferences")))),React.createElement("div",{className:"tablenav bottom"},React.createElement("div",{className:"tablenav-pages one-page"},React.createElement("span",{className:"displaying-num"},A.length," item",1!==A.length?"s":""))),g&&React.createElement(z,{subscriber:g,options:_,onSave:C,onClose:function(){return h(null)},saving:x}))},U=wp.plugins,W=React;function Y(e){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Y(e)}function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?H(Object(n),!0).forEach(function(t){J(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function J(e,t,n){return(t=function(e){var t=function(e){if("object"!=Y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Y(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return K(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(K(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,K(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,K(m,"constructor",u),K(u,"constructor",i),i.displayName="GeneratorFunction",K(u,l,"GeneratorFunction"),K(m),K(m,l,"Generator"),K(m,a,function(){return this}),K(m,"toString",function(){return"[object Generator]"}),($=function(){return{w:r,m:d}})()}function K(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}K=function(e,t,n,a){function r(t,n){K(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},K(e,t,n,a)}function V(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Q(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var X=(0,W.createContext)(),ee=function(){return(0,W.useContext)(X)},te=function(e){var t=e.children,n=Z((0,W.useState)([]),2),a=n[0],l=n[1],r=Z((0,W.useState)({}),2),c=r[0],o=r[1],i=Z((0,W.useState)(!0),2),u=i[0],m=i[1];return(0,W.useEffect)(function(){var e=function(){var e,t=(e=$().m(function e(){var t,n,a,r,c,o;return $().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,m(!0),e.n=1,s("/settings");case 1:if(t=e.v,n=t.bmlt_root_server){e.n=2;break}throw new Error("BMLT root server URL not set");case 2:return e.n=3,fetch("".concat(n,"/client_interface/json/?switcher=GetServiceBodies"));case 3:return a=e.v,e.n=4,a.json();case 4:r=e.v,c=r.sort(function(e,t){return e.name.localeCompare(t.name)}),l(c),e.n=6;break;case 5:e.p=5,o=e.v,console.error("Error fetching service bodies:",o),setError("Failed to load service bodies");case 6:return e.p=6,m(!1),e.f(6);case 7:return e.a(2)}},e,null,[[0,5,6,7]])}),function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){V(r,a,l,c,o,"next",e)}function o(e){V(r,a,l,c,o,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),React.createElement(X.Provider,{value:{serviceBodies:a,getServiceBodyName:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if("local"===t){var n=a.find(function(t){return t.id===e});return(null==n?void 0:n.name)||"Out of Area"}if(c[t]){var l=c[t].find(function(t){return t.id===e});return(null==l?void 0:l.name)||"Out of Area"}return"Out of Area"},updateExternalServiceBodies:function(e,t){t&&Array.isArray(t)&&0!==t.length&&o(function(n){return q(q({},n),{},J({},e,t))})}}},u?React.createElement("div",null,"Loading..."):t)};const ne=wp.editor,ae=wp.data;wp.i18n;var le=[{label:"Eastern Time (US/Canada)",value:"America/New_York",region:"North America"},{label:"Central Time (US/Canada)",value:"America/Chicago",region:"North America"},{label:"Mountain Time (US/Canada)",value:"America/Denver",region:"North America"},{label:"Pacific Time (US/Canada)",value:"America/Los_Angeles",region:"North America"},{label:"Alaska Time (US)",value:"America/Anchorage",region:"North America"},{label:"Hawaii Time (US)",value:"Pacific/Honolulu",region:"North America"},{label:"Atlantic Time (Canada)",value:"America/Halifax",region:"North America"},{label:"Newfoundland Time (Canada)",value:"America/St_Johns",region:"North America"},{label:"Mexico City Time",value:"America/Mexico_City",region:"North America"},{label:"London (GMT/BST)",value:"Europe/London",region:"Europe"},{label:"Paris (CET/CEST)",value:"Europe/Paris",region:"Europe"},{label:"Berlin (CET/CEST)",value:"Europe/Berlin",region:"Europe"},{label:"Rome (CET/CEST)",value:"Europe/Rome",region:"Europe"},{label:"Madrid (CET/CEST)",value:"Europe/Madrid",region:"Europe"},{label:"Amsterdam (CET/CEST)",value:"Europe/Amsterdam",region:"Europe"},{label:"Brussels (CET/CEST)",value:"Europe/Brussels",region:"Europe"},{label:"Zurich (CET/CEST)",value:"Europe/Zurich",region:"Europe"},{label:"Vienna (CET/CEST)",value:"Europe/Vienna",region:"Europe"},{label:"Stockholm (CET/CEST)",value:"Europe/Stockholm",region:"Europe"},{label:"Oslo (CET/CEST)",value:"Europe/Oslo",region:"Europe"},{label:"Copenhagen (CET/CEST)",value:"Europe/Copenhagen",region:"Europe"},{label:"Helsinki (EET/EEST)",value:"Europe/Helsinki",region:"Europe"},{label:"Athens (EET/EEST)",value:"Europe/Athens",region:"Europe"},{label:"Istanbul (TRT)",value:"Europe/Istanbul",region:"Europe"},{label:"Moscow (MSK)",value:"Europe/Moscow",region:"Europe"},{label:"Dublin (GMT/IST)",value:"Europe/Dublin",region:"Europe"},{label:"Lisbon (WET/WEST)",value:"Europe/Lisbon",region:"Europe"},{label:"Tokyo (JST)",value:"Asia/Tokyo",region:"Asia"},{label:"Shanghai (CST)",value:"Asia/Shanghai",region:"Asia"},{label:"Hong Kong (HKT)",value:"Asia/Hong_Kong",region:"Asia"},{label:"Singapore (SGT)",value:"Asia/Singapore",region:"Asia"},{label:"Seoul (KST)",value:"Asia/Seoul",region:"Asia"},{label:"Bangkok (ICT)",value:"Asia/Bangkok",region:"Asia"},{label:"Manila (PHT)",value:"Asia/Manila",region:"Asia"},{label:"Jakarta (WIB)",value:"Asia/Jakarta",region:"Asia"},{label:"Mumbai (IST)",value:"Asia/Kolkata",region:"Asia"},{label:"Dubai (GST)",value:"Asia/Dubai",region:"Asia"},{label:"Riyadh (AST)",value:"Asia/Riyadh",region:"Asia"},{label:"Tel Aviv (IST)",value:"Asia/Jerusalem",region:"Asia"},{label:"Dhaka (BST)",value:"Asia/Dhaka",region:"Asia"},{label:"Karachi (PKT)",value:"Asia/Karachi",region:"Asia"},{label:"Tashkent (UZT)",value:"Asia/Tashkent",region:"Asia"},{label:"Sydney (AEST/AEDT)",value:"Australia/Sydney",region:"Australia & Oceania"},{label:"Melbourne (AEST/AEDT)",value:"Australia/Melbourne",region:"Australia & Oceania"},{label:"Brisbane (AEST)",value:"Australia/Brisbane",region:"Australia & Oceania"},{label:"Perth (AWST)",value:"Australia/Perth",region:"Australia & Oceania"},{label:"Adelaide (ACST/ACDT)",value:"Australia/Adelaide",region:"Australia & Oceania"},{label:"Darwin (ACST)",value:"Australia/Darwin",region:"Australia & Oceania"},{label:"Hobart (AEST/AEDT)",value:"Australia/Hobart",region:"Australia & Oceania"},{label:"Auckland (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Wellington (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Fiji (FJT)",value:"Pacific/Fiji",region:"Australia & Oceania"},{label:"Cairo (EET)",value:"Africa/Cairo",region:"Africa"},{label:"Cape Town (SAST)",value:"Africa/Johannesburg",region:"Africa"},{label:"Lagos (WAT)",value:"Africa/Lagos",region:"Africa"},{label:"Nairobi (EAT)",value:"Africa/Nairobi",region:"Africa"},{label:"Casablanca (WET)",value:"Africa/Casablanca",region:"Africa"},{label:"Tunis (CET)",value:"Africa/Tunis",region:"Africa"},{label:"São Paulo (BRT)",value:"America/Sao_Paulo",region:"South America"},{label:"Buenos Aires (ART)",value:"America/Argentina/Buenos_Aires",region:"South America"},{label:"Santiago (CLT)",value:"America/Santiago",region:"South America"},{label:"Lima (PET)",value:"America/Lima",region:"South America"},{label:"Bogotá (COT)",value:"America/Bogota",region:"South America"},{label:"Caracas (VET)",value:"America/Caracas",region:"South America"}],re=function(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;return le.find(function(t){return t.value===e})?e:"America/New_York"}catch(e){return"America/New_York"}};function ce(e){return ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ce(e)}function oe(e){return function(e){if(Array.isArray(e))return Re(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||fe(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(n),!0).forEach(function(t){se(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ie(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function se(e,t,n){return(t=function(e){var t=function(e){if("object"!=ce(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ce(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ce(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function me(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return de(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(de(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,de(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,de(m,"constructor",u),de(u,"constructor",i),i.displayName="GeneratorFunction",de(u,l,"GeneratorFunction"),de(m),de(m,l,"Generator"),de(m,a,function(){return this}),de(m,"toString",function(){return"[object Generator]"}),(me=function(){return{w:r,m:d}})()}function de(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}de=function(e,t,n,a){function r(t,n){de(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},de(e,t,n,a)}function pe(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function Ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||fe(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fe(e,t){if(e){if("string"==typeof e)return Re(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Re(e,t):void 0}}function Re(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const ve=function(){var t,a,l=ee().serviceBodies,r=Ee((0,e.useState)(!1),2),c=r[0],o=r[1],i=Ee((0,e.useState)(""),2),u=i[0],m=i[1],d=Ee((0,e.useState)([]),2),p=d[0],E=d[1],f=Ee((0,e.useState)(!1),2),R=f[0],v=f[1],y=(0,ae.useSelect)(function(e){return e("core/editor").getCurrentPostType()}),g=(0,ae.useSelect)(function(e){return e("core/editor").getCurrentPostId()}),h=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("meta")||{}}),b=(0,ae.useDispatch)("core/editor").editPost,_=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("status")});if((0,e.useEffect)(function(){if("mayo_event"===y&&g&&"auto-draft"!==_){var e=function(){var e,t=(e=me().m(function e(){var t,n;return me().w(function(e){for(;;)switch(e.p=e.n){case 0:return v(!0),e.p=1,e.n=2,s("/announcements?linked_event=".concat(g));case 2:t=e.v,E(t.announcements||[]),e.n=4;break;case 3:e.p=3,n=e.v,console.error("Error fetching linked announcements:",n),E([]);case 4:v(!1);case 5:return e.a(2)}},e,null,[[1,3]])}),function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){pe(r,a,l,c,o,"next",e)}function o(e){pe(r,a,l,c,o,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()}},[y,g,_]),"mayo_event"!==y)return null;var S="auto-draft"===_,w=function(e,t){b({meta:ue(ue({},h),{},se({},e,t))})},x=h.recurring_pattern||{type:"none",interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"",monthlyWeekday:""},k=function(e){var t=ue(ue(ue({},x),e),{},{weekdays:e.weekdays||x.weekdays||[]});w("recurring_pattern",t)},C=h.skipped_occurrences||[],T=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}],A=function(){return h.event_start_date?new Date(h.event_start_date).getDate().toString():""},N=function(){if(h.event_start_date){var e=new Date(h.event_start_date),t=Math.ceil(e.getDate()/7);return"".concat(t,",").concat(e.getDay())}return""};return React.createElement(React.Fragment,null,React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-event-details",title:"Event Details",className:"mayo-event-details"},React.createElement(n.SelectControl,{label:"Event Type",value:h.event_type,options:[{label:"Select Event Type",value:""},{label:"Service",value:"Service"},{label:"Activity",value:"Activity"}],onChange:function(e){return w("event_type",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.PanelBody,{title:"Event Date & Time",initialOpen:!0},React.createElement("div",{className:"mayo-sidebar-datetime"},React.createElement("p",{className:"mayo-sidebar-label"},"Start Date/Time"),React.createElement("div",{className:"mayo-sidebar-datetime-inputs"},React.createElement(n.TextControl,{type:"date",value:h.event_start_date,onChange:function(e){return w("event_start_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{type:"time",value:h.event_start_time,onChange:function(e){return w("event_start_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("p",{className:"mayo-sidebar-label"},"End Date/Time"),React.createElement("div",{className:"mayo-sidebar-datetime-inputs"},React.createElement(n.TextControl,{type:"date",value:h.event_end_date,onChange:function(e){return w("event_end_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{type:"time",value:h.event_end_time,onChange:function(e){return w("event_end_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),React.createElement(n.SelectControl,{label:"Timezone",value:h.timezone||(S?re():""),options:[{label:"-- No timezone set --",value:""}].concat(oe(le.map(function(e){return{label:e.label,value:e.value}}))),onChange:function(e){return w("timezone",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(n.PanelBody,{title:"Recurring Pattern",initialOpen:!0},React.createElement(n.SelectControl,{label:"Repeat",value:x.type,options:[{label:"No Recurrence",value:"none"},{label:"Daily",value:"daily"},{label:"Weekly",value:"weekly"},{label:"Monthly",value:"monthly"}],onChange:function(e){return k({type:e})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),"none"!==x.type&&React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-recurring-interval"},React.createElement(n.__experimentalNumberControl,{label:"Repeat every",min:1,value:x.interval,onChange:function(e){return k({interval:e})}}),React.createElement("span",null,"daily"===x.type?"days":"weekly"===x.type?"weeks":"months")),"weekly"===x.type&&React.createElement("div",{className:"mayo-weekday-controls"},React.createElement("p",{className:"components-base-control__label"},"On these days"),T.map(function(e){return React.createElement(n.CheckboxControl,{key:e.value,label:e.label,checked:x.weekdays.includes(e.value),onChange:function(t){var n=t?[].concat(oe(x.weekdays),[e.value]):x.weekdays.filter(function(t){return t!==e.value});k({weekdays:n})}})})),React.createElement(n.TextControl,{label:"End Date (optional)",type:"date",value:x.endDate,onChange:function(e){return k({endDate:e})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),"monthly"===x.type&&React.createElement("div",{className:"mayo-monthly-pattern"},React.createElement(n.RadioControl,{label:"Monthly Pattern",selected:x.monthlyType||"date",options:[{label:"On a specific date",value:"date"},{label:"On a specific day",value:"weekday"}],onChange:function(e){return k({monthlyType:e,monthlyDate:"date"===e?A():"",monthlyWeekday:"weekday"===e?N():""})}}),"date"===x.monthlyType&&React.createElement(n.__experimentalNumberControl,{label:"Day of month",value:x.monthlyDate||A(),onChange:function(e){return k({monthlyDate:e})},min:1,max:31}),"weekday"===x.monthlyType&&React.createElement("div",{className:"mayo-monthly-weekday"},React.createElement(n.SelectControl,{label:"Week",value:(null===(t=x.monthlyWeekday)||void 0===t?void 0:t.split(",")[0])||"1",options:[{value:"1",label:"First"},{value:"2",label:"Second"},{value:"3",label:"Third"},{value:"4",label:"Fourth"},{value:"5",label:"Fifth"},{value:"-1",label:"Last"}],onChange:function(e){var t,n=(null===(t=x.monthlyWeekday)||void 0===t?void 0:t.split(",")[1])||"0";k({monthlyWeekday:"".concat(e,",").concat(n)})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.SelectControl,{label:"Day",value:(null===(a=x.monthlyWeekday)||void 0===a?void 0:a.split(",")[1])||"0",options:T,onChange:function(e){var t,n=(null===(t=x.monthlyWeekday)||void 0===t?void 0:t.split(",")[0])||"1";k({monthlyWeekday:"".concat(n,",").concat(e)})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})))),"none"!==x.type&&React.createElement(n.PanelBody,{title:"Skipped Occurrences",initialOpen:!1},React.createElement("p",{className:"components-base-control__help"},"Manage specific dates when this recurring event should not occur."),C.length>0&&React.createElement("div",{className:"mayo-skipped-occurrences-list"},React.createElement("p",{className:"components-base-control__label"},"Skipped Dates:"),C.map(function(e,t){return React.createElement("div",{key:t,className:"mayo-skipped-occurrence-item"},React.createElement("span",null,(l=(a=Ee(e.split("-").map(Number),3))[0],r=a[1],c=a[2],new Date(l,r-1,c).toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric"}))),React.createElement(n.Button,{isSmall:!0,isDestructive:!0,onClick:function(){return t=e,n=C.filter(function(e){return e!==t}),void w("skipped_occurrences",n);var t,n}},"Remove"));var a,l,r,c})),c?React.createElement("div",{className:"mayo-add-skip-form"},React.createElement(n.TextControl,{type:"date",label:"Date to skip",value:u,onChange:m,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{className:"mayo-add-skip-actions"},React.createElement(n.Button,{isPrimary:!0,isSmall:!0,onClick:function(){if(u){var e=[].concat(oe(C),[u]);w("skipped_occurrences",e),m(""),o(!1)}},disabled:!u},"Add Skip"),React.createElement(n.Button,{isSecondary:!0,isSmall:!0,onClick:function(){o(!1),m("")}},"Cancel"))):React.createElement(n.Button,{isSecondary:!0,isSmall:!0,onClick:function(){return o(!0)}},"Add Skipped Date")),React.createElement(n.PanelBody,{title:"Service Body",initialOpen:!0},React.createElement(n.SelectControl,{label:"Service Body",value:h.service_body,options:[{label:"Select a service body",value:""},{label:"Unaffiliated (0)",value:"0"}].concat(oe(l.map(function(e){return{label:"".concat(e.name," (").concat(e.id,")"),value:e.id}}))),onChange:function(e){return w("service_body",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(n.PanelBody,{title:"Location Details",initialOpen:!0},React.createElement(n.TextControl,{label:"Location Name",value:h.location_name,onChange:function(e){return w("location_name",e)},placeholder:"e.g., Community Center",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Address",value:h.location_address,onChange:function(e){return w("location_address",e)},placeholder:"Full address",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Location Details",value:h.location_details,onChange:function(e){return w("location_details",e)},placeholder:"Parking info, entrance details, etc.",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-point-of-contact",title:"Point of Contact",className:"mayo-private-contact"},React.createElement(n.PanelBody,{title:"Contact Information (Private)",initialOpen:!0},React.createElement(n.TextControl,{label:"Contact Name",value:h.contact_name,onChange:function(e){return w("contact_name",e)},placeholder:"Full name of the contact person",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Contact Email",value:h.email,onChange:function(e){return w("email",e)},placeholder:"Email address",type:"email",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),!S&&React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-linked-announcements",title:"Linked Announcements",className:"mayo-linked-announcements"},React.createElement("p",{className:"components-base-control__help",style:{marginTop:0}},"Announcements that reference this event."),R&&React.createElement("div",{style:{textAlign:"center",padding:"16px"}},React.createElement(n.Spinner,null)),!R&&0===p.length&&React.createElement("p",{style:{color:"#666",fontStyle:"italic"}},"No announcements linked to this event."),!R&&p.length>0&&React.createElement("div",{className:"mayo-linked-announcements-list"},p.map(function(e){var t=e.is_active?"#46b450":e.display_start_date&&e.display_start_date>(new Date).toISOString().split("T")[0]?"#0073aa":"#dc3545",n=e.is_active?"Active":e.display_start_date&&e.display_start_date>(new Date).toISOString().split("T")[0]?"Scheduled":"Expired";return React.createElement("div",{key:e.id,style:{padding:"10px 12px",backgroundColor:"#f9f9f9",borderRadius:"4px",marginBottom:"8px",borderLeft:"3px solid ".concat(t)}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"}},React.createElement("strong",null,e.title),React.createElement("span",{style:{fontSize:"11px",color:t,fontWeight:600}},n)),React.createElement("div",{style:{fontSize:"12px",color:"#666",marginTop:"4px"}},"Priority: ",React.createElement("span",{style:{color:"urgent"===e.priority?"#dc3545":"high"===e.priority?"#ff9800":"low"===e.priority?"#6c757d":"#0073aa",fontWeight:600}},e.priority)),React.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"8px"}},e.edit_link&&React.createElement("a",{href:e.edit_link,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",border:"1px solid #c3c4c7",borderRadius:"3px",textDecoration:"none",color:"#2271b1",whiteSpace:"nowrap"}},React.createElement("span",{className:"dashicons dashicons-edit",style:{fontSize:"14px",marginRight:"4px",width:"14px",height:"14px"}}),"Edit")))})),React.createElement("div",{style:{marginTop:"12px"}},React.createElement(n.Button,{isSecondary:!0,href:"".concat(window.location.origin,"/wp-admin/post-new.php?post_type=mayo_announcement&linked_event=").concat(g),target:"_blank"},"Create Announcement"))))};function ye(e){return ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ye(e)}function ge(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(ye(e)+" is not iterable")}function he(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ne(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0,l=function(){};return{s:l,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,c=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){o=!0,r=e},f:function(){try{c||null==n.return||n.return()}finally{if(o)throw r}}}}function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function _e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach(function(t){Se(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Se(e,t,n){return(t=function(e){var t=function(e){if("object"!=ye(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ye(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ye(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function we(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return xe(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(xe(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,xe(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,xe(m,"constructor",u),xe(u,"constructor",i),i.displayName="GeneratorFunction",xe(u,l,"GeneratorFunction"),xe(m),xe(m,l,"Generator"),xe(m,a,function(){return this}),xe(m,"toString",function(){return"[object Generator]"}),(we=function(){return{w:r,m:d}})()}function xe(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}xe=function(e,t,n,a){function r(t,n){xe(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},xe(e,t,n,a)}function ke(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ne(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ce(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function Te(e){return function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){Ce(r,a,l,c,o,"next",e)}function o(e){Ce(r,a,l,c,o,"throw",e)}c(void 0)})}}function Ae(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||Ne(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ne(e,t){if(e){if("string"==typeof e)return Pe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Pe(e,t):void 0}}function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}(0,U.getPlugins)().some(function(e){return"mayo-event-details"===e.name})||(0,U.registerPlugin)("mayo-event-details",{render:function(){return React.createElement(te,null,React.createElement(ve,null))},icon:"calendar"});var Oe=function(t){var a=t.isOpen,l=t.onClose,r=t.onSelectEvent,c=t.onRemoveEvent,o=t.linkedEventRefs,i=(t.getRefKey,Ae((0,e.useState)(""),2)),u=i[0],m=i[1],d=Ae((0,e.useState)([]),2),p=d[0],E=d[1],f=Ae((0,e.useState)(!1),2),R=f[0],v=f[1],y=Ae((0,e.useState)(!1),2),g=y[0],h=y[1],b=Ae((0,e.useState)(1),2),_=b[0],S=b[1],w=Ae((0,e.useState)(!0),2),x=w[0],k=w[1],C=Ae((0,e.useState)(0),2),T=C[0],A=C[1],N=Ae((0,e.useState)(!0),2),P=N[0],O=N[1],j=(0,e.useRef)(null),D=(0,e.useRef)(null),B=function(e){return o.some(function(t){return"local"===t.type&&"local"===e.source.type?t.id===e.id:"external"===t.type&&"external"===e.source.type&&t.id===e.id&&t.source_id===e.source.id})},M=(0,e.useCallback)(function(){var e=Te(we().m(function e(t,n,a){var l,r,c,o,i,u=arguments;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return l=u.length>3&&void 0!==u[3]&&u[3],1===n?v(!0):h(!0),e.p=1,r=new URLSearchParams({per_page:20,page:n,hide_past:a?"1":"0"}),t&&r.append("search",t),e.n=2,s("/events/search-all?".concat(r.toString()));case 2:c=e.v,o=c.events||[],E(l?function(e){return[].concat(ke(e),ke(o))}:o),A(c.total||0),k(n<(c.total_pages||1)),S(n),e.n=4;break;case 3:e.p=3,i=e.v,console.error("Error fetching events:",i),l||E([]),k(!1);case 4:return e.p=4,v(!1),h(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}));return function(t,n,a){return e.apply(this,arguments)}}(),[]);(0,e.useEffect)(function(){if(a)return D.current&&clearTimeout(D.current),D.current=setTimeout(function(){M(u,1,P,!1)},300),function(){D.current&&clearTimeout(D.current)}},[a,u,P,M]),(0,e.useEffect)(function(){a&&(m(""),E([]),S(1),k(!0),O(!0))},[a]);var F=(0,e.useCallback)(function(){if(j.current&&!R&&!g&&x){var e=j.current,t=e.scrollTop;e.scrollHeight-t-e.clientHeight<100&&M(u,_+1,P,!0)}},[R,g,x,u,_,P,M]);return a?React.createElement(n.Modal,{title:"Link Events",onRequestClose:l,style:{maxWidth:"600px",width:"100%"},className:"mayo-event-search-modal"},React.createElement("div",{style:{marginBottom:"16px"}},React.createElement(n.TextControl,{label:"Search Events",value:u,onChange:m,placeholder:"Search by event name...",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"8px"}},React.createElement(n.CheckboxControl,{label:"Hide past events",checked:P,onChange:O,__nextHasNoMarginBottom:!0}),T>0&&React.createElement("span",{style:{fontSize:"12px",color:"#666"}},T," event",1!==T?"s":""," found"))),React.createElement("div",{ref:j,onScroll:F,style:{maxHeight:"400px",overflowY:"auto",border:"1px solid #ddd",borderRadius:"4px",backgroundColor:"#fff"}},R&&React.createElement("div",{style:{textAlign:"center",padding:"40px"}},React.createElement(n.Spinner,null),React.createElement("p",{style:{margin:"8px 0 0",color:"#666"}},"Loading events...")),!R&&0===p.length&&React.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#666"}},u?'No events found matching "'.concat(u,'"'):"No events available"),!R&&p.map(function(e){var t="external"===e.source.type,a=B(e),l=t?"external-".concat(e.source.id,"-").concat(e.id):"local-".concat(e.id);return React.createElement("div",{key:l,style:{padding:"12px 16px",borderBottom:"1px solid #eee",cursor:"pointer",transition:"background-color 0.2s",backgroundColor:a?"#e8f5e9":"transparent",borderLeft:"4px solid ".concat(a?"#4caf50":t?"#ff9800":"#0073aa")},onClick:function(){return a?null:function(e){B(e)||r(e)}(e)},onMouseEnter:function(e){a||(e.currentTarget.style.backgroundColor="#f0f7ff")},onMouseLeave:function(e){a||(e.currentTarget.style.backgroundColor=a?"#e8f5e9":"transparent")}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},React.createElement("div",{style:{flex:1}},React.createElement("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center"}},a&&React.createElement("span",{className:"dashicons dashicons-yes-alt",style:{color:"#4caf50",fontSize:"16px",marginRight:"6px",width:"16px",height:"16px"}}),e.title),e.start_date&&React.createElement("div",{style:{fontSize:"12px",color:"#666",marginBottom:"4px"}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"12px",marginRight:"4px",verticalAlign:"middle",width:"12px",height:"12px"}}),function(e){if(!e)return"";try{var t=Ae(e.split("-").map(Number),3),n=t[0],a=t[1],l=t[2];return new Date(n,a-1,l).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch(t){return e}}(e.start_date))),React.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},React.createElement("span",{style:{fontSize:"10px",backgroundColor:t?"#fff3e0":"#e3f2fd",color:t?"#e65100":"#1565c0",padding:"3px 8px",borderRadius:"3px",whiteSpace:"nowrap"}},e.source.name),a&&React.createElement(n.Button,{isSmall:!0,isDestructive:!0,onClick:function(t){return function(e,t){t.stopPropagation(),c(e)}(e,t)},style:{minWidth:"auto"}},"Unlink"))))}),g&&React.createElement("div",{style:{textAlign:"center",padding:"16px"}},React.createElement(n.Spinner,null),React.createElement("span",{style:{marginLeft:"8px",color:"#666",fontSize:"12px"}},"Loading more...")),!R&&!g&&!x&&p.length>0&&React.createElement("div",{style:{textAlign:"center",padding:"12px",color:"#666",fontSize:"12px"}},"End of results")),React.createElement("div",{style:{marginTop:"16px",textAlign:"right"}},React.createElement(n.Button,{variant:"secondary",onClick:l},"Close"))):null};const je=function(){var t=Ae((0,e.useState)(!1),2),a=t[0],l=t[1],r=Ae((0,e.useState)(!1),2),c=r[0],o=r[1],i=Ae((0,e.useState)(null),2),u=i[0],m=i[1],d=Ae((0,e.useState)([]),2),p=d[0],E=d[1],f=Ae((0,e.useState)(!1),2),R=f[0],v=f[1],y=Ae((0,e.useState)(!1),2),g=y[0],h=y[1],b=Ae((0,e.useState)(null),2),_=b[0],S=b[1],w=ee().serviceBodies,x=(0,ae.useSelect)(function(e){return e("core/editor").getCurrentPostType()}),k=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("status")}),C=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("meta")||{}}),T=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("categories")||[]}),A=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("tags")||[]}),N=(0,ae.useDispatch)("core/editor").editPost,P=C.service_body||"";if((0,e.useEffect)(function(){if("mayo_announcement"===x){var e=function(){var e=Te(we().m(function e(){var t,n;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return v(!0),e.p=1,e.n=2,s("/subscribers/count",{method:"POST",body:JSON.stringify({categories:T,tags:A,service_body:P})});case 2:t=e.v,m(t.count),E(t.subscribers||[]),e.n=4;break;case 3:e.p=3,n=e.v,console.error("Error fetching subscriber count:",n),m(null),E([]);case 4:v(!1);case 5:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),t=setTimeout(e,300);return function(){return clearTimeout(t)}}},[x,T,A,P]),(0,e.useEffect)(function(){if(!c&&"mayo_announcement"===x&&"auto-draft"===k){var e=new URLSearchParams(window.location.search).get("linked_event");if(e){var t=parseInt(e,10);if(!isNaN(t)&&t>0){var n=C.linked_event_refs||[];if(!n.some(function(e){return"local"===e.type&&e.id===t})){var a={type:"local",id:t};N({meta:_e(_e({},C),{},{linked_event_refs:[].concat(ke(n),[a])})})}}o(!0)}}},[x,k,c,C.linked_event_refs]),(0,e.useEffect)(function(){if("mayo_announcement"===x){var e=function(){var e=Te(we().m(function e(){var t,n;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,s("/settings");case 1:t=e.v,S({service_bodies:t.subscription_service_bodies||[]}),e.n=3;break;case 2:e.p=2,n=e.v,console.error("Error fetching subscription settings:",n),S({service_bodies:[]});case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();e()}},[x]),"mayo_announcement"!==x)return null;var O=function(){if(!_||0===_.service_bodies.length)return w;var e=_.service_bodies.map(function(e){return e.toString()});return w.filter(function(t){return e.includes(t.id.toString())})}(),j=function(e,t){N({meta:_e(_e({},C),{},Se({},e,t))})},D=function(){return C.linked_event_refs&&Array.isArray(C.linked_event_refs)&&C.linked_event_refs.length>0?C.linked_event_refs:C.linked_events&&Array.isArray(C.linked_events)?C.linked_events.map(function(e){return{type:"local",id:e}}):[]},B=D(),M=function(e){return"local"===e.type?"local-".concat(e.id):"external-".concat(e.source_id,"-").concat(e.id)},F=function(e){var t=D().filter(function(t){return"local"===t.type&&"local"===e.type?t.id!==e.id:"external"!==t.type||"external"!==e.type||!(t.id===e.id&&t.source_id===e.source_id)});j("linked_event_refs",t)},I=Ae((0,e.useState)({}),2),L=I[0],z=I[1],G=Ae((0,e.useState)(!1),2),U=G[0],W=G[1];return(0,e.useEffect)(function(){var e=function(){var e=Te(we().m(function e(){var t,n,a,l,r,c;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:if(0!==(t=B.filter(function(e){return!L[M(e)]})).length){e.n=1;break}return e.a(2);case 1:W(!0),n={},a=he(t),e.p=2,r=we().m(function e(){var t,a,r,c,o,i;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=l.value,a=M(t),e.p=1,"local"!==t.type){e.n=3;break}return e.n=2,s("/events/".concat(t.id));case 2:(r=e.v)&&!r.code?n[a]={title:r.title||"Unknown Event",start_date:r.start_date||"",permalink:r.permalink||"",edit_link:r.edit_link||"",source:{type:"local",id:"local",name:"Local"}}:n[a]={title:"Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:{type:"local",id:"local",name:"Local"}},e.n=6;break;case 3:return e.p=3,e.n=4,s("/events/search-all?per_page=100");case 4:c=e.v,o=(c.events||[]).find(function(e){return"external"===e.source.type&&e.source.id===t.source_id&&e.id===t.id}),n[a]=o?{title:o.title||"Unknown Event",start_date:o.start_date||"",permalink:o.permalink||"",edit_link:"",source:o.source}:{title:"External Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:{type:"external",id:t.source_id,name:t.source_id}},e.n=6;break;case 5:e.p=5,e.v,n[a]={title:"External Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:{type:"external",id:t.source_id,name:t.source_id}};case 6:e.n=8;break;case 7:e.p=7,i=e.v,console.error("Error fetching event details:",i),n[a]={title:"local"===t.type?"Event #".concat(t.id):"External Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:"local"===t.type?{type:"local",id:"local",name:"Local"}:{type:"external",id:t.source_id,name:t.source_id}};case 8:return e.a(2)}},e,null,[[3,5],[1,7]])}),a.s();case 3:if((l=a.n()).done){e.n=5;break}return e.d(ge(r()),4);case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,c=e.v,a.e(c);case 7:return e.p=7,a.f(),e.f(7);case 8:Object.keys(n).length>0&&z(function(e){return _e(_e({},e),n)}),W(!1);case 9:return e.a(2)}},e,null,[[2,6,7,8]])}));return function(){return e.apply(this,arguments)}}();B.length>0&&e()},[JSON.stringify(B)]),React.createElement(React.Fragment,null,React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-announcement-details",title:"Announcement Settings",className:"mayo-announcement-details"},React.createElement(n.PanelBody,{title:"Display Window",initialOpen:!0},React.createElement("p",{className:"components-base-control__help",style:{marginTop:0,marginBottom:"12px"}},"Control when this announcement is visible on the frontend."),React.createElement("div",{style:{border:"1px solid #e0e0e0",borderRadius:"4px",padding:"12px",marginBottom:"12px",backgroundColor:"#fafafa"}},React.createElement("div",{style:{marginBottom:"4px"}},React.createElement("strong",{style:{fontSize:"12px",color:"#1e1e1e"}},"Start")),React.createElement(n.TextControl,{label:"Date",type:"date",value:C.display_start_date||"",onChange:function(e){return j("display_start_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{style:{marginTop:"8px"}},React.createElement(n.TextControl,{label:"Time",type:"time",value:C.display_start_time||"",onChange:function(e){return j("display_start_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px",marginBottom:0}},"Leave empty to start showing immediately")),React.createElement("div",{style:{border:"1px solid #e0e0e0",borderRadius:"4px",padding:"12px",backgroundColor:"#fafafa"}},React.createElement("div",{style:{marginBottom:"4px"}},React.createElement("strong",{style:{fontSize:"12px",color:"#1e1e1e"}},"End")),React.createElement(n.TextControl,{label:"Date",type:"date",value:C.display_end_date||"",onChange:function(e){return j("display_end_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{style:{marginTop:"8px"}},React.createElement(n.TextControl,{label:"Time",type:"time",value:C.display_end_time||"",onChange:function(e){return j("display_end_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px",marginBottom:0}},"Leave empty to show indefinitely"))),React.createElement(n.PanelBody,{title:"Priority",initialOpen:!0},React.createElement(n.SelectControl,{label:"Priority Level",value:C.priority||"normal",options:[{label:"Low",value:"low"},{label:"Normal",value:"normal"},{label:"High",value:"high"},{label:"Urgent",value:"urgent"}],onChange:function(e){return j("priority",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("p",{className:"components-base-control__help"},"Priority affects display order and styling.",React.createElement("span",{style:{display:"inline-block",marginLeft:"8px",color:{low:"#6c757d",normal:"#0073aa",high:"#ff9800",urgent:"#dc3545"}[C.priority||"normal"],fontWeight:600}},(C.priority||"normal").charAt(0).toUpperCase()+(C.priority||"normal").slice(1)))),React.createElement(n.PanelBody,{title:"Service Body",initialOpen:!0},React.createElement(n.SelectControl,{label:"Service Body",value:C.service_body||"",options:[{label:"Select a service body",value:""}].concat(ke(!_||0===_.service_bodies.length||_.service_bodies.map(function(e){return e.toString()}).includes("0")?[{label:"Unaffiliated (0)",value:"0"}]:[]),ke(O.map(function(e){return{label:"".concat(e.name," (").concat(e.id,")"),value:e.id}}))),onChange:function(e){return j("service_body",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),_&&_.service_bodies.length>0&&React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px"}},"Only service bodies enabled in"," ",React.createElement("a",{href:"/wp-admin/admin.php?page=mayo-settings",target:"_blank",rel:"noopener noreferrer"},"subscription settings")," ","are shown."))),React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-linked-events",title:"Linked Events",className:"mayo-linked-events"},React.createElement("p",{className:"components-base-control__help",style:{marginTop:0}},"Link this announcement to local or external events."),U&&B.length>0&&React.createElement("div",{style:{textAlign:"center",padding:"16px"}},React.createElement(n.Spinner,null),React.createElement("p",{style:{margin:"8px 0 0",color:"#666",fontSize:"12px"}},"Loading event details...")),!U&&B.length>0&&React.createElement("div",{className:"mayo-linked-events-list",style:{marginBottom:"16px"}},B.map(function(e,t){var a=M(e),l=L[a]||{},r=l.title&&!l.title.startsWith("Event #")&&!l.title.startsWith("External Event #"),c="external"===e.type;return React.createElement("div",{key:a,style:{padding:"12px",backgroundColor:"#f9f9f9",borderRadius:"4px",marginBottom:"8px",borderLeft:"3px solid ".concat(c?"#ff9800":"#0073aa")}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"}},React.createElement("div",{style:{flex:1}},r||l.title?React.createElement(React.Fragment,null,React.createElement("strong",{style:{display:"block",marginBottom:"4px"}},l.title||(c?"External Event #".concat(e.id):"Event #".concat(e.id))),c&&l.source&&React.createElement("span",{style:{display:"inline-block",fontSize:"11px",backgroundColor:"#fff3e0",color:"#e65100",padding:"2px 6px",borderRadius:"3px",marginBottom:"4px"}},l.source.name||l.source.id),l.start_date&&React.createElement("div",{style:{color:"#666",fontSize:"12px",marginBottom:"8px"}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"14px",marginRight:"4px",verticalAlign:"middle"}}),function(e){if(!e)return"";try{var t=Ae(e.split("-").map(Number),3),n=t[0],a=t[1],l=t[2];return new Date(n,a-1,l).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch(t){return e}}(l.start_date)),React.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"8px"}},l.permalink&&React.createElement("a",{href:l.permalink,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",border:"1px solid #c3c4c7",borderRadius:"3px",textDecoration:"none",color:"#2271b1",whiteSpace:"nowrap"}},React.createElement("span",{className:"dashicons dashicons-external",style:{fontSize:"14px",marginRight:"4px",width:"14px",height:"14px"}}),c?"View on External Site":"View"),!c&&l.edit_link&&React.createElement("a",{href:l.edit_link,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",border:"1px solid #c3c4c7",borderRadius:"3px",textDecoration:"none",color:"#2271b1",whiteSpace:"nowrap"}},React.createElement("span",{className:"dashicons dashicons-edit",style:{fontSize:"14px",marginRight:"4px",width:"14px",height:"14px"}}),"Edit"))):React.createElement("span",{style:{color:"#666"}},c?"External Event #".concat(e.id):"Event #".concat(e.id),React.createElement("span",{style:{fontSize:"12px",marginLeft:"8px"}},"(loading...)"))),React.createElement(n.Button,{isSmall:!0,isDestructive:!0,onClick:function(){return F(e)},style:{marginLeft:"12px"}},"Remove")))})),React.createElement(n.Button,{variant:"secondary",onClick:function(){return l(!0)},style:{width:"100%",justifyContent:"center"}},React.createElement("span",{className:"dashicons dashicons-plus-alt2",style:{marginRight:"4px"}}),"Link Event"),React.createElement(Oe,{isOpen:a,onClose:function(){return l(!1)},onSelectEvent:function(e){!function(e){var t,n=D();t="local"===e.source.type?{type:"local",id:e.id}:{type:"external",id:e.id,source_id:e.source.id},n.some(function(e){return"local"===e.type&&"local"===t.type?e.id===t.id:"external"===e.type&&"external"===t.type&&e.id===t.id&&e.source_id===t.source_id})||j("linked_event_refs",[].concat(ke(n),[t]))}(e)},onRemoveEvent:function(e){var t="local"===e.source.type?{type:"local",id:e.id}:{type:"external",id:e.id,source_id:e.source.id};F(t)},linkedEventRefs:B,getRefKey:M})),React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-email-recipients",title:"Email Recipients",className:"mayo-email-recipients"},React.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:u>0?"pointer":"default"},onClick:function(){return u>0&&h(!0)}},R?React.createElement(n.Spinner,{style:{margin:0}}):React.createElement(React.Fragment,null,React.createElement("span",{className:"dashicons dashicons-email-alt",style:{color:"#2271b1",fontSize:"18px",width:"18px",height:"18px"}}),React.createElement("span",{style:{textDecoration:u>0?"underline":"none"}},React.createElement("strong",null,null!=u?u:0)," subscriber",1!==u?"s":""," will receive this announcement"))),React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px"}},"Based on selected categories, tags, and service body.",u>0&&" Click to view recipients."),g&&React.createElement(n.Modal,{title:"Email Recipients (".concat(p.length,")"),onRequestClose:function(){return h(!1)},style:{maxWidth:"600px",width:"100%"}},React.createElement("div",{style:{maxHeight:"400px",overflowY:"auto",border:"1px solid #ddd",borderRadius:"4px"}},p.length>0?p.map(function(e,t){var n,a;return React.createElement("div",{key:e.email,style:{padding:"12px",borderBottom:t<p.length-1?"1px solid #eee":"none"}},React.createElement("div",{style:{fontSize:"13px",fontWeight:500,marginBottom:"8px"}},e.email),React.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px"}},e.reason.all?React.createElement("span",{style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",color:"#666",borderRadius:"3px"}},"Receives all announcements"):React.createElement(React.Fragment,null,null===(n=e.reason.categories)||void 0===n?void 0:n.map(function(e){return React.createElement("span",{key:e,style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e3f2fd",color:"#1565c0",borderRadius:"3px"}},e)}),null===(a=e.reason.tags)||void 0===a?void 0:a.map(function(e){return React.createElement("span",{key:e,style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#fff3e0",color:"#e65100",borderRadius:"3px"}},e)}),e.reason.service_body&&React.createElement("span",{style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e8f5e9",color:"#2e7d32",borderRadius:"3px"}},e.reason.service_body))))}):React.createElement("div",{style:{padding:"20px",textAlign:"center",color:"#666"}},"No matching subscribers")),React.createElement("div",{style:{marginTop:"16px",textAlign:"right"}},React.createElement(n.Button,{variant:"secondary",onClick:function(){return h(!1)}},"Close")))))};(0,U.getPlugins)().some(function(e){return"mayo-announcement-details"===e.name})||(0,U.registerPlugin)("mayo-announcement-details",{render:function(){return React.createElement(te,null,React.createElement(je,null))},icon:"megaphone"}),document.addEventListener("DOMContentLoaded",function(){var n=document.getElementById("mayo-shortcode-root"),a=document.getElementById("mayo-settings-root"),l=document.getElementById("mayo-css-classes-root"),r=document.getElementById("mayo-api-docs-root"),c=document.getElementById("mayo-subscribers-root");n&&(0,e.render)(React.createElement(t,null),n),a&&(0,e.render)(React.createElement(x,null),a),l&&(0,e.render)(React.createElement(C,null),l),r&&(0,e.render)(React.createElement(T,null),r),c&&(0,e.render)(React.createElement(G,null),c)})})();2 (()=>{"use strict";const e=wp.element,t=function(){return React.createElement("div",{className:"wrap mayo-docs"},React.createElement("h1",null,"Shortcodes"),React.createElement("div",{className:"card",style:{marginBottom:"20px"}},React.createElement("h2",null,"Table of Contents"),React.createElement("ul",{style:{listStyle:"disc",marginLeft:"20px",lineHeight:"2"}},React.createElement("li",null,React.createElement("a",{href:"#event-list"},"[mayo_event_list] - Event List Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#event-form"},"[mayo_event_form] - Event Submission Form Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#announcement"},"[mayo_announcement] - Announcement Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#announcement-form"},"[mayo_announcement_form] - Announcement Submission Form Shortcode")),React.createElement("li",null,React.createElement("a",{href:"#subscribe"},"[mayo_subscribe] - Email Subscription Form Shortcode")))),React.createElement("div",{className:"card",id:"event-list"},React.createElement("h2",null,"Event List Shortcode"),React.createElement("p",null,"Use this shortcode to display a list of upcoming events:"),React.createElement("pre",null,React.createElement("code",null,"[mayo_event_list]")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Options"),React.createElement("th",null,"Overridable via Querystring?"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"infinite_scroll"),React.createElement("td",null,"Enable automatic loading of more events as user scrolls down the page"),React.createElement("td",null,"true"),React.createElement("td",null,"true, false"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"autoexpand"),React.createElement("td",null,"Automatically expand all events when the page loads"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Filter by category slugs (comma-separated). Prefix a slug with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (all categories)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"meetings,workshops")," or ",React.createElement("pre",null,"-meetings,-workshops")," (exclude meetings and workshops)"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"category_relation"),React.createElement("td",null,"How to match multiple categories: AND (must have all) or OR (must have any)"),React.createElement("td",null,"OR"),React.createElement("td",null,"AND, OR"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Filter by tag slugs (comma-separated). Prefix a slug with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (all tags)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"featured,ticketed")," (include only featured or ticketed), ",React.createElement("pre",null,"featured+ticketed")," (is an and condition), or ",React.createElement("pre",null,"-featured,-ticketed")," (exclude featured and ticketed). For more information see the Wordpress documentation on ",React.createElement("a",{target:"_blank",href:"https://developer.wordpress.org/reference/classes/wp_query/#tag-parameters"},"Tag Parameters"),"."),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"event_type"),React.createElement("td",null,"Filter by event type"),React.createElement("td",null,"empty (all types)"),React.createElement("td",null,"Service, Activity"),React.createElement("td",null,"Yes (only one event type at a time)")),React.createElement("tr",null,React.createElement("td",null,"time_format"),React.createElement("td",null,"Format for displaying time"),React.createElement("td",null,"12hour"),React.createElement("td",null,"12hour, 24hour"),React.createElement("td",null,"No")),React.createElement("tr",null,React.createElement("td",null,"per_page"),React.createElement("td",null,"Number of events to show per page"),React.createElement("td",null,"10"),React.createElement("td",null,"Any positive number"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"status"),React.createElement("td",null,"Shows events with a given status"),React.createElement("td",null,"publish"),React.createElement("td",null,"publish, pending"),React.createElement("td",null,"Yes (only one status at a time)")),React.createElement("tr",null,React.createElement("td",null,"service_body"),React.createElement("td",null,"Filter events by service body IDs (comma-separated)"),React.createElement("td",null,"empty (all service bodies)"),React.createElement("td",null,'e.g., "1,2,3" (shows events from any of the specified service bodies)'),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"source_ids"),React.createElement("td",null,"Filter events by source IDs (comma-separated)"),React.createElement("td",null,"empty (local events only)"),React.createElement("td",null,'e.g., "local,source_123,source_456"'),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"archive"),React.createElement("td",null,"Show only past events that have completely ended (excluding current and future events)"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"order"),React.createElement("td",null,"Sort order for events by start date and time"),React.createElement("td",null,"ASC"),React.createElement("td",null,"ASC (earliest first), DESC (latest first)"),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"timezone"),React.createElement("td",null,"Timezone to use for date filtering"),React.createElement("td",null,"Browser's timezone"),React.createElement("td",null,'Any valid IANA timezone (e.g., "America/New_York", "Europe/London")'),React.createElement("td",null,"Yes")),React.createElement("tr",null,React.createElement("td",null,"view"),React.createElement("td",null,"Default view mode for displaying events"),React.createElement("td",null,"list"),React.createElement("td",null,"list, calendar"),React.createElement("td",null,"Yes")))),React.createElement("h3",null,"Example with Parameters"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_list time_format="24hour" per_page="5" categories="meetings,workshops" tags="featured" event_type="Service" service_body="1,2,3" source_ids="local,source_123" archive="false" order="ASC" timezone="America/New_York" view="calendar"]')),React.createElement("h3",null,"Example with Category/Tag Exclusions"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_list categories="-announcements,-alerts" tags="-archived"]')),React.createElement("p",null,React.createElement("em",null,'Shows all events except those with the "announcements" or "alerts" categories, and excludes the "archived" tag.')),React.createElement("h3",null,"Example with Querystring Overrides"),React.createElement("pre",null,React.createElement("code",null,'https://example.com/events?status=pending&categories=meetings,workshops&event_type=Service&service_body="1,2,3"&source_ids=local,source_123&archive=true&order=DESC&timezone=America/New_York&infinite_scroll=false&per_page=20&view=calendar')),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Prefix category or tag slugs with a minus sign (-) to exclude them from the event list"),React.createElement("li",null,"You can mix inclusions and exclusions: ",React.createElement("code",null,'categories="meetings,-cancelled"')," shows meetings but not cancelled ones"),React.createElement("li",null,"The ",React.createElement("code",null,"view")," parameter allows you to display events in either a list or calendar format. Users can toggle between views using the buttons in the header."),React.createElement("li",null,"Local events are always included by default unless specifically excluded"),React.createElement("li",null,"To include only local events, use ",React.createElement("code",null,'source_ids="local"')),React.createElement("li",null,"To exclude local events, specify only external source IDs (e.g., ",React.createElement("code",null,'source_ids="source_123,source_456"'),")"),React.createElement("li",null,"To include all events (local and external), leave source_ids empty"),React.createElement("li",null,"When ",React.createElement("code",null,'archive="true"'),", only past events that have completely ended will be shown (excludes current and future events)"),React.createElement("li",null,"When ",React.createElement("code",null,'archive="false"')," (default), only upcoming and ongoing events will be shown"),React.createElement("li",null,"Use ",React.createElement("code",null,'order="DESC"')," with ",React.createElement("code",null,'archive="true"')," to show most recent past events first"),React.createElement("li",null,"Use ",React.createElement("code",null,'order="ASC"')," (default) to show events in chronological order (earliest first)"),React.createElement("li",null,"The ",React.createElement("code",null,"timezone")," parameter ensures date filtering is accurate across different time zones"),React.createElement("li",null,"Events are loaded using infinite scroll automatically as the user scrolls down the page"))),React.createElement("div",{className:"card",id:"event-form"},React.createElement("h2",null,"Event Submission Form Shortcode"),React.createElement("p",null,"The Event Submission Form Shortcode allows users to submit new events to your site. The form includes fields for event name, type, start date, end date, and more."),React.createElement("p",null,"When a new event is submitted, an email notification will be sent to the email addresses configured in the plugin settings. Multiple email addresses can be specified, separated by commas or semicolons."),React.createElement("h3",null,"Shortcode"),React.createElement("code",null,"[mayo_event_form]"),React.createElement("h3",null,"Default Required Fields"),React.createElement("p",null,"The following fields are always required and cannot be overridden:"),React.createElement("ul",null,React.createElement("li",null,"Event Name (event_name)"),React.createElement("li",null,"Event Type (event_type)"),React.createElement("li",null,"Service Body (service_body)"),React.createElement("li",null,"Email (email)"),React.createElement("li",null,"Start Date (event_start_date)"),React.createElement("li",null,"Start Time (event_start_time)"),React.createElement("li",null,"End Date (event_end_date)"),React.createElement("li",null,"End Time (event_end_time)"),React.createElement("li",null,"Timezone (timezone)")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Available Fields"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"additional_required_fields"),React.createElement("td",null,"Comma-separated list of additional fields that should be required"),React.createElement("td",null,"empty (no additional required fields)"),React.createElement("td",null,React.createElement("ul",null,React.createElement("li",null,"description"),React.createElement("li",null,"location_name"),React.createElement("li",null,"location_address"),React.createElement("li",null,"location_details"),React.createElement("li",null,"flyer")))),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Comma-separated list of category slugs that should be available in the form. Prefix a category with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (all categories)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"meetings,workshops")," to show only meetings and workshops, or ",React.createElement("pre",null,"-meetings,-workshops")," to show all categories except meetings and workshops")),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Comma-separated list of tag slugs that should be available in the form. Prefix a tag with a minus sign (-) to exclude it. Tag slugs are always compared in lowercase."),React.createElement("td",null,"empty (all tags)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"featured,ticketed")," to show only featured and ticketed tags, or ",React.createElement("pre",null,"-featured,-ticketed")," to show all tags except featured and ticketed")),React.createElement("tr",null,React.createElement("td",null,"default_service_bodies"),React.createElement("td",null,"Comma-separated list of service body IDs to restrict the form to specific service bodies. Perfect for multi-site setups where each site should only allow events for specific service bodies."),React.createElement("td",null,"empty (all service bodies)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"1,2,3")," to allow only service bodies 1, 2, and 3, or ",React.createElement("pre",null,"0")," for only Unaffiliated events. If only one service body is specified, the field will be hidden and auto-selected.")))),React.createElement("h3",null,"Examples"),React.createElement("h4",null,"Standard Form with Additional Requirements"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_form additional_required_fields="flyer,location_name,location_address" categories="meetings,workshops" tags="featured,-ticketed"]')),React.createElement("h4",null,"Multi-Site Configuration - Restrict to Specific Service Bodies"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_form default_service_bodies="1,2,5" categories="meetings"]')),React.createElement("p",null,React.createElement("em",null,"Perfect for multi-site setups where each subsite should only allow events for specific service bodies.")),React.createElement("h4",null,"Single Service Body (Auto-Hidden)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_event_form default_service_bodies="3"]')),React.createElement("p",null,React.createElement("em",null,"When only one service body is specified, the service body field is hidden and automatically selected.")),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Default required fields are always enforced"),React.createElement("li",null,"Additional required fields will be marked with an asterisk (*)"),React.createElement("li",null,"Form validation will ensure all required fields are filled"))),React.createElement("div",{className:"card",id:"announcement"},React.createElement("h2",null,"Announcement Shortcode"),React.createElement("p",null,"Use this shortcode to display announcements as banners or modals. Announcements are managed separately from events and are useful for:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Meeting closures or changes"),React.createElement("li",null,"Weather alerts"),React.createElement("li",null,"Breaking news or important updates"),React.createElement("li",null,"Promoting upcoming events (can be linked to events)"),React.createElement("li",null,"Post-event thank you messages")),React.createElement("pre",null,React.createElement("code",null,"[mayo_announcement]")),React.createElement("h3",null,"How It Works"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Announcements have their own display window (",React.createElement("code",null,"display_start_date")," and ",React.createElement("code",null,"display_end_date"),")"),React.createElement("li",null,"Can optionally be linked to one or more events"),React.createElement("li",null,"Priority levels (low/normal/high/urgent) affect display order and styling"),React.createElement("li",null,React.createElement("strong",null,"Banner mode:")," Shows a fixed bar at the top of the viewport with carousel navigation for multiple announcements"),React.createElement("li",null,React.createElement("strong",null,"Modal mode:")," Shows a centered popup with a list of all matching announcements"),React.createElement("li",null,"When dismissed, announcements stay hidden for 24 hours but can be re-opened via a bell icon in the bottom-right corner")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Options"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"mode"),React.createElement("td",null,"Display mode for announcements"),React.createElement("td",null,"banner"),React.createElement("td",null,"banner (sticky top bar), modal (popup)")),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Filter by category slugs (comma-separated)"),React.createElement("td",null,"empty (all categories)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"announcements,alerts"))),React.createElement("tr",null,React.createElement("td",null,"category_relation"),React.createElement("td",null,"How to match multiple categories: AND (must have all) or OR (must have any)"),React.createElement("td",null,"OR"),React.createElement("td",null,"AND, OR")),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Filter by tag slugs (comma-separated)"),React.createElement("td",null,"empty (all tags)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"urgent,featured")," (include only urgent or featured), ",React.createElement("pre",null,"urgent+featured")," (is an and condition), or ",React.createElement("pre",null,"-urgent,-featured")," (exclude urgent and featured)")),React.createElement("tr",null,React.createElement("td",null,"priority"),React.createElement("td",null,"Filter by priority level"),React.createElement("td",null,"empty (all priorities)"),React.createElement("td",null,"low, normal, high, urgent")),React.createElement("tr",null,React.createElement("td",null,"show_linked_events"),React.createElement("td",null,"Show linked event titles with the announcement"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false")),React.createElement("tr",null,React.createElement("td",null,"time_format"),React.createElement("td",null,"Format for displaying time"),React.createElement("td",null,"12hour"),React.createElement("td",null,"12hour, 24hour")),React.createElement("tr",null,React.createElement("td",null,"background_color"),React.createElement("td",null,"Custom background color for the banner/modal header/bell icon"),React.createElement("td",null,"empty (uses CSS default)"),React.createElement("td",null,"Any hex color, e.g., ",React.createElement("pre",null,"#ff6600"))),React.createElement("tr",null,React.createElement("td",null,"text_color"),React.createElement("td",null,"Custom text color for the banner/modal header/bell icon"),React.createElement("td",null,"empty (uses CSS default)"),React.createElement("td",null,"Any hex color, e.g., ",React.createElement("pre",null,"#ffffff"))),React.createElement("tr",null,React.createElement("td",null,"orderby"),React.createElement("td",null,"Field to sort announcements by"),React.createElement("td",null,"date"),React.createElement("td",null,"date (display start date), title (alphabetical), created (post creation date)")),React.createElement("tr",null,React.createElement("td",null,"order"),React.createElement("td",null,"Sort direction"),React.createElement("td",null,"DESC for date/created, ASC for title"),React.createElement("td",null,"ASC (ascending), DESC (descending)")))),React.createElement("h3",null,"Examples"),React.createElement("h4",null,"Default Banner Mode"),React.createElement("pre",null,React.createElement("code",null,"[mayo_announcement]")),React.createElement("h4",null,"Modal Popup"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement mode="modal"]')),React.createElement("h4",null,"Filter by Category"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement categories="announcements,alerts"]')),React.createElement("h4",null,"Show Only Urgent Announcements"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement priority="urgent"]')),React.createElement("h4",null,"Show Linked Events"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement show_linked_events="true"]')),React.createElement("h4",null,"Combined Parameters"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement mode="banner" categories="announcements" tags="urgent" priority="high" time_format="24hour"]')),React.createElement("h4",null,"Custom Colors"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement background_color="#ff6600" text_color="#ffffff"]')),React.createElement("h4",null,"Red Alert Style"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement background_color="#dc3545" text_color="#fff" priority="urgent"]')),React.createElement("h4",null,"Sort by Title (Alphabetical)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement orderby="title"]')),React.createElement("h4",null,"Sort by Created Date (Newest First)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement orderby="created" order="DESC"]')),React.createElement("h3",null,"Widget Usage"),React.createElement("p",null,"For site-wide announcements without editing templates, use the ",React.createElement("strong",null,'"Mayo Event Announcements"')," widget:"),React.createElement("ol",null,React.createElement("li",null,"Go to ",React.createElement("strong",null,"Appearance → Widgets")),React.createElement("li",null,'Add the "Mayo Event Announcements" widget to any widget area (footer recommended for site-wide display)'),React.createElement("li",null,"Configure the display mode, categories, tags, priority, and time format")),React.createElement("h3",null,"Creating Announcements"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Go to ",React.createElement("strong",null,"Mayo → Announcements → Add New")),React.createElement("li",null,"Enter the announcement title and content"),React.createElement("li",null,"Set the ",React.createElement("strong",null,"Display Start Date")," to when you want the announcement to start showing"),React.createElement("li",null,"Set the ",React.createElement("strong",null,"Display End Date")," to when you want the announcement to stop showing"),React.createElement("li",null,"Choose a ",React.createElement("strong",null,"Priority Level")," (urgent announcements appear first)"),React.createElement("li",null,"Optionally ",React.createElement("strong",null,"link to events")," if this announcement relates to specific events")),React.createElement("h3",null,"Linking Events"),React.createElement("p",null,"Announcements can be linked to events in two ways:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("strong",null,"From the Announcement editor:"),' Search and add events in the "Linked Events" panel'),React.createElement("li",null,React.createElement("strong",null,"From the Event editor:"),' Click "Create Announcement for This Event" in the "Linked Announcements" panel')),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Announcements have independent display windows from events"),React.createElement("li",null,"Use announcements to promote events before they start, or recap after they end"),React.createElement("li",null,"Priority levels: ",React.createElement("strong",null,"urgent")," (red), ",React.createElement("strong",null,"high")," (orange), ",React.createElement("strong",null,"normal")," (blue), ",React.createElement("strong",null,"low")," (gray)"),React.createElement("li",null,"Use categories or tags to control which announcements appear"),React.createElement("li",null,"Multiple announcements are shown as a carousel in banner mode, or as a list in modal mode"))),React.createElement("div",{className:"card",id:"announcement-form"},React.createElement("h2",null,"Announcement Submission Form Shortcode"),React.createElement("p",null,"The Announcement Submission Form Shortcode allows users to submit new announcements to your site. This works similarly to the event form but for announcements."),React.createElement("p",null,'When a new announcement is submitted, an email notification will be sent to the email addresses configured in the plugin settings. The announcement will have a "pending" status until approved by an administrator.'),React.createElement("h3",null,"Shortcode"),React.createElement("code",null,"[mayo_announcement_form]"),React.createElement("h3",null,"Default Required Fields"),React.createElement("p",null,"The following fields are always required:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Announcement Title (title)"),React.createElement("li",null,"Description (description)"),React.createElement("li",null,"Service Body (service_body)"),React.createElement("li",null,"Point of Contact Name (contact_name)"),React.createElement("li",null,"Point of Contact Email (email)")),React.createElement("h3",null,"Optional Fields"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Start Date (start_date) - When the announcement should start displaying"),React.createElement("li",null,"Start Time (start_time) - Time of day the announcement should start"),React.createElement("li",null,"End Date (end_date) - When the announcement should stop displaying"),React.createElement("li",null,"End Time (end_time) - Time of day the announcement should end"),React.createElement("li",null,"Image/Flyer (flyer) - An image attachment for the announcement"),React.createElement("li",null,"Categories - Standard WordPress categories"),React.createElement("li",null,"Tags - Standard WordPress tags")),React.createElement("h3",null,"Optional Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Description"),React.createElement("th",null,"Default"),React.createElement("th",null,"Options"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,"additional_required_fields"),React.createElement("td",null,"Comma-separated list of additional fields that should be required"),React.createElement("td",null,"empty (no additional required fields)"),React.createElement("td",null,React.createElement("ul",null,React.createElement("li",null,"start_date"),React.createElement("li",null,"start_time"),React.createElement("li",null,"end_date"),React.createElement("li",null,"end_time"),React.createElement("li",null,"flyer")))),React.createElement("tr",null,React.createElement("td",null,"categories"),React.createElement("td",null,"Comma-separated list of category slugs that should be available in the form. Prefix a category with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (uses subscription settings)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"announcements,alerts")," or ",React.createElement("pre",null,"-internal"))),React.createElement("tr",null,React.createElement("td",null,"tags"),React.createElement("td",null,"Comma-separated list of tag slugs that should be available in the form. Prefix a tag with a minus sign (-) to exclude it."),React.createElement("td",null,"empty (uses subscription settings)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"urgent,featured")," or ",React.createElement("pre",null,"-archived"))),React.createElement("tr",null,React.createElement("td",null,"default_service_bodies"),React.createElement("td",null,"Comma-separated list of service body IDs to restrict the form to specific service bodies."),React.createElement("td",null,"empty (uses subscription settings)"),React.createElement("td",null,"e.g., ",React.createElement("pre",null,"1,2,3")," or ",React.createElement("pre",null,"0")," for Unaffiliated. If only one is specified, the field is hidden and auto-selected.")),React.createElement("tr",null,React.createElement("td",null,"show_flyer"),React.createElement("td",null,"Show the image/flyer upload field"),React.createElement("td",null,"false"),React.createElement("td",null,"true, false")))),React.createElement("h3",null,"Examples"),React.createElement("h4",null,"Basic Form"),React.createElement("pre",null,React.createElement("code",null,"[mayo_announcement_form]")),React.createElement("h4",null,"With Flyer Upload"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form show_flyer="true"]')),React.createElement("h4",null,"With Required Dates"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form additional_required_fields="start_date,end_date"]')),React.createElement("h4",null,"Restricted to Specific Service Bodies"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form default_service_bodies="1,2,5"]')),React.createElement("h4",null,"Single Service Body (Auto-Hidden)"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form default_service_bodies="3"]')),React.createElement("p",null,React.createElement("em",null,"When only one service body is specified, the field is hidden and automatically selected.")),React.createElement("h4",null,"Filter Categories and Tags"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form categories="announcements,alerts" tags="urgent,featured"]')),React.createElement("h4",null,"Full Configuration"),React.createElement("pre",null,React.createElement("code",null,'[mayo_announcement_form show_flyer="true" additional_required_fields="start_date,end_date,flyer" default_service_bodies="1,2" categories="announcements"]')),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Categories, tags, and service bodies are filtered by subscription settings configured in ",React.createElement("strong",null,"Mayo → Settings → Subscription Preferences")),React.createElement("li",null,"Shortcode parameters further restrict the available options (intersection of both)"),React.createElement("li",null,"Contact name and email are private fields used for admin communication only"),React.createElement("li",null,'Submitted announcements are set to "pending" status and require admin approval'),React.createElement("li",null,"Admin receives email notification when new announcements are submitted"),React.createElement("li",null,"Start/end dates correspond to the announcement's display window"))),React.createElement("div",{className:"card",id:"subscribe"},React.createElement("h2",null,"Email Subscription Form Shortcode"),React.createElement("p",null,"Use this shortcode to display an email subscription form. Users can subscribe to receive announcement notifications via email:"),React.createElement("pre",null,React.createElement("code",null,"[mayo_subscribe]")),React.createElement("h3",null,"How It Works"),React.createElement("ol",{style:{marginLeft:"20px",lineHeight:"1.8"}},React.createElement("li",null,React.createElement("strong",null,"User enters email:")," A simple form with an email input field"),React.createElement("li",null,React.createElement("strong",null,"Confirmation email sent:")," User receives an email with a confirmation link (double opt-in)"),React.createElement("li",null,React.createElement("strong",null,"User confirms:")," Clicking the link activates their subscription"),React.createElement("li",null,React.createElement("strong",null,"Receive announcements:")," When announcements are published, subscribers get an email with the full content"),React.createElement("li",null,React.createElement("strong",null,"Easy unsubscribe:")," Each email includes a one-click unsubscribe link")),React.createElement("h3",null,"Features"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("strong",null,"Double opt-in:")," Confirmation email ensures valid addresses and prevents spam"),React.createElement("li",null,React.createElement("strong",null,"Full content delivery:")," Announcement emails include the complete content plus a link to view on site"),React.createElement("li",null,React.createElement("strong",null,"Token-based security:")," Unsubscribe links use cryptographically secure tokens (no login required)"),React.createElement("li",null,React.createElement("strong",null,"Spam folder reminder:")," Users are reminded to check spam/junk folders for the confirmation email"),React.createElement("li",null,React.createElement("strong",null,"Re-subscription support:")," Previously unsubscribed users can re-subscribe")),React.createElement("h3",null,"Example"),React.createElement("pre",null,React.createElement("code",null,"[mayo_subscribe]")),React.createElement("h3",null,"Email Flow"),React.createElement("h4",null,"Confirmation Email"),React.createElement("p",null,"Sent immediately when a user subscribes:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,'Subject: "Please confirm your subscription to [Site Name] announcements"'),React.createElement("li",null,"Contains a unique confirmation link"),React.createElement("li",null,"Includes note about checking spam folder")),React.createElement("h4",null,"Announcement Email"),React.createElement("p",null,"Sent to all confirmed subscribers when an announcement is published:"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,'Subject: "[Site Name] [Announcement Title]"'),React.createElement("li",null,"Full announcement content in plain text"),React.createElement("li",null,"Link to view on site"),React.createElement("li",null,"One-click unsubscribe link")),React.createElement("h3",null,"Notes"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,"Emails are sent using WordPress's ",React.createElement("code",null,"wp_mail()")," function"),React.createElement("li",null,'The "From" address uses your WordPress email settings'),React.createElement("li",null,"Subscribers are stored in a custom database table (",React.createElement("code",null,"wp_mayo_subscribers"),")"),React.createElement("li",null,"Emails are only sent when announcements are first published (not on updates)"),React.createElement("li",null,"The preferences column is reserved for future filtering options"))))},n=wp.components;function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function l(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",c=n.toStringTag||"@@toStringTag";function o(n,a,l,c){var o=a&&a.prototype instanceof u?a:u,s=Object.create(o.prototype);return r(s,"_invoke",function(n,a,l){var r,c,o,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,c=0,o=e,d.n=n,i}};function p(n,a){for(c=n,o=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(o=r[(c=r[4])?5:(c=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(c=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,c=0))}if(l||n>1)return i;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),c=s,o=E;(t=c<2?e:o)||!m;){r||(c?c<3?(c>1&&(d.n=-1),p(c,o)):d.n=o:d.v=o);try{if(u=2,r){if(c||(l="next"),t=r[l]){if(!(t=t.call(r,o)))throw TypeError("iterator result is not an object");if(!t.done)return t;o=t.value,c<2&&(c=0)}else 1===c&&(t=r.return)&&t.call(r),c<2&&(o=TypeError("The iterator does not provide a '"+l+"' method"),c=1);r=e}else if((t=(m=d.n<0)?o:n.call(a,d))!==i)break}catch(t){r=e,c=1,o=t}finally{u=1}}return{value:t,done:m}}}(n,l,c),!0),s}var i={};function u(){}function s(){}function m(){}t=Object.getPrototypeOf;var d=[][a]?t(t([][a]())):(r(t={},a,function(){return this}),t),p=m.prototype=u.prototype=Object.create(d);function E(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,r(e,c,"GeneratorFunction")),e.prototype=Object.create(p),e}return s.prototype=m,r(p,"constructor",m),r(m,"constructor",s),s.displayName="GeneratorFunction",r(m,c,"GeneratorFunction"),r(p),r(p,c,"Generator"),r(p,a,function(){return this}),r(p,"toString",function(){return"[object Generator]"}),(l=function(){return{w:o,m:E}})()}function r(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}r=function(e,t,n,a){function c(t,n){r(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(c("next",0),c("throw",1),c("return",2))},r(e,t,n,a)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,n){return(t=function(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}var s=function(){var e,t=(e=l().m(function e(t){var n,a,r,c,i,u,s,m,d,p=arguments;return l().w(function(e){for(;;)switch(e.p=e.n){case 0:return r=p.length>1&&void 0!==p[1]?p[1]:{},(c=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.root)||(null===(a=window.wpApiSettings)||void 0===a?void 0:a.root)||"/wp-json/").endsWith("/")||(c+="/"),i="".concat(c,"event-manager/v1").concat(t),u="",window.mayoApiSettings&&window.mayoApiSettings.nonce?u=window.mayoApiSettings.nonce:window.wpApiSettings&&window.wpApiSettings.nonce&&(u=window.wpApiSettings.nonce),s=o(o({},{credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":u}}),r),e.p=1,e.n=2,fetch(i,s);case 2:if((m=e.v).ok){e.n=3;break}throw new Error("API error: ".concat(m.status," ").concat(m.statusText));case 3:return e.n=4,m.json();case 4:return e.a(2,e.v);case 5:throw e.p=5,d=e.v,console.error("API fetch error:",d),d;case 6:return e.a(2)}},e,null,[[1,5]])}),function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){u(r,a,l,c,o,"next",e)}function o(e){u(r,a,l,c,o,"throw",e)}c(void 0)})});return function(e){return t.apply(this,arguments)}}();function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return p(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(p(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function E(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,p(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,p(m,"constructor",u),p(u,"constructor",i),i.displayName="GeneratorFunction",p(u,l,"GeneratorFunction"),p(m),p(m,l,"Generator"),p(m,a,function(){return this}),p(m,"toString",function(){return"[object Generator]"}),(d=function(){return{w:r,m:E}})()}function p(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}p=function(e,t,n,a){function r(t,n){p(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},p(e,t,n,a)}function E(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function f(e){return function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){E(r,a,l,c,o,"next",e)}function o(e){E(r,a,l,c,o,"throw",e)}c(void 0)})}}function R(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||b(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach(function(t){g(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e){return function(e){if(Array.isArray(e))return _(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||b(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){if(e){if("string"==typeof e)return _(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_(e,t):void 0}}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var S=function(e){if(!e)return!1;try{return"https:"===new URL(e).protocol}catch(e){return!1}},w=function(e){return!e||e.split(/[,;]/).map(function(e){return e.trim()}).filter(function(e){return e}).every(function(e){return function(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}(e)})};const x=function(){var t=R((0,e.useState)({bmlt_root_server:"",notification_email:"",default_service_bodies:""}),2),a=t[0],l=t[1],r=R((0,e.useState)(!0),2),c=r[0],o=r[1],i=R((0,e.useState)(!1),2),u=i[0],m=i[1],p=R((0,e.useState)(null),2),E=p[0],v=p[1],b=R((0,e.useState)(null),2),_=b[0],x=b[1],k=R((0,e.useState)([]),2),C=k[0],T=k[1],A=R((0,e.useState)(null),2),N=A[0],P=A[1],O=R((0,e.useState)(null),2),D=O[0],j=O[1],B=R((0,e.useState)(!1),2),M=B[0],F=B[1],I=R((0,e.useState)({subscription_categories:[],subscription_tags:[],subscription_service_bodies:[],subscription_new_option_behavior:"auto_include"}),2),L=I[0],z=I[1],G=R((0,e.useState)([]),2),U=G[0],W=G[1],Y=R((0,e.useState)([]),2),H=Y[0],q=Y[1],J=R((0,e.useState)([]),2),$=J[0],K=J[1];(0,e.useEffect)(function(){var e=function(){var e=f(d().m(function e(){var t,n,a,r,c,i,u,m,p,E;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,o(!0),v(null),e.n=1,s("/settings");case 1:return t=e.v,l({bmlt_root_server:t.bmlt_root_server||"",notification_email:t.notification_email||"",default_service_bodies:t.default_service_bodies||""}),T(Array.isArray(t.external_sources)?t.external_sources:[]),z({subscription_categories:t.subscription_categories||[],subscription_tags:t.subscription_tags||[],subscription_service_bodies:t.subscription_service_bodies||[],subscription_new_option_behavior:t.subscription_new_option_behavior||"opt_in"}),e.p=2,e.n=3,fetch("/wp-json/wp/v2/categories?per_page=100");case 3:if(!(n=e.v).ok){e.n=5;break}return e.n=4,n.json();case 4:a=e.v,W(a.map(function(e){return{id:e.id,name:e.name}}));case 5:e.n=7;break;case 6:e.p=6,m=e.v,console.error("Failed to load categories:",m);case 7:return e.p=7,e.n=8,fetch("/wp-json/wp/v2/tags?per_page=100");case 8:if(!(r=e.v).ok){e.n=10;break}return e.n=9,r.json();case 9:c=e.v,q(c.map(function(e){return{id:e.id,name:e.name}}));case 10:e.n=12;break;case 11:e.p=11,p=e.v,console.error("Failed to load tags:",p);case 12:if(!t.bmlt_root_server){e.n=18;break}return e.p=13,e.n=14,fetch(t.bmlt_root_server+"/client_interface/json/?switcher=GetServiceBodies");case 14:if(!(i=e.v).ok){e.n=16;break}return e.n=15,i.json();case 15:u=e.v,K(u.map(function(e){return{id:e.id,name:e.name,parent_id:e.parent_id||"0"}}));case 16:e.n=18;break;case 17:e.p=17,E=e.v,console.error("Failed to load service bodies:",E);case 18:e.n=20;break;case 19:e.p=19,e.v,v("Failed to load settings. Please refresh the page and try again.");case 20:return e.p=20,o(!1),e.f(20);case 21:return e.a(2)}},e,null,[[13,17],[7,11],[2,6],[0,19,20,21]])}));return function(){return e.apply(this,arguments)}}();e()},[]);var V=function(e,t){l(function(n){return y(y({},n),{},g({},e,t))})},Z=function(){var e=f(d().m(function e(){var t,n,l,r;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(e.p=0,m(!0),v(null),S(D.url)){e.n=1;break}throw new Error("External source URL must use HTTPS protocol.");case 1:return t=y(y({},D),{},{event_type:D.event_type||""}),n=h(C),null!==N?n[N]=t:M&&n.push(t),e.n=2,s("/settings",{method:"POST",body:JSON.stringify(y(y({},a),{},{external_sources:n}))});case 2:l=e.v,T(l.settings.external_sources),j(null),P(null),F(!1),x("External source saved successfully!"),setTimeout(function(){return x(null)},3e3),e.n=4;break;case 3:e.p=3,r=e.v,v(r.message||"Failed to save external source.");case 4:return e.p=4,m(!1),e.f(4);case 5:return e.a(2)}},e,null,[[0,3,4,5]])}));return function(){return e.apply(this,arguments)}}(),Q=function(){var e=f(d().m(function e(t){var n;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(confirm("Are you sure you want to delete this external source?")){e.n=1;break}return e.a(2);case 1:return e.p=1,m(!0),n=C.filter(function(e,n){return n!==t}),e.n=2,s("/settings",{method:"POST",body:JSON.stringify(y(y({},a),{},{external_sources:n}))});case 2:T(n),j(null),P(null),F(!1),x("External source deleted successfully!"),setTimeout(function(){return x(null)},3e3),e.n=4;break;case 3:e.p=3,e.v,v("Failed to delete external source.");case 4:return e.p=4,m(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}));return function(t){return e.apply(this,arguments)}}(),X=function(e,t){z(function(n){var a=n[e]||[],l=a.includes(t);return y(y({},n),{},g({},e,l?a.filter(function(e){return e!==t}):[].concat(h(a),[t])))})},ee=function(){var e=f(d().m(function e(){var t;return d().w(function(e){for(;;)switch(e.p=e.n){case 0:if(e.p=0,m(!0),v(null),S(a.bmlt_root_server)){e.n=1;break}throw new Error("BMLT Root Server URL must use HTTPS protocol.");case 1:if(!a.notification_email||w(a.notification_email)){e.n=2;break}throw new Error("Please enter valid email addresses for notifications. Multiple emails can be separated by commas or semicolons.");case 2:return e.n=3,s("/settings",{method:"POST",body:JSON.stringify({bmlt_root_server:a.bmlt_root_server,notification_email:a.notification_email,default_service_bodies:a.default_service_bodies,external_sources:C,subscription_categories:L.subscription_categories,subscription_tags:L.subscription_tags,subscription_service_bodies:L.subscription_service_bodies,subscription_new_option_behavior:L.subscription_new_option_behavior})});case 3:e.v,x("Settings saved successfully!"),setTimeout(function(){return x(null)},3e3),e.n=5;break;case 4:e.p=4,t=e.v,v(t.message||"Failed to save settings.");case 5:return e.p=5,m(!1),e.f(5);case 6:return e.a(2)}},e,null,[[0,4,5,6]])}));return function(){return e.apply(this,arguments)}}();return c?React.createElement("div",{className:"mayo-settings-loading"},React.createElement(n.Spinner,null)," Loading settings..."):React.createElement("div",{className:"mayo-settings-page"},React.createElement("h1",null,"Mayo Events Manager Settings"),React.createElement(n.Notice,{status:"warning",isDismissible:!1},React.createElement("p",null,React.createElement("strong",null,"Important:"),' This plugin requires Pretty Permalinks to be enabled for the REST API to function correctly. If you\'re experiencing 404 errors when accessing external source or settings BMLT server, please ensure your WordPress site is using Pretty Permalinks (Settings → Permalinks) and not the "Plain" setting.')),E&&React.createElement(n.Notice,{status:"error",isDismissible:!0,onRemove:function(){return v(null)}},E),_&&React.createElement(n.Notice,{status:"success",isDismissible:!0,onRemove:function(){return x(null)}},_),React.createElement(n.Panel,null,React.createElement(n.PanelBody,{title:"BMLT Settings",initialOpen:!0},React.createElement(n.PanelRow,null,React.createElement(n.TextControl,{label:"BMLT Root Server URL",value:a.bmlt_root_server,onChange:function(e){return V("bmlt_root_server",e)},help:a.bmlt_root_server&&!S(a.bmlt_root_server)?"URL must start with 'https://'":"Enter the URL of your BMLT root server (e.g., https://bmlt.example.org/main_server)",className:a.bmlt_root_server&&!S(a.bmlt_root_server)?"mayo-invalid-url":"",__next40pxDefaultSize:!0})),React.createElement(n.PanelRow,null,React.createElement(n.TextControl,{label:"Notification Email",value:a.notification_email,onChange:function(e){return V("notification_email",e)},help:a.notification_email&&!w(a.notification_email)?"Please enter valid email addresses. Multiple emails can be separated by commas or semicolons.":"Email addresses to receive event submission notifications. Multiple emails can be separated by commas or semicolons. Leave empty to send to all admins.",className:a.notification_email&&!w(a.notification_email)?"mayo-invalid-email":"",__next40pxDefaultSize:!0}))),React.createElement(n.PanelBody,{title:"Service Body Configuration",initialOpen:!0},React.createElement(n.PanelRow,null,React.createElement(n.TextControl,{label:"Restricted Service Bodies",value:a.default_service_bodies,onChange:function(e){return V("default_service_bodies",e)},help:"Comma-separated list of service body IDs (e.g., 1,2,3). When specified, only these service bodies will be available for event submission. Leave empty to allow all service bodies. Use '0' for Unaffiliated. Perfect for multi-site setups where each site should only show specific service bodies.",placeholder:"e.g., 1,2,3,0",__next40pxDefaultSize:!0})),React.createElement(n.PanelRow,null,React.createElement(n.Button,{isPrimary:!0,onClick:ee,isBusy:u,disabled:u||a.bmlt_root_server&&!S(a.bmlt_root_server)||a.notification_email&&!w(a.notification_email)},u?"Saving...":"Save Settings")))),React.createElement(n.Panel,null,React.createElement(n.PanelBody,{title:"External Event Sources",initialOpen:!0},React.createElement("div",{className:"mayo-external-sources-list"},C.map(function(e,t){return React.createElement("div",{key:e.id,className:"mayo-external-source-item"},React.createElement("div",{className:"mayo-external-source-info"},React.createElement("strong",null,e.name||e.url),React.createElement("div",{className:"mayo-external-source-details"},React.createElement("span",{className:"mayo-source-id"},"ID: ",e.id),e.event_type&&React.createElement("span",null,"Type: ",e.event_type),e.service_body&&React.createElement("span",null,"Service Body: ",e.service_body),React.createElement("span",{className:"mayo-source-status ".concat(e.enabled?"enabled":"disabled")},e.enabled?"Enabled":"Disabled"))),React.createElement("div",{className:"mayo-external-source-actions"},React.createElement(n.Button,{isSecondary:!0,onClick:function(){return function(e,t){j(e),P(t)}(e,t)}},"Edit"),React.createElement(n.Button,{isDestructive:!0,onClick:function(){return Q(t)}},"Delete")))})),React.createElement("div",{className:"mayo-external-sources-actions"},React.createElement(n.Button,{isPrimary:!0,onClick:function(){j({id:"",name:"",url:"",event_type:"",service_body:"",categories:"",tags:"",enabled:!0}),F(!0)},className:"mayo-add-source-button",disabled:M||null!==N},"Add New External Source")),(M||null!==N)&&D&&React.createElement("div",{className:"mayo-external-source-form"},React.createElement(n.TextControl,{label:"Site URL",value:D.url,onChange:function(e){return j(y(y({},D),{},{url:e}))},help:"Enter the URL of the WordPress site (e.g., https://example.com)",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Source Name",value:D.name,onChange:function(e){return j(y(y({},D),{},{name:e}))},help:"Enter a friendly name for this source (e.g., District 5 Website)",__next40pxDefaultSize:!0}),React.createElement(n.SelectControl,{label:"Event Type",value:D.event_type||"",options:[{label:"Select an event type",value:""},{label:"Activity",value:"Activity"},{label:"Service",value:"Service"}],onChange:function(e){j(y(y({},D),{},{event_type:e}))},help:"Select the event type",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Service Body",value:D.service_body,onChange:function(e){return j(y(y({},D),{},{service_body:e}))},help:"Filter by service body (optional)",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Categories",value:D.categories,onChange:function(e){return j(y(y({},D),{},{categories:e}))},help:"Filter by categories (comma-separated)",__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Tags",value:D.tags,onChange:function(e){return j(y(y({},D),{},{tags:e}))},help:"Filter by tags (comma-separated)",__next40pxDefaultSize:!0}),React.createElement(n.ToggleControl,{label:"Enable Source",checked:D.enabled,onChange:function(e){return j(y(y({},D),{},{enabled:e}))}}),React.createElement("div",{className:"mayo-form-actions"},React.createElement(n.Button,{isPrimary:!0,onClick:Z,isBusy:u},u?"Saving...":"Save Source"),React.createElement(n.Button,{isSecondary:!0,onClick:function(){j(null),P(null),F(!1)}},"Cancel"))))),React.createElement(n.Panel,null,React.createElement(n.PanelBody,{title:"Subscription Preferences",initialOpen:!0},React.createElement("p",{className:"mayo-settings-description"},"Configure which categories, tags, and service bodies are available for subscribers to choose from when signing up for announcement notifications."),U.length>0&&React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"Categories available for subscription:"),React.createElement("div",{className:"mayo-checkbox-list",style:{border:"1px solid #ddd",borderRadius:"4px",background:"#fff",padding:"12px 16px",maxHeight:"300px",overflowY:"auto"}},U.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:L.subscription_categories.includes(e.id),onChange:function(){return X("subscription_categories",e.id)}})}))),H.length>0&&React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"Tags available for subscription:"),React.createElement("div",{className:"mayo-checkbox-list",style:{border:"1px solid #ddd",borderRadius:"4px",background:"#fff",padding:"12px 16px",maxHeight:"300px",overflowY:"auto"}},H.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:L.subscription_tags.includes(e.id),onChange:function(){return X("subscription_tags",e.id)}})}))),$.length>0&&React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"Service Bodies available for subscription:"),React.createElement("div",{className:"mayo-service-body-tree"},function(e){var t=h(e).sort(function(e,t){return e.name.localeCompare(t.name)}),n={},a=[];t.forEach(function(e){n[e.id]=[]}),t.forEach(function(e){var t=String(e.parent_id);"0"!==t&&n[t]?n[t].push(e):a.push(e)});var l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=[];return e.forEach(function(e){var r;a.push(y(y({},e),{},{depth:t})),(null===(r=n[e.id])||void 0===r?void 0:r.length)>0&&(a=a.concat(l(n[e.id],t+1)))}),a};return l(a)}($).map(function(e){return React.createElement("div",{key:e.id,className:"mayo-tree-item",style:{paddingLeft:"".concat(24*e.depth,"px")}},React.createElement(n.CheckboxControl,{label:"".concat(e.name," (").concat(e.id,")"),checked:L.subscription_service_bodies.includes(e.id),onChange:function(){return X("subscription_service_bodies",e.id)}}))}))),React.createElement("div",{className:"mayo-subscription-section"},React.createElement("h4",null,"When new options are added:"),React.createElement(n.RadioControl,{selected:L.subscription_new_option_behavior,options:[{label:"Auto-include: Automatically add to existing subscribers",value:"auto_include"},{label:"Opt-in: Existing subscribers must manually add new options",value:"opt_in"}],onChange:function(e){return function(e,t){z(function(e){return y(y({},e),{},g({},"subscription_new_option_behavior",t))})}(0,e)}})),React.createElement(n.PanelRow,null,React.createElement(n.Button,{isPrimary:!0,onClick:ee,isBusy:u,disabled:u||a.bmlt_root_server&&!S(a.bmlt_root_server)||a.notification_email&&!w(a.notification_email)},u?"Saving...":"Save Settings")))))};function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const C=function(){var t,n,a=(t=(0,e.useState)((new Date).toLocaleString()),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return React.createElement("div",{className:"wrap mayo-docs"},React.createElement("h1",null,"CSS Classes Documentation"),React.createElement("div",{className:"card"},React.createElement("div",{className:"mayo-docs-header"},React.createElement("h2",null,"Dynamic CSS Classes"),React.createElement("div",{className:"mayo-docs-meta"},React.createElement("span",{className:"mayo-docs-last-updated"},"Last updated: ",a))),React.createElement("div",{className:"notice notice-warning"},React.createElement("p",null,React.createElement("strong",null,"Important:"),' This plugin does not include a built-in CSS editor. To style the event cards, you need to use another plugin like "Simple Custom CSS" or add CSS to your theme\'s stylesheet.')),React.createElement("p",null,"This documentation explains the dynamic CSS classes used in the Event Card and Calendar View components. These classes are generated based on event properties and can be used to style specific events."),React.createElement("div",{className:"mayo-tab-content"},React.createElement("h3",null,"Dynamic Classes"),React.createElement("p",null,"These classes are dynamically generated based on event properties:"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Class Pattern"),React.createElement("th",null,"Based On"),React.createElement("th",null,"Example"))),React.createElement("tbody",null,[{pattern:"mayo-event-category-{category-slug}",baseName:"mayo-event-category",description:"Class for event categories"},{pattern:"mayo-event-tag-{tag-slug}",baseName:"mayo-event-tag",description:"Class for event tags"},{pattern:"mayo-event-type-{event-type-slug}",baseName:"mayo-event-type",description:"Class for event types"},{pattern:"mayo-event-service-body-{service-body-slug}",baseName:"mayo-event-service-body",description:"Class for service bodies"}].map(function(e,t){var n="",a="";return e.baseName.includes("category")?(n="Event categories",a="mayo-event-category-meetings"):e.baseName.includes("tag")?(n="Event tags",a="mayo-event-tag-featured"):e.baseName.includes("type")?(n="Event type",a="mayo-event-type-service"):e.baseName.includes("service-body")&&(n="Service body",a="mayo-event-service-body-district-1"),React.createElement("tr",{key:t},React.createElement("td",null,React.createElement("code",null,e.pattern)),React.createElement("td",null,n),React.createElement("td",null,React.createElement("code",null,a)))}))),React.createElement("h4",null,"Special Characters Handling"),React.createElement("p",null,"Special characters and emojis in category, tag, event type, and service body names are converted to Unicode codes to ensure valid CSS class names:"),React.createElement("pre",null,React.createElement("code",null,'// Example: "Meeting 🎉" becomes "mayo-event-category-meeting-u127881"')),React.createElement("h4",null,"Small Variants"),React.createElement("p",null,"Categories and tags in the event brief section use small variants:"),React.createElement("ul",null,React.createElement("li",null,React.createElement("code",null,"mayo-event-category-small")),React.createElement("li",null,React.createElement("code",null,"mayo-event-tag-small"))),React.createElement("h4",null,"How to Add Custom CSS"),React.createElement("p",null,"To style the event cards, you need to add CSS to your theme or use a custom CSS plugin. Here are some recommended plugins:"),React.createElement("ul",null,React.createElement("li",null,React.createElement("a",{href:"https://wordpress.org/plugins/simple-custom-css/",target:"_blank",rel:"noopener noreferrer"},"Simple Custom CSS")),React.createElement("li",null,React.createElement("a",{href:"https://wordpress.org/plugins/custom-css-js/",target:"_blank",rel:"noopener noreferrer"},"Custom CSS and JS")),React.createElement("li",null,React.createElement("a",{href:"https://wordpress.org/plugins/advanced-custom-css/",target:"_blank",rel:"noopener noreferrer"},"Advanced Custom CSS"))),React.createElement("h4",null,"List View vs Calendar View Styling"),React.createElement("p",null,"The same dynamic classes are applied to both list view and calendar view events. This means your existing styles will automatically work in both views:"),React.createElement("pre",null,React.createElement("code",null,"\n/* This styles events in BOTH list and calendar views */\n.mayo-event-category-meetings {\n border-left: 4px solid #4a90e2;\n}\n ")),React.createElement("p",null,"If you want ",React.createElement("strong",null,"different")," styling for each view, use the base element class as a prefix:"),React.createElement("ul",null,React.createElement("li",null,React.createElement("code",null,".mayo-event-card")," - List view event cards"),React.createElement("li",null,React.createElement("code",null,".mayo-calendar-event")," - Calendar view event pills")),React.createElement("pre",null,React.createElement("code",null,"\n/* List view only */\n.mayo-event-card.mayo-event-category-meetings {\n border-left: 4px solid #4a90e2;\n}\n\n/* Calendar view only */\n.mayo-calendar-event.mayo-event-category-meetings {\n background-color: #e3f2fd;\n border-left: 3px solid #1976d2;\n}\n ")),React.createElement("h4",null,"Customization Example"),React.createElement("p",null,"Once you have a CSS editor, you can add rules like these:"),React.createElement("pre",null,React.createElement("code",null,'\n/* Style events with the "meetings" category (both views) */\n.mayo-event-category-meetings {\n border-left: 4px solid #4a90e2;\n}\n\n/* Style events with the "workshops" category (both views) */\n.mayo-event-category-workshops {\n border-left: 4px solid #e2844a;\n}\n\n/* Style service events (both views) */\n.mayo-event-type-service {\n background-color: #f0f7ff;\n}\n\n/* Style events from a specific service body (both views) */\n.mayo-event-service-body-district-1 {\n border-top: 2px solid #4a90e2;\n}\n\n/* Calendar view only: different background for activity events */\n.mayo-calendar-event.mayo-event-type-activity {\n background-color: #fff3e0;\n}\n ')))))},T=function(){var e=window.location.origin;return React.createElement("div",{className:"wrap mayo-docs"},React.createElement("h1",null,"API Documentation"),React.createElement("div",{className:"card"},React.createElement("h2",null,"Overview"),React.createElement("p",null,"The Mayo Events Manager provides a REST API for programmatic access to events and announcements. All endpoints use the namespace ",React.createElement("code",null,"event-manager/v1"),"."),React.createElement("p",null,React.createElement("strong",null,"Base URL:")," ",React.createElement("code",null,e,"/wp-json/event-manager/v1"))),React.createElement("div",{className:"card"},React.createElement("h2",null,"Table of Contents"),React.createElement("h3",null,"Event Endpoints"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#get-events"},"GET /events")," - List events with filtering"),React.createElement("li",null,React.createElement("a",{href:"#get-event-slug"},"GET /event/","{slug}")," - Get event by slug"),React.createElement("li",null,React.createElement("a",{href:"#get-event-id"},"GET /events/","{id}")," - Get event by ID"),React.createElement("li",null,React.createElement("a",{href:"#search-events"},"GET /events/search")," - Search events"),React.createElement("li",null,React.createElement("a",{href:"#post-submit-event"},"POST /submit-event")," - Submit a new event")),React.createElement("h3",null,"Announcement Endpoints"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#get-announcements"},"GET /announcements")," - List announcements"),React.createElement("li",null,React.createElement("a",{href:"#get-announcement-id"},"GET /announcement/","{id}")," - Get announcement by ID")),React.createElement("h3",null,"Settings Endpoints"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#get-settings"},"GET /settings")," - Get plugin settings"),React.createElement("li",null,React.createElement("a",{href:"#post-settings"},"POST /settings")," - Update plugin settings")),React.createElement("h3",null,"Reference"),React.createElement("ul",{className:"ul-disc"},React.createElement("li",null,React.createElement("a",{href:"#event-meta-fields"},"Event Meta Fields")),React.createElement("li",null,React.createElement("a",{href:"#announcement-response"},"Announcement Response Object")),React.createElement("li",null,React.createElement("a",{href:"#wordpress-rest-api"},"WordPress REST API")),React.createElement("li",null,React.createElement("a",{href:"#usage-examples"},"Usage Examples")))),React.createElement("div",{className:"card",id:"get-events"},React.createElement("h2",null,"GET /events"),React.createElement("p",null,"Retrieve a list of events with optional filtering and pagination."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/events")),React.createElement("h3",null,"Query Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Default"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"page")),React.createElement("td",null,"integer"),React.createElement("td",null,"1"),React.createElement("td",null,"Page number for pagination")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"per_page")),React.createElement("td",null,"integer"),React.createElement("td",null,"10"),React.createElement("td",null,"Number of events per page")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"status")),React.createElement("td",null,"string"),React.createElement("td",null,"publish"),React.createElement("td",null,"Post status filter (",React.createElement("code",null,"publish"),", ",React.createElement("code",null,"pending"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_type")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter by event type (e.g., ",React.createElement("code",null,"Service"),", ",React.createElement("code",null,"Activity"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"service_body")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated service body IDs (e.g., ",React.createElement("code",null,"1,2,3"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated category slugs. Prefix with ",React.createElement("code",null,"-")," to exclude (e.g., ",React.createElement("code",null,"meetings,-cancelled"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated tag slugs. Prefix with ",React.createElement("code",null,"-")," to exclude")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"archive")),React.createElement("td",null,"boolean"),React.createElement("td",null,"false"),React.createElement("td",null,"When ",React.createElement("code",null,"true"),", returns only past events")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"order")),React.createElement("td",null,"string"),React.createElement("td",null,"ASC"),React.createElement("td",null,"Sort order: ",React.createElement("code",null,"ASC")," (earliest first) or ",React.createElement("code",null,"DESC")," (latest first)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"timezone")),React.createElement("td",null,"string"),React.createElement("td",null,"Server timezone"),React.createElement("td",null,"IANA timezone for date filtering (e.g., ",React.createElement("code",null,"America/New_York"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter events starting from this date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter events ending before this date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"source_ids")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated source IDs. Use ",React.createElement("code",null,"local")," for local events, or external source IDs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"relation")),React.createElement("td",null,"string"),React.createElement("td",null,"AND"),React.createElement("td",null,"Relation between meta query conditions (",React.createElement("code",null,"AND")," or ",React.createElement("code",null,"OR"),")")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/events?per_page=5&categories=meetings&order=ASC"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "events": [\n {\n "id": 123,\n "title": {\n "rendered": "Monthly Meeting"\n },\n "content": {\n "rendered": "<p>Event description...</p>"\n },\n "link": "'.concat(e,'/mayo/monthly-meeting/",\n "meta": {\n "event_start_date": "2024-03-15",\n "event_end_date": "2024-03-15",\n "event_start_time": "19:00:00",\n "event_end_time": "21:00:00",\n "timezone": "America/New_York",\n "event_type": "Service",\n "service_body": "1",\n "location_name": "Community Center",\n "location_address": "123 Main St",\n "location_details": "Room 101"\n },\n "featured_image": "').concat(e,'/wp-content/uploads/2024/03/flyer.jpg",\n "categories": [\n {\n "id": 5,\n "name": "Meetings",\n "slug": "meetings",\n "link": "').concat(e,'/category/meetings/"\n }\n ],\n "tags": [],\n "source": {\n "id": "local",\n "name": "Local Events",\n "url": "').concat(e,'"\n }\n }\n ],\n "pagination": {\n "total": 25,\n "per_page": 5,\n "current_page": 1,\n "total_pages": 5\n }\n}')))),React.createElement("div",{className:"card",id:"get-event-slug"},React.createElement("h2",null,"GET /event/","{slug}"),React.createElement("p",null,"Retrieve details for a single event by its slug."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/event/","{slug}")),React.createElement("h3",null,"Path Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"slug")),React.createElement("td",null,"string"),React.createElement("td",null,"The event's URL slug")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/event/monthly-meeting"))),React.createElement("h3",null,"Response"),React.createElement("p",null,"Returns a single event object (same structure as events in the list response)."),React.createElement("h3",null,"Error Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "no_event",\n "message": "Event not found",\n "data": {\n "status": 404\n }\n}'))),React.createElement("div",{className:"card",id:"get-event-id"},React.createElement("h2",null,"GET /events/","{id}"),React.createElement("p",null,"Retrieve a single event by its post ID."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/events/","{id}")),React.createElement("h3",null,"Path Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"id")),React.createElement("td",null,"integer"),React.createElement("td",null,"The event's post ID")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/events/123"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "id": 123,\n "title": "Monthly Meeting",\n "start_date": "2024-03-15",\n "end_date": "2024-03-15",\n "start_time": "19:00:00",\n "end_time": "21:00:00",\n "permalink": "'.concat(e,'/mayo/monthly-meeting/",\n "edit_link": "').concat(e,'/wp-admin/post.php?post=123&action=edit"\n}'))),React.createElement("h3",null,"Error Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "not_found",\n "message": "Event not found",\n "data": {\n "status": 404\n }\n}'))),React.createElement("div",{className:"card",id:"search-events"},React.createElement("h2",null,"GET /events/search"),React.createElement("p",null,"Search events by title. Useful for finding events to link to announcements."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/events/search")),React.createElement("h3",null,"Query Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Default"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"search")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Search term to match against event titles")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"limit")),React.createElement("td",null,"integer"),React.createElement("td",null,"20"),React.createElement("td",null,"Maximum number of results to return")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"include")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated event IDs to fetch specific events")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/events/search?search=meeting&limit=10"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "events": [\n {\n "id": 123,\n "title": "Monthly Meeting",\n "start_date": "2024-03-15",\n "permalink": "'.concat(e,'/mayo/monthly-meeting/",\n "edit_link": "').concat(e,'/wp-admin/post.php?post=123&action=edit"\n },\n {\n "id": 456,\n "title": "Regional Meeting",\n "start_date": "2024-04-01",\n "permalink": "').concat(e,'/mayo/regional-meeting/",\n "edit_link": "').concat(e,'/wp-admin/post.php?post=456&action=edit"\n }\n ]\n}')))),React.createElement("div",{className:"card",id:"post-submit-event"},React.createElement("h2",null,"POST /submit-event"),React.createElement("p",null,"Submit a new event. Events are created with ",React.createElement("code",null,"pending")," status and require admin approval."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"POST ",e,"/wp-json/event-manager/v1/submit-event")),React.createElement("h3",null,"Authentication"),React.createElement("p",null,"This endpoint is publicly accessible (no authentication required)."),React.createElement("h3",null,"Request Body (multipart/form-data)"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Field"),React.createElement("th",null,"Type"),React.createElement("th",null,"Required"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Event title")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_type")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Event type (e.g., ",React.createElement("code",null,"Service"),", ",React.createElement("code",null,"Activity"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"service_body")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Service body ID (use ",React.createElement("code",null,"0")," for Unaffiliated)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"email")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Contact email address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"contact_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Contact person's name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Start date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"End date (YYYY-MM-DD format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_time")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"Start time (HH:MM:SS format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_time")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"End time (HH:MM:SS format)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"timezone")),React.createElement("td",null,"string"),React.createElement("td",null,"Yes"),React.createElement("td",null,"IANA timezone (e.g., ",React.createElement("code",null,"America/New_York"),")")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"description")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Event description (HTML allowed)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_name")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Venue name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_address")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Street address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_details")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Additional location info (room number, etc.)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Comma-separated category IDs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"string"),React.createElement("td",null,"No"),React.createElement("td",null,"Comma-separated tag names or IDs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"recurring_pattern")),React.createElement("td",null,"JSON string"),React.createElement("td",null,"No"),React.createElement("td",null,"Recurring event configuration (see below)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"flyer")),React.createElement("td",null,"file"),React.createElement("td",null,"No"),React.createElement("td",null,"Event flyer image (set as featured image)")))),React.createElement("h3",null,"Recurring Pattern Object"),React.createElement("pre",null,React.createElement("code",null,'{\n "type": "weekly", // "none", "daily", "weekly", "monthly"\n "interval": 1, // Repeat every N days/weeks/months\n "weekdays": [1, 3, 5], // For weekly: days of week (0=Sun, 6=Sat)\n "monthlyType": "date", // For monthly: "date" or "weekday"\n "monthlyDate": 15, // For monthly by date: day of month\n "monthlyWeekday": "2,4", // For monthly by weekday: "week,day" (e.g., "2,4" = 2nd Thursday)\n "endDate": "2024-12-31" // When recurring pattern ends\n}')),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "id": 456,\n "title": {\n "rendered": "New Community Event"\n },\n "content": {\n "rendered": "<p>Event description...</p>"\n },\n "link": "'.concat(e,'/mayo/new-community-event/",\n "meta": {\n "event_start_date": "2024-04-01",\n "event_end_date": "2024-04-01",\n "event_start_time": "14:00:00",\n "event_end_time": "16:00:00",\n "timezone": "America/Los_Angeles",\n "event_type": "Activity",\n "service_body": "5",\n "location_name": "Park Pavilion",\n "location_address": "456 Oak Ave",\n "location_details": ""\n },\n "categories": [],\n "tags": []\n}')))),React.createElement("div",{className:"card",id:"get-announcements"},React.createElement("h2",null,"GET /announcements"),React.createElement("p",null,"Retrieve a list of announcements with optional filtering. By default, only returns announcements within their active display window."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/announcements")),React.createElement("h3",null,"Query Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Default"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"priority")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter by priority level: ",React.createElement("code",null,"low"),", ",React.createElement("code",null,"normal"),", ",React.createElement("code",null,"high"),", ",React.createElement("code",null,"urgent"))),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated category slugs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"string"),React.createElement("td",null,"empty"),React.createElement("td",null,"Comma-separated tag slugs")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"linked_event")),React.createElement("td",null,"integer"),React.createElement("td",null,"empty"),React.createElement("td",null,"Filter by linked event ID")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"active")),React.createElement("td",null,"string"),React.createElement("td",null,"true"),React.createElement("td",null,"Set to ",React.createElement("code",null,"false")," to include announcements outside their display window")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/announcements?priority=urgent"))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "announcements": [\n {\n "id": 789,\n "title": "Weather Closure Notice",\n "content": "<p>Due to severe weather...</p>",\n "excerpt": "Due to severe weather...",\n "link": "'.concat(e,'/announcement/weather-closure/",\n "display_start_date": "2024-03-14",\n "display_end_date": "2024-03-16",\n "priority": "urgent",\n "linked_events": [\n {\n "id": 123,\n "title": "Monthly Meeting",\n "permalink": "').concat(e,'/mayo/monthly-meeting/",\n "start_date": "2024-03-15"\n }\n ],\n "featured_image": null,\n "categories": [],\n "tags": []\n }\n ],\n "total": 1\n}')))),React.createElement("div",{className:"card",id:"get-announcement-id"},React.createElement("h2",null,"GET /announcement/","{id}"),React.createElement("p",null,"Retrieve a single announcement by its post ID."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/announcement/","{id}")),React.createElement("h3",null,"Path Parameters"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Parameter"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"id")),React.createElement("td",null,"integer"),React.createElement("td",null,"The announcement's post ID")))),React.createElement("h3",null,"Example Request"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/event-manager/v1/announcement/789"))),React.createElement("h3",null,"Response"),React.createElement("p",null,"Returns a single announcement object (same structure as announcements in the list response)."),React.createElement("h3",null,"Error Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "not_found",\n "message": "Announcement not found",\n "data": {\n "status": 404\n }\n}'))),React.createElement("div",{className:"card",id:"get-settings"},React.createElement("h2",null,"GET /settings"),React.createElement("p",null,"Retrieve plugin settings. This endpoint is publicly accessible for frontend configuration."),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"GET ",e,"/wp-json/event-manager/v1/settings")),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "bmlt_root_server": "https://bmlt.example.org/main_server",\n "notification_email": "events@example.org",\n "default_service_bodies": "1,2,3",\n "external_sources": [\n {\n "id": "source_abc123",\n "url": "https://other-site.org",\n "name": "Other Site Events",\n "event_type": "",\n "service_body": "",\n "categories": "",\n "tags": "",\n "enabled": true\n }\n ]\n}'))),React.createElement("div",{className:"card",id:"post-settings"},React.createElement("h2",null,"POST /settings"),React.createElement("p",null,"Update plugin settings. ",React.createElement("strong",null,"Requires administrator authentication.")),React.createElement("h3",null,"Endpoint"),React.createElement("pre",null,React.createElement("code",null,"POST ",e,"/wp-json/event-manager/v1/settings")),React.createElement("h3",null,"Authentication"),React.createElement("p",null,"Requires a logged-in user with ",React.createElement("code",null,"manage_options")," capability (administrator)."),React.createElement("p",null,"Include the WordPress REST API nonce in your request:"),React.createElement("pre",null,React.createElement("code",null,"// Using wp-api-fetch (recommended)\nimport apiFetch from '@wordpress/api-fetch';\napiFetch({ path: '/event-manager/v1/settings', method: 'POST', data: {...} });\n\n// Using fetch with nonce\nfetch('".concat(e,"/wp-json/event-manager/v1/settings', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': wpApiSettings.nonce\n },\n body: JSON.stringify({...})\n});"))),React.createElement("h3",null,"Request Body (JSON)"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Field"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"bmlt_root_server")),React.createElement("td",null,"string"),React.createElement("td",null,"BMLT root server URL")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"notification_email")),React.createElement("td",null,"string"),React.createElement("td",null,"Email address(es) for event submission notifications")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"default_service_bodies")),React.createElement("td",null,"string"),React.createElement("td",null,"Comma-separated service body IDs to restrict submissions")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"external_sources")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of external source configurations")))),React.createElement("h3",null,"Example Response"),React.createElement("pre",null,React.createElement("code",null,'{\n "success": true,\n "settings": {\n "bmlt_root_server": "https://bmlt.example.org/main_server",\n "notification_email": "events@example.org",\n "default_service_bodies": "1,2,3",\n "external_sources": []\n }\n}')),React.createElement("h3",null,"Error Response (Unauthorized)"),React.createElement("pre",null,React.createElement("code",null,'{\n "code": "rest_forbidden",\n "message": "Sorry, you are not allowed to update settings.",\n "data": {\n "status": 401\n }\n}'))),React.createElement("div",{className:"card",id:"event-meta-fields"},React.createElement("h2",null,"Event Meta Fields"),React.createElement("p",null,"Events use the following meta fields, which are exposed via the WordPress REST API for the ",React.createElement("code",null,"mayo_event")," post type:"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Meta Key"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_type")),React.createElement("td",null,"string"),React.createElement("td",null,"Event type (Service, Activity, etc.)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"service_body")),React.createElement("td",null,"string"),React.createElement("td",null,"Service body ID")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"Start date (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"End date (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_start_time")),React.createElement("td",null,"string"),React.createElement("td",null,"Start time (HH:MM:SS)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"event_end_time")),React.createElement("td",null,"string"),React.createElement("td",null,"End time (HH:MM:SS)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"timezone")),React.createElement("td",null,"string"),React.createElement("td",null,"IANA timezone identifier")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Venue name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_address")),React.createElement("td",null,"string"),React.createElement("td",null,"Street address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"location_details")),React.createElement("td",null,"string"),React.createElement("td",null,"Additional location information")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"contact_name")),React.createElement("td",null,"string"),React.createElement("td",null,"Contact person's name")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"email")),React.createElement("td",null,"string"),React.createElement("td",null,"Contact email address")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"recurring_pattern")),React.createElement("td",null,"object"),React.createElement("td",null,"Recurring event configuration")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"skipped_occurrences")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of skipped dates for recurring events"))))),React.createElement("div",{className:"card",id:"announcement-response"},React.createElement("h2",null,"Announcement Response Object"),React.createElement("p",null,"Announcements returned from the API include the following fields:"),React.createElement("table",{className:"widefat"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Field"),React.createElement("th",null,"Type"),React.createElement("th",null,"Description"))),React.createElement("tbody",null,React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"id")),React.createElement("td",null,"integer"),React.createElement("td",null,"The announcement's post ID")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"title")),React.createElement("td",null,"string"),React.createElement("td",null,"Announcement title")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"content")),React.createElement("td",null,"string"),React.createElement("td",null,"Full announcement content (HTML)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"excerpt")),React.createElement("td",null,"string"),React.createElement("td",null,"Short excerpt of the announcement")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"link")),React.createElement("td",null,"string"),React.createElement("td",null,"Permalink to the announcement")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"edit_link")),React.createElement("td",null,"string"),React.createElement("td",null,"Admin edit URL for the announcement")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"display_start_date")),React.createElement("td",null,"string"),React.createElement("td",null,"When the announcement starts showing (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"display_end_date")),React.createElement("td",null,"string"),React.createElement("td",null,"When the announcement stops showing (YYYY-MM-DD)")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"priority")),React.createElement("td",null,"string"),React.createElement("td",null,"Priority level: ",React.createElement("code",null,"low"),", ",React.createElement("code",null,"normal"),", ",React.createElement("code",null,"high"),", or ",React.createElement("code",null,"urgent"))),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"linked_events")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of linked event objects with ",React.createElement("code",null,"id"),", ",React.createElement("code",null,"title"),", ",React.createElement("code",null,"permalink"),", ",React.createElement("code",null,"start_date"))),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"is_active")),React.createElement("td",null,"boolean"),React.createElement("td",null,"Whether the announcement is currently within its display window")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"featured_image")),React.createElement("td",null,"string|null"),React.createElement("td",null,"URL of the featured image, if set")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"categories")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of category objects")),React.createElement("tr",null,React.createElement("td",null,React.createElement("code",null,"tags")),React.createElement("td",null,"array"),React.createElement("td",null,"Array of tag objects"))))),React.createElement("div",{className:"card",id:"wordpress-rest-api"},React.createElement("h2",null,"WordPress REST API"),React.createElement("p",null,"Events are also accessible via the standard WordPress REST API at ",React.createElement("code",null,"/wp-json/wp/v2/mayo_event"),"."),React.createElement("h3",null,"Example"),React.createElement("pre",null,React.createElement("code",null,"GET ".concat(e,"/wp-json/wp/v2/mayo_event?per_page=10&status=publish"))),React.createElement("p",null,"This provides access to all standard WordPress post fields plus the registered meta fields above.")),React.createElement("div",{className:"card",id:"usage-examples"},React.createElement("h2",null,"Usage Examples"),React.createElement("h3",null,"JavaScript (Fetch API)"),React.createElement("pre",null,React.createElement("code",null,"// Get upcoming events\nfetch('".concat(e,"/wp-json/event-manager/v1/events?per_page=10')\n .then(response => response.json())\n .then(data => {\n console.log('Events:', data.events);\n console.log('Total:', data.pagination.total);\n });\n\n// Get events for a specific service body\nfetch('").concat(e,"/wp-json/event-manager/v1/events?service_body=1,2')\n .then(response => response.json())\n .then(data => console.log(data));\n\n// Get past events (archive)\nfetch('").concat(e,"/wp-json/event-manager/v1/events?archive=true&order=DESC')\n .then(response => response.json())\n .then(data => console.log(data));\n\n// Get active announcements\nfetch('").concat(e,"/wp-json/event-manager/v1/announcements')\n .then(response => response.json())\n .then(data => console.log(data.announcements));\n\n// Get urgent announcements only\nfetch('").concat(e,"/wp-json/event-manager/v1/announcements?priority=urgent')\n .then(response => response.json())\n .then(data => console.log(data));"))),React.createElement("h3",null,"PHP (WordPress)"),React.createElement("pre",null,React.createElement("code",null,"// Get events using wp_remote_get\n$response = wp_remote_get('".concat(e,"/wp-json/event-manager/v1/events?per_page=5');\n\nif (!is_wp_error($response)) {\n $body = wp_remote_retrieve_body($response);\n $data = json_decode($body, true);\n\n foreach ($data['events'] as $event) {\n echo $event['title']['rendered'] . '<br>';\n }\n}"))),React.createElement("h3",null,"cURL"),React.createElement("pre",null,React.createElement("code",null,'# Get events\ncurl "'.concat(e,'/wp-json/event-manager/v1/events?per_page=5"\n\n# Get a single event\ncurl "').concat(e,'/wp-json/event-manager/v1/event/monthly-meeting"\n\n# Get settings\ncurl "').concat(e,'/wp-json/event-manager/v1/settings"\n\n# Get announcements\ncurl "').concat(e,'/wp-json/event-manager/v1/announcements"\n\n# Get announcements for a specific event (use linked_event filter)\ncurl "').concat(e,'/wp-json/event-manager/v1/announcements?linked_event=123"')))))};function A(e){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(e)}function N(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return P(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(P(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,P(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,P(m,"constructor",u),P(u,"constructor",i),i.displayName="GeneratorFunction",P(u,l,"GeneratorFunction"),P(m),P(m,l,"Generator"),P(m,a,function(){return this}),P(m,"toString",function(){return"[object Generator]"}),(N=function(){return{w:r,m:d}})()}function P(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}P=function(e,t,n,a){function r(t,n){P(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},P(e,t,n,a)}function O(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function D(e){return function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){O(r,a,l,c,o,"next",e)}function o(e){O(r,a,l,c,o,"throw",e)}c(void 0)})}}function j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(Object(n),!0).forEach(function(t){M(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function M(e,t,n){return(t=function(e){var t=function(e){if("object"!=A(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=A(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==A(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||I(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){if(e){if("string"==typeof e)return L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var z=function(t){var a,l,r,c,o,i,u=t.subscriber,s=t.options,m=t.onSave,d=t.onClose,p=t.saving,E=F((0,e.useState)(u.status),2),f=E[0],R=E[1],v=F((0,e.useState)(function(){var e=u.preferences||{};return{categories:(e.categories||[]).map(function(e){return Number(e)}),tags:(e.tags||[]).map(function(e){return Number(e)}),service_bodies:(e.service_bodies||[]).map(function(e){return String(e)})}}),2),y=v[0],g=v[1],h=function(e,t,n){g(function(a){var l,r=a[e]||[];return B(B({},a),{},M({},e,n?[].concat(function(e){if(Array.isArray(e))return L(e)}(l=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||I(l)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[t]):r.filter(function(e){return e!==t})))})};return React.createElement(n.Modal,{title:"Edit Subscriber: ".concat(u.email),onRequestClose:d,className:"mayo-subscriber-edit-modal"},React.createElement("div",{style:{minWidth:"400px"}},React.createElement(n.SelectControl,{label:"Status",value:f,options:[{label:"Active",value:"active"},{label:"Pending",value:"pending"},{label:"Unsubscribed",value:"unsubscribed"}],onChange:R}),React.createElement("div",{style:{marginTop:"16px"}},React.createElement("h4",{style:{marginBottom:"8px"}},"Subscription Preferences"),React.createElement("p",{className:"description",style:{marginBottom:"12px"}},"Select which categories, tags, and service bodies this subscriber should receive notifications for. If none are selected, they will receive all announcements."),(null==s||null===(a=s.categories)||void 0===a?void 0:a.length)>0&&React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("strong",{style:{display:"block",marginBottom:"8px"}},"Categories"),s.categories.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:(t=e.id,y.categories.some(function(e){return Number(e)===Number(t)})),onChange:function(t){return h("categories",Number(e.id),t)}});var t})),(null==s||null===(l=s.tags)||void 0===l?void 0:l.length)>0&&React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("strong",{style:{display:"block",marginBottom:"8px"}},"Tags"),s.tags.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:(t=e.id,y.tags.some(function(e){return Number(e)===Number(t)})),onChange:function(t){return h("tags",Number(e.id),t)}});var t})),(null==s||null===(r=s.service_bodies)||void 0===r?void 0:r.length)>0&&React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("strong",{style:{display:"block",marginBottom:"8px"}},"Service Bodies"),s.service_bodies.map(function(e){return React.createElement(n.CheckboxControl,{key:e.id,label:e.name,checked:(t=e.id,y.service_bodies.some(function(e){return String(e)===String(t)})),onChange:function(t){return h("service_bodies",String(e.id),t)}});var t})),!(null!=s&&null!==(c=s.categories)&&void 0!==c&&c.length)&&!(null!=s&&null!==(o=s.tags)&&void 0!==o&&o.length)&&!(null!=s&&null!==(i=s.service_bodies)&&void 0!==i&&i.length)&&React.createElement("p",{style:{color:"#646970",fontStyle:"italic"}},"No subscription options configured. Configure them in the Settings page.")),React.createElement("div",{style:{marginTop:"20px",display:"flex",gap:"8px",justifyContent:"flex-end"}},React.createElement(n.Button,{isSecondary:!0,onClick:d,disabled:p},"Cancel"),React.createElement(n.Button,{isPrimary:!0,onClick:function(){m(u.id,{status:f,preferences:y})},disabled:p},p?"Saving...":"Save Changes"))))};const G=function(){var t=F((0,e.useState)([]),2),a=t[0],l=t[1],r=F((0,e.useState)(!0),2),c=r[0],o=r[1],i=F((0,e.useState)(null),2),u=i[0],m=i[1],d=F((0,e.useState)("all"),2),p=d[0],E=d[1],f=F((0,e.useState)(""),2),R=f[0],v=f[1],y=F((0,e.useState)(null),2),g=y[0],h=y[1],b=F((0,e.useState)(null),2),_=b[0],S=b[1],w=F((0,e.useState)(!1),2),x=w[0],k=w[1];(0,e.useEffect)(function(){var e=function(){var e=D(N().m(function e(){var t,n,a,r,c;return N().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([s("/subscribers"),s("/subscription-options")]);case 1:t=e.v,n=F(t,2),a=n[0],r=n[1],l(a),S(r),e.n=3;break;case 2:e.p=2,c=e.v,m(c.message||"Failed to load subscribers");case 3:return e.p=3,o(!1),e.f(3);case 4:return e.a(2)}},e,null,[[0,2,3,4]])}));return function(){return e.apply(this,arguments)}}();e()},[]);var C=function(){var e=D(N().m(function e(t,n){var a,r;return N().w(function(e){for(;;)switch(e.p=e.n){case 0:return k(!0),e.p=1,e.n=2,s("/subscribers/".concat(t),{method:"PUT",body:JSON.stringify(n)});case 2:return e.n=3,s("/subscribers");case 3:a=e.v,l(a),h(null),e.n=5;break;case 4:e.p=4,r=e.v,alert("Failed to update subscriber: "+(r.message||"Unknown error"));case 5:return e.p=5,k(!1),e.f(5);case 6:return e.a(2)}},e,null,[[1,4,5,6]])}));return function(t,n){return e.apply(this,arguments)}}(),T=function(){var e=D(N().m(function e(t,n){var r;return N().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),window.confirm('Are you sure you want to delete subscriber "'.concat(n.email,'"? This action cannot be undone.'))){e.n=1;break}return e.a(2);case 1:return e.p=1,e.n=2,s("/subscribers/".concat(n.id),{method:"DELETE"});case 2:l(a.filter(function(e){return e.id!==n.id})),e.n=4;break;case 3:e.p=3,r=e.v,alert("Failed to delete subscriber: "+(r.message||"Unknown error"));case 4:return e.a(2)}},e,null,[[1,3]])}));return function(t,n){return e.apply(this,arguments)}}(),A=(0,e.useMemo)(function(){return a.filter(function(e){return!("all"!==p&&e.status!==p||R&&!e.email.toLowerCase().includes(R.toLowerCase()))})},[a,p,R]),P=(0,e.useMemo)(function(){var e={all:a.length,active:0,pending:0,unsubscribed:0};return a.forEach(function(t){void 0!==e[t.status]&&e[t.status]++}),e},[a]),O=function(e){return e?new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}):"—"},j={category:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e3f2fd",color:"#1565c0",borderRadius:"3px",marginRight:"4px",marginBottom:"4px"},tag:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#fff3e0",color:"#e65100",borderRadius:"3px",marginRight:"4px",marginBottom:"4px"},serviceBody:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e8f5e9",color:"#2e7d32",borderRadius:"3px",marginRight:"4px",marginBottom:"4px"},all:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",color:"#666",borderRadius:"3px"}};return c?React.createElement("div",{className:"wrap"},React.createElement("h1",{className:"wp-heading-inline"},"Subscribers"),React.createElement("hr",{className:"wp-header-end"}),React.createElement("div",{style:{padding:"20px",textAlign:"center"}},React.createElement(n.Spinner,null))):u?React.createElement("div",{className:"wrap"},React.createElement("h1",{className:"wp-heading-inline"},"Subscribers"),React.createElement("hr",{className:"wp-header-end"}),React.createElement("div",{className:"notice notice-error"},React.createElement("p",null,u))):React.createElement("div",{className:"wrap"},React.createElement("h1",{className:"wp-heading-inline"},"Subscribers"),React.createElement("hr",{className:"wp-header-end"}),React.createElement("ul",{className:"subsubsub"},React.createElement("li",{className:"all"},React.createElement("a",{href:"#",className:"all"===p?"current":"",onClick:function(e){e.preventDefault(),E("all")}},"All ",React.createElement("span",{className:"count"},"(",P.all,")"))," |"),React.createElement("li",{className:"active"},React.createElement("a",{href:"#",className:"active"===p?"current":"",onClick:function(e){e.preventDefault(),E("active")}},"Active ",React.createElement("span",{className:"count"},"(",P.active,")"))," |"),React.createElement("li",{className:"pending"},React.createElement("a",{href:"#",className:"pending"===p?"current":"",onClick:function(e){e.preventDefault(),E("pending")}},"Pending ",React.createElement("span",{className:"count"},"(",P.pending,")"))," |"),React.createElement("li",{className:"unsubscribed"},React.createElement("a",{href:"#",className:"unsubscribed"===p?"current":"",onClick:function(e){e.preventDefault(),E("unsubscribed")}},"Unsubscribed ",React.createElement("span",{className:"count"},"(",P.unsubscribed,")")))),React.createElement("p",{className:"search-box"},React.createElement("label",{className:"screen-reader-text",htmlFor:"subscriber-search-input"},"Search Subscribers:"),React.createElement("input",{type:"search",id:"subscriber-search-input",value:R,onChange:function(e){return v(e.target.value)},placeholder:"Search by email..."})),React.createElement("div",{style:{clear:"both"}}),React.createElement("table",{className:"wp-list-table widefat fixed striped table-view-list"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",{scope:"col",className:"manage-column column-email column-primary"},"Email"),React.createElement("th",{scope:"col",className:"manage-column column-status"},"Status"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Subscribed"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Confirmed"),React.createElement("th",{scope:"col",className:"manage-column column-preferences"},"Preferences"))),React.createElement("tbody",{id:"the-list"},0===A.length?React.createElement("tr",{className:"no-items"},React.createElement("td",{className:"colspanchange",colSpan:"5"},"No subscribers found.")):A.map(function(t){var n,a,l,r,c,o,i;return React.createElement(e.Fragment,{key:t.id},React.createElement("tr",null,React.createElement("td",{className:"email column-email column-primary","data-colname":"Email"},React.createElement("strong",null,t.email),React.createElement("div",{className:"row-actions visible",style:{visibility:"visible"}},React.createElement("span",{className:"edit"},React.createElement("button",{type:"button",className:"button button-small button-primary",onClick:function(){return h(t)},style:{marginRight:"4px"}},"Edit")),React.createElement("span",{className:"delete"},React.createElement("button",{type:"button",className:"button button-small button-link-delete",onClick:function(e){return T(e,t)},style:{color:"#b32d2e"}},"Delete")))),React.createElement("td",{className:"status column-status","data-colname":"Status"},React.createElement("span",{className:"mayo-subscriber-status mayo-status-".concat(t.status)},t.status.charAt(0).toUpperCase()+t.status.slice(1))),React.createElement("td",{className:"date column-date","data-colname":"Subscribed"},O(t.created_at)),React.createElement("td",{className:"date column-date","data-colname":"Confirmed"},O(t.confirmed_at)),React.createElement("td",{className:"preferences column-preferences","data-colname":"Preferences"},React.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"2px"}},((r=t.preferences)?((null===(c=r.categories)||void 0===c?void 0:c.length)||0)+((null===(o=r.tags)||void 0===o?void 0:o.length)||0)+((null===(i=r.service_bodies)||void 0===i?void 0:i.length)||0):0)>0?React.createElement(React.Fragment,null,null===(n=t.preferences.categories)||void 0===n?void 0:n.map(function(e,n){var a;return React.createElement("span",{key:"cat-".concat(e),style:j.category},(null===(a=t.preferences_display)||void 0===a||null===(a=a.categories)||void 0===a?void 0:a[n])||function(e){var t,n=null==_||null===(t=_.categories)||void 0===t?void 0:t.find(function(t){return String(t.id)===String(e)});return(null==n?void 0:n.name)||"Category ".concat(e)}(e))}),null===(a=t.preferences.tags)||void 0===a?void 0:a.map(function(e,n){var a;return React.createElement("span",{key:"tag-".concat(e),style:j.tag},(null===(a=t.preferences_display)||void 0===a||null===(a=a.tags)||void 0===a?void 0:a[n])||function(e){var t,n=null==_||null===(t=_.tags)||void 0===t?void 0:t.find(function(t){return String(t.id)===String(e)});return(null==n?void 0:n.name)||"Tag ".concat(e)}(e))}),null===(l=t.preferences.service_bodies)||void 0===l?void 0:l.map(function(e,n){var a;return React.createElement("span",{key:"sb-".concat(e),style:j.serviceBody},(null===(a=t.preferences_display)||void 0===a||null===(a=a.service_bodies)||void 0===a?void 0:a[n])||function(e){var t,n=null==_||null===(t=_.service_bodies)||void 0===t?void 0:t.find(function(t){return String(t.id)===String(e)});return(null==n?void 0:n.name)||"Service Body ".concat(e)}(e))})):React.createElement("span",{style:j.all},"All announcements")))))})),React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("th",{scope:"col",className:"manage-column column-email column-primary"},"Email"),React.createElement("th",{scope:"col",className:"manage-column column-status"},"Status"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Subscribed"),React.createElement("th",{scope:"col",className:"manage-column column-date"},"Confirmed"),React.createElement("th",{scope:"col",className:"manage-column column-preferences"},"Preferences")))),React.createElement("div",{className:"tablenav bottom"},React.createElement("div",{className:"tablenav-pages one-page"},React.createElement("span",{className:"displaying-num"},A.length," item",1!==A.length?"s":""))),g&&React.createElement(z,{subscriber:g,options:_,onSave:C,onClose:function(){return h(null)},saving:x}))},U=wp.plugins,W=React;function Y(e){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Y(e)}function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?H(Object(n),!0).forEach(function(t){J(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function J(e,t,n){return(t=function(e){var t=function(e){if("object"!=Y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Y(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return K(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(K(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,K(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,K(m,"constructor",u),K(u,"constructor",i),i.displayName="GeneratorFunction",K(u,l,"GeneratorFunction"),K(m),K(m,l,"Generator"),K(m,a,function(){return this}),K(m,"toString",function(){return"[object Generator]"}),($=function(){return{w:r,m:d}})()}function K(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}K=function(e,t,n,a){function r(t,n){K(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},K(e,t,n,a)}function V(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Q(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var X=(0,W.createContext)(),ee=function(){return(0,W.useContext)(X)},te=function(e){var t=e.children,n=Z((0,W.useState)([]),2),a=n[0],l=n[1],r=Z((0,W.useState)({}),2),c=r[0],o=r[1],i=Z((0,W.useState)(!0),2),u=i[0],m=i[1];return(0,W.useEffect)(function(){var e=function(){var e,t=(e=$().m(function e(){var t,n,a,r,c,o;return $().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,m(!0),e.n=1,s("/settings");case 1:if(t=e.v,n=t.bmlt_root_server){e.n=2;break}throw new Error("BMLT root server URL not set");case 2:return e.n=3,fetch("".concat(n,"/client_interface/json/?switcher=GetServiceBodies"));case 3:return a=e.v,e.n=4,a.json();case 4:r=e.v,c=r.sort(function(e,t){return e.name.localeCompare(t.name)}),l(c),e.n=6;break;case 5:e.p=5,o=e.v,console.error("Error fetching service bodies:",o),setError("Failed to load service bodies");case 6:return e.p=6,m(!1),e.f(6);case 7:return e.a(2)}},e,null,[[0,5,6,7]])}),function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){V(r,a,l,c,o,"next",e)}function o(e){V(r,a,l,c,o,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),React.createElement(X.Provider,{value:{serviceBodies:a,getServiceBodyName:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if("local"===t){var n=a.find(function(t){return t.id===e});return(null==n?void 0:n.name)||"Out of Area"}if(c[t]){var l=c[t].find(function(t){return t.id===e});return(null==l?void 0:l.name)||"Out of Area"}return"Out of Area"},updateExternalServiceBodies:function(e,t){t&&Array.isArray(t)&&0!==t.length&&o(function(n){return q(q({},n),{},J({},e,t))})}}},u?React.createElement("div",null,"Loading..."):t)};const ne=wp.editor,ae=wp.data;wp.i18n;var le=[{label:"Eastern Time (US/Canada)",value:"America/New_York",region:"North America"},{label:"Central Time (US/Canada)",value:"America/Chicago",region:"North America"},{label:"Mountain Time (US/Canada)",value:"America/Denver",region:"North America"},{label:"Pacific Time (US/Canada)",value:"America/Los_Angeles",region:"North America"},{label:"Alaska Time (US)",value:"America/Anchorage",region:"North America"},{label:"Hawaii Time (US)",value:"Pacific/Honolulu",region:"North America"},{label:"Atlantic Time (Canada)",value:"America/Halifax",region:"North America"},{label:"Newfoundland Time (Canada)",value:"America/St_Johns",region:"North America"},{label:"Mexico City Time",value:"America/Mexico_City",region:"North America"},{label:"London (GMT/BST)",value:"Europe/London",region:"Europe"},{label:"Paris (CET/CEST)",value:"Europe/Paris",region:"Europe"},{label:"Berlin (CET/CEST)",value:"Europe/Berlin",region:"Europe"},{label:"Rome (CET/CEST)",value:"Europe/Rome",region:"Europe"},{label:"Madrid (CET/CEST)",value:"Europe/Madrid",region:"Europe"},{label:"Amsterdam (CET/CEST)",value:"Europe/Amsterdam",region:"Europe"},{label:"Brussels (CET/CEST)",value:"Europe/Brussels",region:"Europe"},{label:"Zurich (CET/CEST)",value:"Europe/Zurich",region:"Europe"},{label:"Vienna (CET/CEST)",value:"Europe/Vienna",region:"Europe"},{label:"Stockholm (CET/CEST)",value:"Europe/Stockholm",region:"Europe"},{label:"Oslo (CET/CEST)",value:"Europe/Oslo",region:"Europe"},{label:"Copenhagen (CET/CEST)",value:"Europe/Copenhagen",region:"Europe"},{label:"Helsinki (EET/EEST)",value:"Europe/Helsinki",region:"Europe"},{label:"Athens (EET/EEST)",value:"Europe/Athens",region:"Europe"},{label:"Istanbul (TRT)",value:"Europe/Istanbul",region:"Europe"},{label:"Moscow (MSK)",value:"Europe/Moscow",region:"Europe"},{label:"Dublin (GMT/IST)",value:"Europe/Dublin",region:"Europe"},{label:"Lisbon (WET/WEST)",value:"Europe/Lisbon",region:"Europe"},{label:"Tokyo (JST)",value:"Asia/Tokyo",region:"Asia"},{label:"Shanghai (CST)",value:"Asia/Shanghai",region:"Asia"},{label:"Hong Kong (HKT)",value:"Asia/Hong_Kong",region:"Asia"},{label:"Singapore (SGT)",value:"Asia/Singapore",region:"Asia"},{label:"Seoul (KST)",value:"Asia/Seoul",region:"Asia"},{label:"Bangkok (ICT)",value:"Asia/Bangkok",region:"Asia"},{label:"Manila (PHT)",value:"Asia/Manila",region:"Asia"},{label:"Jakarta (WIB)",value:"Asia/Jakarta",region:"Asia"},{label:"Mumbai (IST)",value:"Asia/Kolkata",region:"Asia"},{label:"Dubai (GST)",value:"Asia/Dubai",region:"Asia"},{label:"Riyadh (AST)",value:"Asia/Riyadh",region:"Asia"},{label:"Tel Aviv (IST)",value:"Asia/Jerusalem",region:"Asia"},{label:"Dhaka (BST)",value:"Asia/Dhaka",region:"Asia"},{label:"Karachi (PKT)",value:"Asia/Karachi",region:"Asia"},{label:"Tashkent (UZT)",value:"Asia/Tashkent",region:"Asia"},{label:"Sydney (AEST/AEDT)",value:"Australia/Sydney",region:"Australia & Oceania"},{label:"Melbourne (AEST/AEDT)",value:"Australia/Melbourne",region:"Australia & Oceania"},{label:"Brisbane (AEST)",value:"Australia/Brisbane",region:"Australia & Oceania"},{label:"Perth (AWST)",value:"Australia/Perth",region:"Australia & Oceania"},{label:"Adelaide (ACST/ACDT)",value:"Australia/Adelaide",region:"Australia & Oceania"},{label:"Darwin (ACST)",value:"Australia/Darwin",region:"Australia & Oceania"},{label:"Hobart (AEST/AEDT)",value:"Australia/Hobart",region:"Australia & Oceania"},{label:"Auckland (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Wellington (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Fiji (FJT)",value:"Pacific/Fiji",region:"Australia & Oceania"},{label:"Cairo (EET)",value:"Africa/Cairo",region:"Africa"},{label:"Cape Town (SAST)",value:"Africa/Johannesburg",region:"Africa"},{label:"Lagos (WAT)",value:"Africa/Lagos",region:"Africa"},{label:"Nairobi (EAT)",value:"Africa/Nairobi",region:"Africa"},{label:"Casablanca (WET)",value:"Africa/Casablanca",region:"Africa"},{label:"Tunis (CET)",value:"Africa/Tunis",region:"Africa"},{label:"São Paulo (BRT)",value:"America/Sao_Paulo",region:"South America"},{label:"Buenos Aires (ART)",value:"America/Argentina/Buenos_Aires",region:"South America"},{label:"Santiago (CLT)",value:"America/Santiago",region:"South America"},{label:"Lima (PET)",value:"America/Lima",region:"South America"},{label:"Bogotá (COT)",value:"America/Bogota",region:"South America"},{label:"Caracas (VET)",value:"America/Caracas",region:"South America"}],re=function(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;return le.find(function(t){return t.value===e})?e:"America/New_York"}catch(e){return"America/New_York"}};function ce(e){return ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ce(e)}function oe(e){return function(e){if(Array.isArray(e))return Re(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||fe(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function ue(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(n),!0).forEach(function(t){se(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ie(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function se(e,t,n){return(t=function(e){var t=function(e){if("object"!=ce(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ce(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ce(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function me(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return de(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(de(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,de(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,de(m,"constructor",u),de(u,"constructor",i),i.displayName="GeneratorFunction",de(u,l,"GeneratorFunction"),de(m),de(m,l,"Generator"),de(m,a,function(){return this}),de(m,"toString",function(){return"[object Generator]"}),(me=function(){return{w:r,m:d}})()}function de(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}de=function(e,t,n,a){function r(t,n){de(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},de(e,t,n,a)}function pe(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function Ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||fe(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fe(e,t){if(e){if("string"==typeof e)return Re(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Re(e,t):void 0}}function Re(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const ve=function(){var t,a,l=ee().serviceBodies,r=Ee((0,e.useState)(!1),2),c=r[0],o=r[1],i=Ee((0,e.useState)(""),2),u=i[0],m=i[1],d=Ee((0,e.useState)([]),2),p=d[0],E=d[1],f=Ee((0,e.useState)(!1),2),R=f[0],v=f[1],y=(0,ae.useSelect)(function(e){return e("core/editor").getCurrentPostType()}),g=(0,ae.useSelect)(function(e){return e("core/editor").getCurrentPostId()}),h=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("meta")||{}}),b=(0,ae.useDispatch)("core/editor").editPost,_=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("status")});if((0,e.useEffect)(function(){if("mayo_event"===y&&g&&"auto-draft"!==_){var e=function(){var e,t=(e=me().m(function e(){var t,n;return me().w(function(e){for(;;)switch(e.p=e.n){case 0:return v(!0),e.p=1,e.n=2,s("/announcements?linked_event=".concat(g));case 2:t=e.v,E(t.announcements||[]),e.n=4;break;case 3:e.p=3,n=e.v,console.error("Error fetching linked announcements:",n),E([]);case 4:v(!1);case 5:return e.a(2)}},e,null,[[1,3]])}),function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){pe(r,a,l,c,o,"next",e)}function o(e){pe(r,a,l,c,o,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()}},[y,g,_]),"mayo_event"!==y)return null;var S="auto-draft"===_,w=function(e,t){b({meta:ue(ue({},h),{},se({},e,t))})},x=h.recurring_pattern||{type:"none",interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"",monthlyWeekday:""},k=function(e){var t=ue(ue(ue({},x),e),{},{weekdays:e.weekdays||x.weekdays||[]});w("recurring_pattern",t)},C=h.skipped_occurrences||[],T=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}],A=function(){return h.event_start_date?new Date(h.event_start_date).getDate().toString():""},N=function(){if(h.event_start_date){var e=new Date(h.event_start_date),t=Math.ceil(e.getDate()/7);return"".concat(t,",").concat(e.getDay())}return""};return React.createElement(React.Fragment,null,React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-event-details",title:"Event Details",className:"mayo-event-details"},React.createElement(n.SelectControl,{label:"Event Type",value:h.event_type,options:[{label:"Select Event Type",value:""},{label:"Service",value:"Service"},{label:"Activity",value:"Activity"}],onChange:function(e){return w("event_type",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.PanelBody,{title:"Event Date & Time",initialOpen:!0},React.createElement("div",{className:"mayo-sidebar-datetime"},React.createElement("p",{className:"mayo-sidebar-label"},"Start Date/Time"),React.createElement("div",{className:"mayo-sidebar-datetime-inputs"},React.createElement(n.TextControl,{type:"date",value:h.event_start_date,onChange:function(e){return w("event_start_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{type:"time",value:h.event_start_time,onChange:function(e){return w("event_start_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("p",{className:"mayo-sidebar-label"},"End Date/Time"),React.createElement("div",{className:"mayo-sidebar-datetime-inputs"},React.createElement(n.TextControl,{type:"date",value:h.event_end_date,onChange:function(e){return w("event_end_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{type:"time",value:h.event_end_time,onChange:function(e){return w("event_end_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),React.createElement(n.SelectControl,{label:"Timezone",value:h.timezone||(S?re():""),options:[{label:"-- No timezone set --",value:""}].concat(oe(le.map(function(e){return{label:e.label,value:e.value}}))),onChange:function(e){return w("timezone",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(n.PanelBody,{title:"Recurring Pattern",initialOpen:!0},React.createElement(n.SelectControl,{label:"Repeat",value:x.type,options:[{label:"No Recurrence",value:"none"},{label:"Daily",value:"daily"},{label:"Weekly",value:"weekly"},{label:"Monthly",value:"monthly"}],onChange:function(e){return k({type:e})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),"none"!==x.type&&React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-recurring-interval"},React.createElement(n.__experimentalNumberControl,{label:"Repeat every",min:1,value:x.interval,onChange:function(e){return k({interval:e})}}),React.createElement("span",null,"daily"===x.type?"days":"weekly"===x.type?"weeks":"months")),"weekly"===x.type&&React.createElement("div",{className:"mayo-weekday-controls"},React.createElement("p",{className:"components-base-control__label"},"On these days"),T.map(function(e){return React.createElement(n.CheckboxControl,{key:e.value,label:e.label,checked:x.weekdays.includes(e.value),onChange:function(t){var n=t?[].concat(oe(x.weekdays),[e.value]):x.weekdays.filter(function(t){return t!==e.value});k({weekdays:n})}})})),React.createElement(n.TextControl,{label:"End Date (optional)",type:"date",value:x.endDate,onChange:function(e){return k({endDate:e})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),"monthly"===x.type&&React.createElement("div",{className:"mayo-monthly-pattern"},React.createElement(n.RadioControl,{label:"Monthly Pattern",selected:x.monthlyType||"date",options:[{label:"On a specific date",value:"date"},{label:"On a specific day",value:"weekday"}],onChange:function(e){return k({monthlyType:e,monthlyDate:"date"===e?A():"",monthlyWeekday:"weekday"===e?N():""})}}),"date"===x.monthlyType&&React.createElement(n.__experimentalNumberControl,{label:"Day of month",value:x.monthlyDate||A(),onChange:function(e){return k({monthlyDate:e})},min:1,max:31}),"weekday"===x.monthlyType&&React.createElement("div",{className:"mayo-monthly-weekday"},React.createElement(n.SelectControl,{label:"Week",value:(null===(t=x.monthlyWeekday)||void 0===t?void 0:t.split(",")[0])||"1",options:[{value:"1",label:"First"},{value:"2",label:"Second"},{value:"3",label:"Third"},{value:"4",label:"Fourth"},{value:"5",label:"Fifth"},{value:"-1",label:"Last"}],onChange:function(e){var t,n=(null===(t=x.monthlyWeekday)||void 0===t?void 0:t.split(",")[1])||"0";k({monthlyWeekday:"".concat(e,",").concat(n)})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.SelectControl,{label:"Day",value:(null===(a=x.monthlyWeekday)||void 0===a?void 0:a.split(",")[1])||"0",options:T,onChange:function(e){var t,n=(null===(t=x.monthlyWeekday)||void 0===t?void 0:t.split(",")[0])||"1";k({monthlyWeekday:"".concat(n,",").concat(e)})},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})))),"none"!==x.type&&React.createElement(n.PanelBody,{title:"Skipped Occurrences",initialOpen:!1},React.createElement("p",{className:"components-base-control__help"},"Manage specific dates when this recurring event should not occur."),C.length>0&&React.createElement("div",{className:"mayo-skipped-occurrences-list"},React.createElement("p",{className:"components-base-control__label"},"Skipped Dates:"),C.map(function(e,t){return React.createElement("div",{key:t,className:"mayo-skipped-occurrence-item"},React.createElement("span",null,(l=(a=Ee(e.split("-").map(Number),3))[0],r=a[1],c=a[2],new Date(l,r-1,c).toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric"}))),React.createElement(n.Button,{isSmall:!0,isDestructive:!0,onClick:function(){return t=e,n=C.filter(function(e){return e!==t}),void w("skipped_occurrences",n);var t,n}},"Remove"));var a,l,r,c})),c?React.createElement("div",{className:"mayo-add-skip-form"},React.createElement(n.TextControl,{type:"date",label:"Date to skip",value:u,onChange:m,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{className:"mayo-add-skip-actions"},React.createElement(n.Button,{isPrimary:!0,isSmall:!0,onClick:function(){if(u){var e=[].concat(oe(C),[u]);w("skipped_occurrences",e),m(""),o(!1)}},disabled:!u},"Add Skip"),React.createElement(n.Button,{isSecondary:!0,isSmall:!0,onClick:function(){o(!1),m("")}},"Cancel"))):React.createElement(n.Button,{isSecondary:!0,isSmall:!0,onClick:function(){return o(!0)}},"Add Skipped Date")),React.createElement(n.PanelBody,{title:"Service Body",initialOpen:!0},React.createElement(n.SelectControl,{label:"Service Body",value:h.service_body,options:[{label:"Select a service body",value:""},{label:"Unaffiliated (0)",value:"0"}].concat(oe(l.map(function(e){return{label:"".concat(e.name," (").concat(e.id,")"),value:e.id}}))),onChange:function(e){return w("service_body",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement(n.PanelBody,{title:"Location Details",initialOpen:!0},React.createElement(n.TextControl,{label:"Location Name",value:h.location_name,onChange:function(e){return w("location_name",e)},placeholder:"e.g., Community Center",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Address",value:h.location_address,onChange:function(e){return w("location_address",e)},placeholder:"Full address",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Location Details",value:h.location_details,onChange:function(e){return w("location_details",e)},placeholder:"Parking info, entrance details, etc.",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-point-of-contact",title:"Point of Contact",className:"mayo-private-contact"},React.createElement(n.PanelBody,{title:"Contact Information (Private)",initialOpen:!0},React.createElement(n.TextControl,{label:"Contact Name",value:h.contact_name,onChange:function(e){return w("contact_name",e)},placeholder:"Full name of the contact person",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement(n.TextControl,{label:"Contact Email",value:h.email,onChange:function(e){return w("email",e)},placeholder:"Email address",type:"email",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}))),!S&&React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-linked-announcements",title:"Linked Announcements",className:"mayo-linked-announcements"},React.createElement("p",{className:"components-base-control__help",style:{marginTop:0}},"Announcements that reference this event."),R&&React.createElement("div",{style:{textAlign:"center",padding:"16px"}},React.createElement(n.Spinner,null)),!R&&0===p.length&&React.createElement("p",{style:{color:"#666",fontStyle:"italic"}},"No announcements linked to this event."),!R&&p.length>0&&React.createElement("div",{className:"mayo-linked-announcements-list"},p.map(function(e){var t=e.is_active?"#46b450":e.display_start_date&&e.display_start_date>(new Date).toISOString().split("T")[0]?"#0073aa":"#dc3545",n=e.is_active?"Active":e.display_start_date&&e.display_start_date>(new Date).toISOString().split("T")[0]?"Scheduled":"Expired";return React.createElement("div",{key:e.id,style:{padding:"10px 12px",backgroundColor:"#f9f9f9",borderRadius:"4px",marginBottom:"8px",borderLeft:"3px solid ".concat(t)}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"}},React.createElement("strong",null,e.title),React.createElement("span",{style:{fontSize:"11px",color:t,fontWeight:600}},n)),React.createElement("div",{style:{fontSize:"12px",color:"#666",marginTop:"4px"}},"Priority: ",React.createElement("span",{style:{color:"urgent"===e.priority?"#dc3545":"high"===e.priority?"#ff9800":"low"===e.priority?"#6c757d":"#0073aa",fontWeight:600}},e.priority)),React.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"8px"}},e.edit_link&&React.createElement("a",{href:e.edit_link,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",border:"1px solid #c3c4c7",borderRadius:"3px",textDecoration:"none",color:"#2271b1",whiteSpace:"nowrap"}},React.createElement("span",{className:"dashicons dashicons-edit",style:{fontSize:"14px",marginRight:"4px",width:"14px",height:"14px"}}),"Edit")))})),React.createElement("div",{style:{marginTop:"12px"}},React.createElement(n.Button,{isSecondary:!0,href:"".concat(window.location.origin,"/wp-admin/post-new.php?post_type=mayo_announcement&linked_event=").concat(g),target:"_blank"},"Create Announcement"))))};function ye(e){return ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ye(e)}function ge(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(ye(e)+" is not iterable")}function he(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ne(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0,l=function(){};return{s:l,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,c=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){o=!0,r=e},f:function(){try{c||null==n.return||n.return()}finally{if(o)throw r}}}}function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function _e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach(function(t){Se(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Se(e,t,n){return(t=function(e){var t=function(e){if("object"!=ye(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ye(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ye(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function we(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",l=n.toStringTag||"@@toStringTag";function r(n,a,l,r){var i=a&&a.prototype instanceof o?a:o,u=Object.create(i.prototype);return xe(u,"_invoke",function(n,a,l){var r,o,i,u=0,s=l||[],m=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return r=t,o=0,i=e,d.n=n,c}};function p(n,a){for(o=n,i=a,t=0;!m&&u&&!l&&t<s.length;t++){var l,r=s[t],p=d.p,E=r[2];n>3?(l=E===a)&&(i=r[(o=r[4])?5:(o=3,3)],r[4]=r[5]=e):r[0]<=p&&((l=n<2&&p<r[1])?(o=0,d.v=a,d.n=r[1]):p<E&&(l=n<3||r[0]>a||a>E)&&(r[4]=n,r[5]=a,d.n=E,o=0))}if(l||n>1)return c;throw m=!0,a}return function(l,s,E){if(u>1)throw TypeError("Generator is already running");for(m&&1===s&&p(s,E),o=s,i=E;(t=o<2?e:i)||!m;){r||(o?o<3?(o>1&&(d.n=-1),p(o,i)):d.n=i:d.v=i);try{if(u=2,r){if(o||(l="next"),t=r[l]){if(!(t=t.call(r,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,o<2&&(o=0)}else 1===o&&(t=r.return)&&t.call(r),o<2&&(i=TypeError("The iterator does not provide a '"+l+"' method"),o=1);r=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==c)break}catch(t){r=e,o=1,i=t}finally{u=1}}return{value:t,done:m}}}(n,l,r),!0),u}var c={};function o(){}function i(){}function u(){}t=Object.getPrototypeOf;var s=[][a]?t(t([][a]())):(xe(t={},a,function(){return this}),t),m=u.prototype=o.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,xe(e,l,"GeneratorFunction")),e.prototype=Object.create(m),e}return i.prototype=u,xe(m,"constructor",u),xe(u,"constructor",i),i.displayName="GeneratorFunction",xe(u,l,"GeneratorFunction"),xe(m),xe(m,l,"Generator"),xe(m,a,function(){return this}),xe(m,"toString",function(){return"[object Generator]"}),(we=function(){return{w:r,m:d}})()}function xe(e,t,n,a){var l=Object.defineProperty;try{l({},"",{})}catch(e){l=0}xe=function(e,t,n,a){function r(t,n){xe(e,t,function(e){return this._invoke(t,n,e)})}t?l?l(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},xe(e,t,n,a)}function ke(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ne(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ce(e,t,n,a,l,r,c){try{var o=e[r](c),i=o.value}catch(e){return void n(e)}o.done?t(i):Promise.resolve(i).then(a,l)}function Te(e){return function(){var t=this,n=arguments;return new Promise(function(a,l){var r=e.apply(t,n);function c(e){Ce(r,a,l,c,o,"next",e)}function o(e){Ce(r,a,l,c,o,"throw",e)}c(void 0)})}}function Ae(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,l,r,c,o=[],i=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);i=!0);}catch(e){u=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw l}}return o}}(e,t)||Ne(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ne(e,t){if(e){if("string"==typeof e)return Pe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Pe(e,t):void 0}}function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}(0,U.getPlugins)().some(function(e){return"mayo-event-details"===e.name})||(0,U.registerPlugin)("mayo-event-details",{render:function(){return React.createElement(te,null,React.createElement(ve,null))},icon:"calendar"});var Oe=function(t){var a=t.isOpen,l=t.onClose,r=t.onSelectEvent,c=t.onRemoveEvent,o=t.linkedEventRefs,i=(t.getRefKey,Ae((0,e.useState)(""),2)),u=i[0],m=i[1],d=Ae((0,e.useState)([]),2),p=d[0],E=d[1],f=Ae((0,e.useState)(!1),2),R=f[0],v=f[1],y=Ae((0,e.useState)(!1),2),g=y[0],h=y[1],b=Ae((0,e.useState)(1),2),_=b[0],S=b[1],w=Ae((0,e.useState)(!0),2),x=w[0],k=w[1],C=Ae((0,e.useState)(0),2),T=C[0],A=C[1],N=Ae((0,e.useState)(!0),2),P=N[0],O=N[1],D=(0,e.useRef)(null),j=(0,e.useRef)(null),B=function(e){return o.some(function(t){return"local"===t.type&&"local"===e.source.type?t.id===e.id:"external"===t.type&&"external"===e.source.type&&t.id===e.id&&t.source_id===e.source.id})},M=(0,e.useCallback)(function(){var e=Te(we().m(function e(t,n,a){var l,r,c,o,i,u=arguments;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return l=u.length>3&&void 0!==u[3]&&u[3],1===n?v(!0):h(!0),e.p=1,r=new URLSearchParams({per_page:20,page:n,hide_past:a?"1":"0"}),t&&r.append("search",t),e.n=2,s("/events/search-all?".concat(r.toString()));case 2:c=e.v,o=c.events||[],E(l?function(e){return[].concat(ke(e),ke(o))}:o),A(c.total||0),k(n<(c.total_pages||1)),S(n),e.n=4;break;case 3:e.p=3,i=e.v,console.error("Error fetching events:",i),l||E([]),k(!1);case 4:return e.p=4,v(!1),h(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}));return function(t,n,a){return e.apply(this,arguments)}}(),[]);(0,e.useEffect)(function(){if(a)return j.current&&clearTimeout(j.current),j.current=setTimeout(function(){M(u,1,P,!1)},300),function(){j.current&&clearTimeout(j.current)}},[a,u,P,M]),(0,e.useEffect)(function(){a&&(m(""),E([]),S(1),k(!0),O(!0))},[a]);var F=(0,e.useCallback)(function(){if(D.current&&!R&&!g&&x){var e=D.current,t=e.scrollTop;e.scrollHeight-t-e.clientHeight<100&&M(u,_+1,P,!0)}},[R,g,x,u,_,P,M]);return a?React.createElement(n.Modal,{title:"Link Events",onRequestClose:l,style:{maxWidth:"600px",width:"100%"},className:"mayo-event-search-modal"},React.createElement("div",{style:{marginBottom:"16px"}},React.createElement(n.TextControl,{label:"Search Events",value:u,onChange:m,placeholder:"Search by event name...",__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"8px"}},React.createElement(n.CheckboxControl,{label:"Hide past events",checked:P,onChange:O,__nextHasNoMarginBottom:!0}),T>0&&React.createElement("span",{style:{fontSize:"12px",color:"#666"}},T," event",1!==T?"s":""," found"))),React.createElement("div",{ref:D,onScroll:F,style:{maxHeight:"400px",overflowY:"auto",border:"1px solid #ddd",borderRadius:"4px",backgroundColor:"#fff"}},R&&React.createElement("div",{style:{textAlign:"center",padding:"40px"}},React.createElement(n.Spinner,null),React.createElement("p",{style:{margin:"8px 0 0",color:"#666"}},"Loading events...")),!R&&0===p.length&&React.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#666"}},u?'No events found matching "'.concat(u,'"'):"No events available"),!R&&p.map(function(e){var t="external"===e.source.type,a=B(e),l=t?"external-".concat(e.source.id,"-").concat(e.id):"local-".concat(e.id);return React.createElement("div",{key:l,style:{padding:"12px 16px",borderBottom:"1px solid #eee",cursor:"pointer",transition:"background-color 0.2s",backgroundColor:a?"#e8f5e9":"transparent",borderLeft:"4px solid ".concat(a?"#4caf50":t?"#ff9800":"#0073aa")},onClick:function(){return a?null:function(e){B(e)||r(e)}(e)},onMouseEnter:function(e){a||(e.currentTarget.style.backgroundColor="#f0f7ff")},onMouseLeave:function(e){a||(e.currentTarget.style.backgroundColor=a?"#e8f5e9":"transparent")}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},React.createElement("div",{style:{flex:1}},React.createElement("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center"}},a&&React.createElement("span",{className:"dashicons dashicons-yes-alt",style:{color:"#4caf50",fontSize:"16px",marginRight:"6px",width:"16px",height:"16px"}}),e.title),e.start_date&&React.createElement("div",{style:{fontSize:"12px",color:"#666",marginBottom:"4px"}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"12px",marginRight:"4px",verticalAlign:"middle",width:"12px",height:"12px"}}),function(e){if(!e)return"";try{var t=Ae(e.split("-").map(Number),3),n=t[0],a=t[1],l=t[2];return new Date(n,a-1,l).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch(t){return e}}(e.start_date))),React.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},React.createElement("span",{style:{fontSize:"10px",backgroundColor:t?"#fff3e0":"#e3f2fd",color:t?"#e65100":"#1565c0",padding:"3px 8px",borderRadius:"3px",whiteSpace:"nowrap"}},e.source.name),a&&React.createElement(n.Button,{isSmall:!0,isDestructive:!0,onClick:function(t){return function(e,t){t.stopPropagation(),c(e)}(e,t)},style:{minWidth:"auto"}},"Unlink"))))}),g&&React.createElement("div",{style:{textAlign:"center",padding:"16px"}},React.createElement(n.Spinner,null),React.createElement("span",{style:{marginLeft:"8px",color:"#666",fontSize:"12px"}},"Loading more...")),!R&&!g&&!x&&p.length>0&&React.createElement("div",{style:{textAlign:"center",padding:"12px",color:"#666",fontSize:"12px"}},"End of results")),React.createElement("div",{style:{marginTop:"16px",textAlign:"right"}},React.createElement(n.Button,{variant:"secondary",onClick:l},"Close"))):null};const De=function(){var t=Ae((0,e.useState)(!1),2),a=t[0],l=t[1],r=Ae((0,e.useState)(!1),2),c=r[0],o=r[1],i=Ae((0,e.useState)(null),2),u=i[0],m=i[1],d=Ae((0,e.useState)([]),2),p=d[0],E=d[1],f=Ae((0,e.useState)(!1),2),R=f[0],v=f[1],y=Ae((0,e.useState)(!1),2),g=y[0],h=y[1],b=Ae((0,e.useState)(null),2),_=b[0],S=b[1],w=ee().serviceBodies,x=(0,ae.useSelect)(function(e){return e("core/editor").getCurrentPostType()}),k=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("status")}),C=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("meta")||{}}),T=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("categories")||[]}),A=(0,ae.useSelect)(function(e){return e("core/editor").getEditedPostAttribute("tags")||[]}),N=(0,ae.useDispatch)("core/editor").editPost,P=C.service_body||"";if((0,e.useEffect)(function(){if("mayo_announcement"===x){var e=function(){var e=Te(we().m(function e(){var t,n;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return v(!0),e.p=1,e.n=2,s("/subscribers/count",{method:"POST",body:JSON.stringify({categories:T,tags:A,service_body:P})});case 2:t=e.v,m(t.count),E(t.subscribers||[]),e.n=4;break;case 3:e.p=3,n=e.v,console.error("Error fetching subscriber count:",n),m(null),E([]);case 4:v(!1);case 5:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),t=setTimeout(e,300);return function(){return clearTimeout(t)}}},[x,T,A,P]),(0,e.useEffect)(function(){if(!c&&"mayo_announcement"===x&&"auto-draft"===k){var e=new URLSearchParams(window.location.search).get("linked_event");if(e){var t=parseInt(e,10);if(!isNaN(t)&&t>0){var n=C.linked_event_refs||[];if(!n.some(function(e){return"local"===e.type&&e.id===t})){var a={type:"local",id:t};N({meta:_e(_e({},C),{},{linked_event_refs:[].concat(ke(n),[a])})})}}o(!0)}}},[x,k,c,C.linked_event_refs]),(0,e.useEffect)(function(){if("mayo_announcement"===x){var e=function(){var e=Te(we().m(function e(){var t,n;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,s("/settings");case 1:t=e.v,S({service_bodies:t.subscription_service_bodies||[]}),e.n=3;break;case 2:e.p=2,n=e.v,console.error("Error fetching subscription settings:",n),S({service_bodies:[]});case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();e()}},[x]),"mayo_announcement"!==x)return null;var O=function(){if(!_||0===_.service_bodies.length)return w;var e=_.service_bodies.map(function(e){return e.toString()});return w.filter(function(t){return e.includes(t.id.toString())})}(),D=function(e,t){N({meta:_e(_e({},C),{},Se({},e,t))})},j=function(){return C.linked_event_refs&&Array.isArray(C.linked_event_refs)&&C.linked_event_refs.length>0?C.linked_event_refs:C.linked_events&&Array.isArray(C.linked_events)?C.linked_events.map(function(e){return{type:"local",id:e}}):[]},B=j(),M=function(e){return"local"===e.type?"local-".concat(e.id):"external-".concat(e.source_id,"-").concat(e.id)},F=function(e){var t=j().filter(function(t){return"local"===t.type&&"local"===e.type?t.id!==e.id:"external"!==t.type||"external"!==e.type||!(t.id===e.id&&t.source_id===e.source_id)});D("linked_event_refs",t)},I=Ae((0,e.useState)({}),2),L=I[0],z=I[1],G=Ae((0,e.useState)(!1),2),U=G[0],W=G[1];return(0,e.useEffect)(function(){var e=function(){var e=Te(we().m(function e(){var t,n,a,l,r,c;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:if(0!==(t=B.filter(function(e){return!L[M(e)]})).length){e.n=1;break}return e.a(2);case 1:W(!0),n={},a=he(t),e.p=2,r=we().m(function e(){var t,a,r,c,o,i;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=l.value,a=M(t),e.p=1,"local"!==t.type){e.n=3;break}return e.n=2,s("/events/".concat(t.id));case 2:(r=e.v)&&!r.code?n[a]={title:r.title||"Unknown Event",start_date:r.start_date||"",permalink:r.permalink||"",edit_link:r.edit_link||"",source:{type:"local",id:"local",name:"Local"}}:n[a]={title:"Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:{type:"local",id:"local",name:"Local"}},e.n=6;break;case 3:return e.p=3,e.n=4,s("/events/search-all?per_page=100");case 4:c=e.v,o=(c.events||[]).find(function(e){return"external"===e.source.type&&e.source.id===t.source_id&&e.id===t.id}),n[a]=o?{title:o.title||"Unknown Event",start_date:o.start_date||"",permalink:o.permalink||"",edit_link:"",source:o.source}:{title:"External Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:{type:"external",id:t.source_id,name:t.source_id}},e.n=6;break;case 5:e.p=5,e.v,n[a]={title:"External Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:{type:"external",id:t.source_id,name:t.source_id}};case 6:e.n=8;break;case 7:e.p=7,i=e.v,console.error("Error fetching event details:",i),n[a]={title:"local"===t.type?"Event #".concat(t.id):"External Event #".concat(t.id),start_date:"",permalink:"",edit_link:"",unavailable:!0,source:"local"===t.type?{type:"local",id:"local",name:"Local"}:{type:"external",id:t.source_id,name:t.source_id}};case 8:return e.a(2)}},e,null,[[3,5],[1,7]])}),a.s();case 3:if((l=a.n()).done){e.n=5;break}return e.d(ge(r()),4);case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,c=e.v,a.e(c);case 7:return e.p=7,a.f(),e.f(7);case 8:Object.keys(n).length>0&&z(function(e){return _e(_e({},e),n)}),W(!1);case 9:return e.a(2)}},e,null,[[2,6,7,8]])}));return function(){return e.apply(this,arguments)}}();B.length>0&&e()},[JSON.stringify(B)]),React.createElement(React.Fragment,null,React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-announcement-details",title:"Announcement Settings",className:"mayo-announcement-details"},React.createElement(n.PanelBody,{title:"Display Window",initialOpen:!0},React.createElement("p",{className:"components-base-control__help",style:{marginTop:0,marginBottom:"12px"}},"Control when this announcement is visible on the frontend."),React.createElement("div",{style:{border:"1px solid #e0e0e0",borderRadius:"4px",padding:"12px",marginBottom:"12px",backgroundColor:"#fafafa"}},React.createElement("div",{style:{marginBottom:"4px"}},React.createElement("strong",{style:{fontSize:"12px",color:"#1e1e1e"}},"Start")),React.createElement(n.TextControl,{label:"Date",type:"date",value:C.display_start_date||"",onChange:function(e){return D("display_start_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{style:{marginTop:"8px"}},React.createElement(n.TextControl,{label:"Time",type:"time",value:C.display_start_time||"",onChange:function(e){return D("display_start_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px",marginBottom:0}},"Leave empty to start showing immediately")),React.createElement("div",{style:{border:"1px solid #e0e0e0",borderRadius:"4px",padding:"12px",backgroundColor:"#fafafa"}},React.createElement("div",{style:{marginBottom:"4px"}},React.createElement("strong",{style:{fontSize:"12px",color:"#1e1e1e"}},"End")),React.createElement(n.TextControl,{label:"Date",type:"date",value:C.display_end_date||"",onChange:function(e){return D("display_end_date",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("div",{style:{marginTop:"8px"}},React.createElement(n.TextControl,{label:"Time",type:"time",value:C.display_end_time||"",onChange:function(e){return D("display_end_time",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0})),React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px",marginBottom:0}},"Leave empty to show indefinitely"))),React.createElement(n.PanelBody,{title:"Priority",initialOpen:!0},React.createElement(n.SelectControl,{label:"Priority Level",value:C.priority||"normal",options:[{label:"Low",value:"low"},{label:"Normal",value:"normal"},{label:"High",value:"high"},{label:"Urgent",value:"urgent"}],onChange:function(e){return D("priority",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),React.createElement("p",{className:"components-base-control__help"},"Priority affects display order and styling.",React.createElement("span",{style:{display:"inline-block",marginLeft:"8px",color:{low:"#6c757d",normal:"#0073aa",high:"#ff9800",urgent:"#dc3545"}[C.priority||"normal"],fontWeight:600}},(C.priority||"normal").charAt(0).toUpperCase()+(C.priority||"normal").slice(1)))),React.createElement(n.PanelBody,{title:"Service Body",initialOpen:!0},React.createElement(n.SelectControl,{label:"Service Body",value:C.service_body||"",options:[{label:"Select a service body",value:""}].concat(ke(!_||0===_.service_bodies.length||_.service_bodies.map(function(e){return e.toString()}).includes("0")?[{label:"Unaffiliated (0)",value:"0"}]:[]),ke(O.map(function(e){return{label:"".concat(e.name," (").concat(e.id,")"),value:e.id}}))),onChange:function(e){return D("service_body",e)},__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}),_&&_.service_bodies.length>0&&React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px"}},"Only service bodies enabled in"," ",React.createElement("a",{href:"/wp-admin/admin.php?page=mayo-settings",target:"_blank",rel:"noopener noreferrer"},"subscription settings")," ","are shown."))),React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-linked-events",title:"Linked Events",className:"mayo-linked-events"},React.createElement("p",{className:"components-base-control__help",style:{marginTop:0}},"Link this announcement to local or external events."),U&&B.length>0&&React.createElement("div",{style:{textAlign:"center",padding:"16px"}},React.createElement(n.Spinner,null),React.createElement("p",{style:{margin:"8px 0 0",color:"#666",fontSize:"12px"}},"Loading event details...")),!U&&B.length>0&&React.createElement("div",{className:"mayo-linked-events-list",style:{marginBottom:"16px"}},B.map(function(e,t){var a=M(e),l=L[a]||{},r=l.title&&!l.title.startsWith("Event #")&&!l.title.startsWith("External Event #"),c="external"===e.type;return React.createElement("div",{key:a,style:{padding:"12px",backgroundColor:"#f9f9f9",borderRadius:"4px",marginBottom:"8px",borderLeft:"3px solid ".concat(c?"#ff9800":"#0073aa")}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"}},React.createElement("div",{style:{flex:1}},r||l.title?React.createElement(React.Fragment,null,React.createElement("strong",{style:{display:"block",marginBottom:"4px"}},l.title||(c?"External Event #".concat(e.id):"Event #".concat(e.id))),c&&l.source&&React.createElement("span",{style:{display:"inline-block",fontSize:"11px",backgroundColor:"#fff3e0",color:"#e65100",padding:"2px 6px",borderRadius:"3px",marginBottom:"4px"}},l.source.name||l.source.id),l.start_date&&React.createElement("div",{style:{color:"#666",fontSize:"12px",marginBottom:"8px"}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"14px",marginRight:"4px",verticalAlign:"middle"}}),function(e){if(!e)return"";try{var t=Ae(e.split("-").map(Number),3),n=t[0],a=t[1],l=t[2];return new Date(n,a-1,l).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch(t){return e}}(l.start_date)),React.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"8px"}},l.permalink&&React.createElement("a",{href:l.permalink,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",border:"1px solid #c3c4c7",borderRadius:"3px",textDecoration:"none",color:"#2271b1",whiteSpace:"nowrap"}},React.createElement("span",{className:"dashicons dashicons-external",style:{fontSize:"14px",marginRight:"4px",width:"14px",height:"14px"}}),c?"View on External Site":"View"),!c&&l.edit_link&&React.createElement("a",{href:l.edit_link,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",border:"1px solid #c3c4c7",borderRadius:"3px",textDecoration:"none",color:"#2271b1",whiteSpace:"nowrap"}},React.createElement("span",{className:"dashicons dashicons-edit",style:{fontSize:"14px",marginRight:"4px",width:"14px",height:"14px"}}),"Edit"))):React.createElement("span",{style:{color:"#666"}},c?"External Event #".concat(e.id):"Event #".concat(e.id),React.createElement("span",{style:{fontSize:"12px",marginLeft:"8px"}},"(loading...)"))),React.createElement(n.Button,{isSmall:!0,isDestructive:!0,onClick:function(){return F(e)},style:{marginLeft:"12px"}},"Remove")))})),React.createElement(n.Button,{variant:"secondary",onClick:function(){return l(!0)},style:{width:"100%",justifyContent:"center"}},React.createElement("span",{className:"dashicons dashicons-plus-alt2",style:{marginRight:"4px"}}),"Link Event"),React.createElement(Oe,{isOpen:a,onClose:function(){return l(!1)},onSelectEvent:function(e){!function(e){var t,n=j();t="local"===e.source.type?{type:"local",id:e.id}:{type:"external",id:e.id,source_id:e.source.id},n.some(function(e){return"local"===e.type&&"local"===t.type?e.id===t.id:"external"===e.type&&"external"===t.type&&e.id===t.id&&e.source_id===t.source_id})||D("linked_event_refs",[].concat(ke(n),[t]))}(e)},onRemoveEvent:function(e){var t="local"===e.source.type?{type:"local",id:e.id}:{type:"external",id:e.id,source_id:e.source.id};F(t)},linkedEventRefs:B,getRefKey:M})),React.createElement(ne.PluginDocumentSettingPanel,{name:"mayo-email-recipients",title:"Email Recipients",className:"mayo-email-recipients"},React.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:u>0?"pointer":"default"},onClick:function(){return u>0&&h(!0)}},R?React.createElement(n.Spinner,{style:{margin:0}}):React.createElement(React.Fragment,null,React.createElement("span",{className:"dashicons dashicons-email-alt",style:{color:"#2271b1",fontSize:"18px",width:"18px",height:"18px"}}),React.createElement("span",{style:{textDecoration:u>0?"underline":"none"}},React.createElement("strong",null,null!=u?u:0)," subscriber",1!==u?"s":""," will receive this announcement"))),React.createElement("p",{className:"components-base-control__help",style:{marginTop:"8px"}},"Based on selected categories, tags, and service body.",u>0&&" Click to view recipients."),g&&React.createElement(n.Modal,{title:"Email Recipients (".concat(p.length,")"),onRequestClose:function(){return h(!1)},style:{maxWidth:"600px",width:"100%"}},React.createElement("div",{style:{maxHeight:"400px",overflowY:"auto",border:"1px solid #ddd",borderRadius:"4px"}},p.length>0?p.map(function(e,t){var n,a;return React.createElement("div",{key:e.email,style:{padding:"12px",borderBottom:t<p.length-1?"1px solid #eee":"none"}},React.createElement("div",{style:{fontSize:"13px",fontWeight:500,marginBottom:"8px"}},e.email),React.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px"}},e.reason.all?React.createElement("span",{style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#f0f0f0",color:"#666",borderRadius:"3px"}},"Receives all announcements"):React.createElement(React.Fragment,null,null===(n=e.reason.categories)||void 0===n?void 0:n.map(function(e){return React.createElement("span",{key:e,style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e3f2fd",color:"#1565c0",borderRadius:"3px"}},e)}),null===(a=e.reason.tags)||void 0===a?void 0:a.map(function(e){return React.createElement("span",{key:e,style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#fff3e0",color:"#e65100",borderRadius:"3px"}},e)}),e.reason.service_body&&React.createElement("span",{style:{display:"inline-block",padding:"3px 8px",fontSize:"11px",backgroundColor:"#e8f5e9",color:"#2e7d32",borderRadius:"3px"}},e.reason.service_body))))}):React.createElement("div",{style:{padding:"20px",textAlign:"center",color:"#666"}},"No matching subscribers")),React.createElement("div",{style:{marginTop:"16px",textAlign:"right"}},React.createElement(n.Button,{variant:"secondary",onClick:function(){return h(!1)}},"Close")))))};(0,U.getPlugins)().some(function(e){return"mayo-announcement-details"===e.name})||(0,U.registerPlugin)("mayo-announcement-details",{render:function(){return React.createElement(te,null,React.createElement(De,null))},icon:"megaphone"}),document.addEventListener("DOMContentLoaded",function(){var n=document.getElementById("mayo-shortcode-root"),a=document.getElementById("mayo-settings-root"),l=document.getElementById("mayo-css-classes-root"),r=document.getElementById("mayo-api-docs-root"),c=document.getElementById("mayo-subscribers-root");n&&(0,e.render)(React.createElement(t,null),n),a&&(0,e.render)(React.createElement(x,null),a),l&&(0,e.render)(React.createElement(C,null),l),r&&(0,e.render)(React.createElement(T,null),r),c&&(0,e.render)(React.createElement(G,null),c)})})(); -
mayo-events-manager/trunk/assets/js/dist/public.bundle.js
r3432200 r3436689 1 1 /*! For license information please see public.bundle.js.LICENSE.txt */ 2 (()=>{"use strict";const e=wp.element,t=React;function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function a(){var e,t,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",c=n.toStringTag||"@@toStringTag";function i(n,a,o,c){var i=a&&a.prototype instanceof s?a:s,u=Object.create(i.prototype);return r(u,"_invoke",function(n,a,r){var o,c,i,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,c=0,i=e,d.n=n,l}};function f(n,a){for(c=n,i=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(i=o[(c=o[4])?5:(c=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(c=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,c=0))}if(r||n>1)return l;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),c=u,i=v;(t=c<2?e:i)||!m;){o||(c?c<3?(c>1&&(d.n=-1),f(c,i)):d.n=i:d.v=i);try{if(s=2,o){if(c||(r="next"),t=o[r]){if(!(t=t.call(o,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,c<2&&(c=0)}else 1===c&&(t=o.return)&&t.call(o),c<2&&(i=TypeError("The iterator does not provide a '"+r+"' method"),c=1);o=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==l)break}catch(t){o=e,c=1,i=t}finally{s=1}}return{value:t,done:m}}}(n,o,c),!0),u}var l={};function s(){}function u(){}function m(){}t=Object.getPrototypeOf;var d=[][o]?t(t([][o]())):(r(t={},o,function(){return this}),t),f=m.prototype=s.prototype=Object.create(d);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,r(e,c,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=m,r(f,"constructor",m),r(m,"constructor",u),u.displayName="GeneratorFunction",r(m,c,"GeneratorFunction"),r(f),r(f,c,"Generator"),r(f,o,function(){return this}),r(f,"toString",function(){return"[object Generator]"}),(a=function(){return{w:i,m:v}})()}function r(e,t,n,a){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}r=function(e,t,n,a){function c(t,n){r(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(c("next",0),c("throw",1),c("return",2))},r(e,t,n,a)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,a){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=n(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],f=function(e){return e.split("").map(function(e){var t=e.codePointAt(0);return t>127?"u".concat(t):e}).join("")},v=function(e,t){if(!e)return"";if("24hour"===t)return e;var n=s(e.split(":"),2),a=n[0],r=n[1],o=parseInt(a),c=o>=12?"PM":"AM";return"".concat(o%12||12,":").concat(r," ").concat(c)},y=function(e){try{return(new Date).toLocaleTimeString("en-US",{timeZone:e,timeZoneName:"short"}).split(" ")[2]}catch(t){return e.split("/").pop().replace("_"," ")}},p=function(e,t){var n=e.meta,a=n.event_start_date,r=n.event_end_date,o=n.event_start_time,c=n.event_end_time,i=n.timezone;if(!a)return"";if(!o)return"";var l="";if(r&&a!==r){var s=new Date(a+"T00:00:00"),u=new Date(r+"T00:00:00"),m="".concat(d[s.getMonth()]," ").concat(s.getDate()),f="".concat(d[u.getMonth()]," ").concat(u.getDate());l="".concat(m,", ").concat(v(o,t)," - ").concat(f,", ").concat(v(c||o,t))}else l=v(o,t),c&&(l+=" - ".concat(v(c,t)));return i&&(l+=" (".concat(y(i),")")),l},g=function(e){if(!e||"none"===e.type)return"";var t=e.type,n=e.interval,a=e.weekdays,r=void 0===a?[]:a,o=e.endDate,c=e.monthlyType,i=e.monthlyWeekday,l=e.monthlyDate,u="This event repeats ";switch(t){case"daily":u+=n>1?"every ".concat(n," days"):"daily";break;case"weekly":if(u+=n>1?"every ".concat(n," weeks"):"weekly",r&&r.length){var d=r.map(function(e){return m[parseInt(e)]});u+=" on ".concat(d.join(", "))}break;case"monthly":if(u+=n>1?"every ".concat(n," months"):"monthly","date"===c&&l)u+=" on day ".concat(l);else if("weekday"===c&&i){var f=s(i.split(",").map(Number),2),v=f[0],y=f[1];u+=" on the ".concat(v>0?["first","second","third","fourth","fifth"][v-1]:"last"," ").concat(m[y])}break;default:return""}return o&&(u+=" until ".concat(o)),u},b=function(){var e,t=(e=a().m(function e(t){var n,r,o,i,l,s,u,m,d,f=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:return o=f.length>1&&void 0!==f[1]?f[1]:{},(i=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.root)||(null===(r=window.wpApiSettings)||void 0===r?void 0:r.root)||"/wp-json/").endsWith("/")||(i+="/"),l="".concat(i,"event-manager/v1").concat(t),s="",window.mayoApiSettings&&window.mayoApiSettings.nonce?s=window.mayoApiSettings.nonce:window.wpApiSettings&&window.wpApiSettings.nonce&&(s=window.wpApiSettings.nonce),u=c(c({},{credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":s}}),o),e.p=1,e.n=2,fetch(l,u);case 2:if((m=e.v).ok){e.n=3;break}throw new Error("API error: ".concat(m.status," ").concat(m.statusText));case 3:return e.n=4,m.json();case 4:return e.a(2,e.v);case 5:throw e.p=5,d=e.v,console.error("API fetch error:",d),d;case 6:return e.a(2)}},e,null,[[1,5]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){l(o,a,r,c,i,"next",e)}function i(e){l(o,a,r,c,i,"throw",e)}c(void 0)})});return function(e){return t.apply(this,arguments)}}();function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?E(Object(n),!0).forEach(function(t){R(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function R(e,t,n){return(t=function(e){var t=function(e){if("object"!=h(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=h(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==h(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return S(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(S(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,S(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,S(m,"constructor",s),S(s,"constructor",l),l.displayName="GeneratorFunction",S(s,r,"GeneratorFunction"),S(m),S(m,r,"Generator"),S(m,a,function(){return this}),S(m,"toString",function(){return"[object Generator]"}),(w=function(){return{w:o,m:d}})()}function S(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}S=function(e,t,n,a){function o(t,n){S(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},S(e,t,n,a)}function N(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var T=(0,t.createContext)(),A=function(){return(0,t.useContext)(T)},j=function(e){var n=e.children,a=k((0,t.useState)([]),2),r=a[0],o=a[1],c=k((0,t.useState)({}),2),i=c[0],l=c[1],s=k((0,t.useState)(!0),2),u=s[0],m=s[1];return(0,t.useEffect)(function(){var e=function(){var e,t=(e=w().m(function e(){var t,n,a,r,c,i;return w().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,m(!0),e.n=1,b("/settings");case 1:if(t=e.v,n=t.bmlt_root_server){e.n=2;break}throw new Error("BMLT root server URL not set");case 2:return e.n=3,fetch("".concat(n,"/client_interface/json/?switcher=GetServiceBodies"));case 3:return a=e.v,e.n=4,a.json();case 4:r=e.v,c=r.sort(function(e,t){return e.name.localeCompare(t.name)}),o(c),e.n=6;break;case 5:e.p=5,i=e.v,console.error("Error fetching service bodies:",i),setError("Failed to load service bodies");case 6:return e.p=6,m(!1),e.f(6);case 7:return e.a(2)}},e,null,[[0,5,6,7]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){N(o,a,r,c,i,"next",e)}function i(e){N(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),React.createElement(T.Provider,{value:{serviceBodies:r,getServiceBodyName:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if("local"===t){var n=r.find(function(t){return t.id===e});return(null==n?void 0:n.name)||"Out of Area"}if(i[t]){var a=i[t].find(function(t){return t.id===e});return(null==a?void 0:a.name)||"Out of Area"}return"Out of Area"},updateExternalServiceBodies:function(e,t){t&&Array.isArray(t)&&0!==t.length&&l(function(n){return _(_({},n),{},R({},e,t))})}}},u?React.createElement("div",null,"Loading..."):n)},x=[{label:"Eastern Time (US/Canada)",value:"America/New_York",region:"North America"},{label:"Central Time (US/Canada)",value:"America/Chicago",region:"North America"},{label:"Mountain Time (US/Canada)",value:"America/Denver",region:"North America"},{label:"Pacific Time (US/Canada)",value:"America/Los_Angeles",region:"North America"},{label:"Alaska Time (US)",value:"America/Anchorage",region:"North America"},{label:"Hawaii Time (US)",value:"Pacific/Honolulu",region:"North America"},{label:"Atlantic Time (Canada)",value:"America/Halifax",region:"North America"},{label:"Newfoundland Time (Canada)",value:"America/St_Johns",region:"North America"},{label:"Mexico City Time",value:"America/Mexico_City",region:"North America"},{label:"London (GMT/BST)",value:"Europe/London",region:"Europe"},{label:"Paris (CET/CEST)",value:"Europe/Paris",region:"Europe"},{label:"Berlin (CET/CEST)",value:"Europe/Berlin",region:"Europe"},{label:"Rome (CET/CEST)",value:"Europe/Rome",region:"Europe"},{label:"Madrid (CET/CEST)",value:"Europe/Madrid",region:"Europe"},{label:"Amsterdam (CET/CEST)",value:"Europe/Amsterdam",region:"Europe"},{label:"Brussels (CET/CEST)",value:"Europe/Brussels",region:"Europe"},{label:"Zurich (CET/CEST)",value:"Europe/Zurich",region:"Europe"},{label:"Vienna (CET/CEST)",value:"Europe/Vienna",region:"Europe"},{label:"Stockholm (CET/CEST)",value:"Europe/Stockholm",region:"Europe"},{label:"Oslo (CET/CEST)",value:"Europe/Oslo",region:"Europe"},{label:"Copenhagen (CET/CEST)",value:"Europe/Copenhagen",region:"Europe"},{label:"Helsinki (EET/EEST)",value:"Europe/Helsinki",region:"Europe"},{label:"Athens (EET/EEST)",value:"Europe/Athens",region:"Europe"},{label:"Istanbul (TRT)",value:"Europe/Istanbul",region:"Europe"},{label:"Moscow (MSK)",value:"Europe/Moscow",region:"Europe"},{label:"Dublin (GMT/IST)",value:"Europe/Dublin",region:"Europe"},{label:"Lisbon (WET/WEST)",value:"Europe/Lisbon",region:"Europe"},{label:"Tokyo (JST)",value:"Asia/Tokyo",region:"Asia"},{label:"Shanghai (CST)",value:"Asia/Shanghai",region:"Asia"},{label:"Hong Kong (HKT)",value:"Asia/Hong_Kong",region:"Asia"},{label:"Singapore (SGT)",value:"Asia/Singapore",region:"Asia"},{label:"Seoul (KST)",value:"Asia/Seoul",region:"Asia"},{label:"Bangkok (ICT)",value:"Asia/Bangkok",region:"Asia"},{label:"Manila (PHT)",value:"Asia/Manila",region:"Asia"},{label:"Jakarta (WIB)",value:"Asia/Jakarta",region:"Asia"},{label:"Mumbai (IST)",value:"Asia/Kolkata",region:"Asia"},{label:"Dubai (GST)",value:"Asia/Dubai",region:"Asia"},{label:"Riyadh (AST)",value:"Asia/Riyadh",region:"Asia"},{label:"Tel Aviv (IST)",value:"Asia/Jerusalem",region:"Asia"},{label:"Dhaka (BST)",value:"Asia/Dhaka",region:"Asia"},{label:"Karachi (PKT)",value:"Asia/Karachi",region:"Asia"},{label:"Tashkent (UZT)",value:"Asia/Tashkent",region:"Asia"},{label:"Sydney (AEST/AEDT)",value:"Australia/Sydney",region:"Australia & Oceania"},{label:"Melbourne (AEST/AEDT)",value:"Australia/Melbourne",region:"Australia & Oceania"},{label:"Brisbane (AEST)",value:"Australia/Brisbane",region:"Australia & Oceania"},{label:"Perth (AWST)",value:"Australia/Perth",region:"Australia & Oceania"},{label:"Adelaide (ACST/ACDT)",value:"Australia/Adelaide",region:"Australia & Oceania"},{label:"Darwin (ACST)",value:"Australia/Darwin",region:"Australia & Oceania"},{label:"Hobart (AEST/AEDT)",value:"Australia/Hobart",region:"Australia & Oceania"},{label:"Auckland (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Wellington (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Fiji (FJT)",value:"Pacific/Fiji",region:"Australia & Oceania"},{label:"Cairo (EET)",value:"Africa/Cairo",region:"Africa"},{label:"Cape Town (SAST)",value:"Africa/Johannesburg",region:"Africa"},{label:"Lagos (WAT)",value:"Africa/Lagos",region:"Africa"},{label:"Nairobi (EAT)",value:"Africa/Nairobi",region:"Africa"},{label:"Casablanca (WET)",value:"Africa/Casablanca",region:"Africa"},{label:"Tunis (CET)",value:"Africa/Tunis",region:"Africa"},{label:"São Paulo (BRT)",value:"America/Sao_Paulo",region:"South America"},{label:"Buenos Aires (ART)",value:"America/Argentina/Buenos_Aires",region:"South America"},{label:"Santiago (CLT)",value:"America/Santiago",region:"South America"},{label:"Lima (PET)",value:"America/Lima",region:"South America"},{label:"Bogotá (COT)",value:"America/Bogota",region:"South America"},{label:"Caracas (VET)",value:"America/Caracas",region:"South America"}],C=function(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;return x.find(function(t){return t.value===e})?e:"America/New_York"}catch(e){return"America/New_York"}};function P(e){return P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P(e)}function D(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return F(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(F(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,F(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,F(m,"constructor",s),F(s,"constructor",l),l.displayName="GeneratorFunction",F(s,r,"GeneratorFunction"),F(m),F(m,r,"Generator"),F(m,a,function(){return this}),F(m,"toString",function(){return"[object Generator]"}),(D=function(){return{w:o,m:d}})()}function F(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}F=function(e,t,n,a){function o(t,n){F(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},F(e,t,n,a)}function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach(function(t){L(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function L(e,t,n){return(t=function(e){var t=function(e){if("object"!=P(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=P(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==P(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function B(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){G(o,a,r,c,i,"next",e)}function i(e){G(o,a,r,c,i,"throw",e)}c(void 0)})}}function U(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||z(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e){return function(e){if(Array.isArray(e))return q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||z(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e,t){if(e){if("string"==typeof e)return q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?q(e,t):void 0}}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const H=function(){var t,n,a,r,o,c,i=document.getElementById("mayo-event-form"),l=null==i||null===(t=i.dataset)||void 0===t?void 0:t.settings,s=window[l]||{},u=(null==i||null===(n=i.dataset)||void 0===n?void 0:n.categories)||"",m=(0,e.useMemo)(function(){return u?u.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[u]),d=(0,e.useMemo)(function(){return m.filter(function(e){return!e.startsWith("-")})},[m]),f=(0,e.useMemo)(function(){return m.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[m]),v=(null==i||null===(a=i.dataset)||void 0===a?void 0:a.tags)||"",y=(0,e.useMemo)(function(){return v?v.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[v]),p=(0,e.useMemo)(function(){return y.filter(function(e){return!e.startsWith("-")})},[y]),g=(0,e.useMemo)(function(){return y.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[y]),h=function(e){var t=document.createElement("textarea");return t.innerHTML=e,t.value},E=s.additionalRequiredFields?s.additionalRequiredFields.split(",").map(function(e){return e.trim()}):[],_=[].concat(["event_name","event_type","service_body","email","event_start_date","event_start_time","event_end_time","event_end_date","timezone"],W(E)),R=U((0,e.useState)({event_name:"",event_type:"",event_start_date:"",event_end_date:"",event_start_time:"",event_end_time:"",timezone:C(),description:"",flyer:null,location_name:"",location_address:"",location_details:"",categories:[],tags:[],service_body:"",email:"",contact_name:"",recurring_pattern:{type:"none",interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"",monthlyWeekday:""}}),2),w=R[0],S=R[1],N=U((0,e.useState)(!1),2),k=N[0],O=N[1],T=U((0,e.useState)(null),2),j=T[0],P=T[1],F=U((0,e.useState)([]),2),I=F[0],G=F[1],z=U((0,e.useState)([]),2),q=z[0],H=z[1],J=U((0,e.useState)(null),2),Y=J[0],V=(J[1],A().serviceBodies),$=U((0,e.useState)(null),2),Z=$[0],K=$[1],X=U((0,e.useState)(!1),2),Q=X[0],ee=X[1],te=U((0,e.useState)({default_service_bodies:""}),2),ne=te[0],ae=te[1];(0,e.useEffect)(function(){var e=function(){var e=B(D().m(function e(){var t,n,a,r,o;return D().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,b("/settings");case 1:n=e.v,a={default_service_bodies:n.default_service_bodies||""},void 0!==s.defaultServiceBodies&&""!==s.defaultServiceBodies&&(a.default_service_bodies=s.defaultServiceBodies),ae(a),(r=null===(t=a.default_service_bodies)||void 0===t?void 0:t.split(",").map(function(e){return e.trim()}).filter(function(e){return e}))&&1===r.length&&S(function(e){return M(M({},e),{},{service_body:r[0]})}),e.n=3;break;case 2:e.p=2,o=e.v,console.error("Error fetching service body settings:",o);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();e()},[s]),(0,e.useEffect)(function(){var e=function(){var e=B(D().m(function e(){var t,n,a,r,o,c,i,l,s;return D().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([fetch("/wp-json/wp/v2/categories?hide_empty=false&per_page=100"),fetch("/wp-json/wp/v2/tags?hide_empty=false&per_page=100")]);case 1:if(t=e.v,n=U(t,2),a=n[0],r=n[1],a.ok&&r.ok){e.n=2;break}throw new Error("Failed to fetch taxonomies");case 2:return e.n=3,a.json();case 3:return o=e.v,e.n=4,r.json();case 4:c=e.v,i=o.filter(function(e){var t=(e.slug||"").toLowerCase();return d.length>0?d.includes(t):!(f.length>0&&f.includes(t))}),l=c.filter(function(e){var t=(e.slug||"").toLowerCase();return p.length>0?p.includes(t):!(g.length>0&&g.includes(t))}),G(Array.isArray(i)?i:[]),H(Array.isArray(l)?l:[]),e.n=6;break;case 5:e.p=5,s=e.v,console.error("Error fetching taxonomies:",s),G([]),H([]);case 6:return e.a(2)}},e,null,[[0,5]])}));return function(){return e.apply(this,arguments)}}();e()},[d,f,p,g]);var re,oe,ce=function(){var e=B(D().m(function e(t){var n,a,r,o,c,i,l,s,u,m,d,f,v,y;return D().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),O(!0),P(null),e.p=1,!w.flyer){e.n=2;break}if(o=["image/jpeg","image/png","image/gif"],c=w.flyer.name.split(".").pop().toLowerCase(),i=["jpg","jpeg","png","gif"],o.includes(w.flyer.type)&&i.includes(c)){e.n=2;break}throw new Error("You did not attach a valid image file, so one will not be submitted. Please choose a valid image file (JPG, PNG, or GIF)");case 2:if(!((l=_.filter(function(e){return"flyer"===e?!w.flyer:!w[e]})).length>0)){e.n=3;break}throw new Error("Please fill in all required fields: ".concat(l.join(", ")));case 3:return s=new FormData,Object.keys(w).forEach(function(e){"flyer"===e&&w[e]instanceof File?s.append("flyer",w[e]):"categories"===e||"tags"===e?s.append(e,w[e].join(",")):"recurring_pattern"===e?s.append(e,JSON.stringify(w[e])):null!=w[e]&&""!==w[e]&&s.append(e,w[e])}),u=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.nonce)||(null===(a=document.querySelector("#_wpnonce"))||void 0===a?void 0:a.value)||(null===(r=window.wpApiSettings)||void 0===r?void 0:r.nonce),e.n=4,b("/submit-event",{method:"POST",body:s,credentials:"same-origin",headers:{"X-WP-Nonce":u}});case 4:if(!(m=e.v).id&&!m.success){e.n=5;break}P({type:"success",text:"Event submitted successfully!"}),f=null===(d=ne.default_service_bodies)||void 0===d?void 0:d.split(",").map(function(e){return e.trim()}).filter(function(e){return e}),v=f&&1===f.length?f[0]:"",console.log("Form reset - serviceBodySettings:",ne),console.log("Form reset - defaultIds:",f),console.log("Form reset - preservedServiceBody:",v),S({event_name:"",event_type:"",event_start_date:"",event_end_date:"",event_start_time:"",event_end_time:"",timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,description:"",flyer:null,location_name:"",location_address:"",location_details:"",categories:[],tags:[],service_body:v,email:"",contact_name:"",recurring_pattern:{type:"none",interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"",monthlyWeekday:""}}),K(null),e.n=6;break;case 5:throw new Error(m.message||"Failed to submit event");case 6:e.n=8;break;case 7:e.p=7,y=e.v,P({type:"error",text:y.message||"Error submitting form"});case 8:return e.p=8,O(!1),e.f(8);case 9:return e.a(2)}},e,null,[[1,7,8,9]])}));return function(t){return e.apply(this,arguments)}}(),ie=function(e){var t=e.target,n=t.name,a=t.value,r=t.files;if(r&&r[0]){var o=r[0],c=o.name.split(".").pop().toLowerCase();if(!["image/jpeg","image/png","image/gif"].includes(o.type)||!["jpg","jpeg","png","gif"].includes(c))return P({type:"error",text:"The selected file is not a valid image, so one will not be submitted. Please use a valid image file (JPG, PNG, or GIF)"}),e.target.value="",S(function(e){return M(M({},e),{},{flyer:null})}),void K(null);var i=new FileReader;i.onload=function(t){var n=new Image;n.onload=function(){K("image"),S(function(e){return M(M({},e),{},{flyer:o})}),P(null)},n.onerror=function(){P({type:"error",text:"The selected file is not a valid image, so one will not be submitted. Please choose a valid image file (JPG, PNG, or GIF)"}),e.target.value="",S(function(e){return M(M({},e),{},{flyer:null})}),K(null)},n.src=t.target.result},i.onerror=function(){P({type:"error",text:"Error reading the file"}),e.target.value="",S(function(e){return M(M({},e),{},{flyer:null})}),K(null)},i.readAsDataURL(o)}else S(function(e){return M(M({},e),{},L({},n,a))})},le=function(e){return _.includes(e)},se=function(){return w.event_start_date?new Date(w.event_start_date).getDate().toString():""},ue=function(){if(w.event_start_date){var e=new Date(w.event_start_date),t=Math.ceil(e.getDate()/7);return"".concat(t,",").concat(e.getDay())}return""},me=function(e){S(function(t){return M(M({},t),{},{recurring_pattern:M(M({},t.recurring_pattern),e)})})},de=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}];return Y?React.createElement("div",{className:"mayo-error"},Y):React.createElement("div",{className:"mayo-event-form"},React.createElement("form",{onSubmit:ce},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"event_name"},"Event Name ",le("event_name")&&"*"),React.createElement("input",{type:"text",id:"event_name",name:"event_name",value:w.event_name,onChange:ie,required:le("event_name")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"event_type"},"Event Type ",le("event_type")&&"*"),React.createElement("select",{id:"event_type",name:"event_type",value:w.event_type,onChange:ie,required:le("event_type")},React.createElement("option",{value:""},"Select Event Type"),React.createElement("option",{value:"Service"},"Service"),React.createElement("option",{value:"Activity"},"Activity"))),(!ne.default_service_bodies||(null===(oe=ne.default_service_bodies)||void 0===oe?void 0:oe.split(",").map(function(e){return e.trim()}).filter(function(e){return e})).length>1)&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"service_body"},"Service Body *"),React.createElement("select",{id:"service_body",name:"service_body",value:w.service_body,onChange:function(e){S(function(t){return M(M({},t),{},{service_body:e.target.value})})},required:!0},React.createElement("option",{value:""},"Select a service body"),(!ne.default_service_bodies||ne.default_service_bodies.includes("0"))&&React.createElement("option",{value:"0"},"Unaffiliated (0)"),function(){if(!ne.default_service_bodies)return V;var e=ne.default_service_bodies.split(",").map(function(e){return e.trim()}).filter(function(e){return e});return V.filter(function(t){return e.includes(t.id.toString())})}().map(function(e){return React.createElement("option",{key:e.id,value:e.id},e.name," (",e.id,")")}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"contact_name"},"Point of Contact Name (Private) *"),React.createElement("input",{type:"text",id:"contact_name",name:"contact_name",value:w.contact_name,onChange:ie,required:!0,placeholder:"Your name (will not be displayed publicly)"})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"email"},"Point of Contact Email (Private) *"),React.createElement("input",{type:"email",id:"email",name:"email",value:w.email,onChange:ie,required:!0,placeholder:"Your email address (will not be displayed publicly)"})),React.createElement("div",{className:"mayo-datetime-group"},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Start Date/Time *"),React.createElement("div",{className:"mayo-datetime-inputs"},React.createElement("input",{type:"date",id:"event_start_date",name:"event_start_date",value:w.event_start_date,onChange:ie,required:!0}),React.createElement("input",{type:"time",id:"event_start_time",name:"event_start_time",value:w.event_start_time,onChange:ie,required:!0}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"End Date/Time *"),React.createElement("div",{className:"mayo-datetime-inputs"},React.createElement("input",{type:"date",id:"event_end_date",name:"event_end_date",value:w.event_end_date,onChange:ie}),React.createElement("input",{type:"time",id:"event_end_time",name:"event_end_time",value:w.event_end_time,onChange:ie,required:!0})))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"timezone"},"Timezone ",le("timezone")&&"*"),React.createElement("select",{id:"timezone",name:"timezone",value:w.timezone,onChange:ie,required:le("timezone")},Object.entries((re={},x.forEach(function(e){re[e.region]||(re[e.region]=[]),re[e.region].push(e)}),re)).map(function(e){var t=U(e,2),n=t[0],a=t[1];return React.createElement("optgroup",{key:n,label:n},a.map(function(e){return React.createElement("option",{key:e.value,value:e.value},e.label)}))}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Recurring Pattern"),React.createElement("div",{className:"mayo-recurring-pattern"},React.createElement("select",{value:w.recurring_pattern.type,onChange:function(e){var t=e.target.value;me({type:t,interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"monthly"===t?se():"",monthlyWeekday:"monthly"===t?ue():""}),ee("none"!==t)}},React.createElement("option",{value:"none"},"No Recurrence"),React.createElement("option",{value:"daily"},"Daily"),React.createElement("option",{value:"weekly"},"Weekly"),React.createElement("option",{value:"monthly"},"Monthly")),Q&&React.createElement("div",{className:"mayo-recurring-options"},React.createElement("div",{className:"mayo-recurring-interval"},React.createElement("label",null,"Repeat every"),React.createElement("input",{type:"number",min:"1",value:w.recurring_pattern.interval,onChange:function(e){return me({interval:parseInt(e.target.value)})}}),React.createElement("span",null,"daily"===w.recurring_pattern.type?"days":"weekly"===w.recurring_pattern.type?"weeks":"months")),"weekly"===w.recurring_pattern.type&&React.createElement("div",{className:"mayo-weekday-controls"},React.createElement("label",null,"On these days"),de.map(function(e){return React.createElement("label",{key:e.value,className:"mayo-weekday-checkbox"},React.createElement("input",{type:"checkbox",checked:w.recurring_pattern.weekdays.includes(e.value),onChange:function(t){var n=t.target.checked?[].concat(W(w.recurring_pattern.weekdays),[e.value]):w.recurring_pattern.weekdays.filter(function(t){return t!==e.value});me({weekdays:n})}}),e.label)})),"monthly"===w.recurring_pattern.type&&React.createElement("div",{className:"mayo-monthly-pattern"},React.createElement("div",{className:"mayo-monthly-type"},React.createElement("label",null,"Monthly Pattern"),React.createElement("div",{className:"mayo-radio-group"},React.createElement("label",null,React.createElement("input",{type:"radio",name:"monthlyType",value:"date",checked:"date"===w.recurring_pattern.monthlyType,onChange:function(){return me({monthlyType:"date",monthlyDate:se(),monthlyWeekday:""})}}),"On a specific date"),React.createElement("label",null,React.createElement("input",{type:"radio",name:"monthlyType",value:"weekday",checked:"weekday"===w.recurring_pattern.monthlyType,onChange:function(){return me({monthlyType:"weekday",monthlyDate:"",monthlyWeekday:ue()})}}),"On a specific day"))),"date"===w.recurring_pattern.monthlyType&&React.createElement("div",{className:"mayo-monthly-date"},React.createElement("label",null,"Day of month"),React.createElement("input",{type:"number",min:"1",max:"31",value:w.recurring_pattern.monthlyDate||se(),onChange:function(e){return me({monthlyDate:e.target.value})}})),"weekday"===w.recurring_pattern.monthlyType&&React.createElement("div",{className:"mayo-monthly-weekday"},React.createElement("div",{className:"mayo-week-select"},React.createElement("label",null,"Week"),React.createElement("select",{value:(null===(r=w.recurring_pattern.monthlyWeekday)||void 0===r?void 0:r.split(",")[0])||"1",onChange:function(e){var t,n=(null===(t=w.recurring_pattern.monthlyWeekday)||void 0===t?void 0:t.split(",")[1])||"0";me({monthlyWeekday:"".concat(e.target.value,",").concat(n)})}},[{value:"1",label:"First"},{value:"2",label:"Second"},{value:"3",label:"Third"},{value:"4",label:"Fourth"},{value:"5",label:"Fifth"},{value:"-1",label:"Last"}].map(function(e){return React.createElement("option",{key:e.value,value:e.value},e.label)}))),React.createElement("div",{className:"mayo-day-select"},React.createElement("label",null,"Day"),React.createElement("select",{value:(null===(o=w.recurring_pattern.monthlyWeekday)||void 0===o?void 0:o.split(",")[1])||"0",onChange:function(e){var t,n=(null===(t=w.recurring_pattern.monthlyWeekday)||void 0===t?void 0:t.split(",")[0])||"1";me({monthlyWeekday:"".concat(n,",").concat(e.target.value)})}},de.map(function(e){return React.createElement("option",{key:e.value,value:e.value},e.label)}))))),React.createElement("div",{className:"mayo-recurring-end-date"},React.createElement("label",null,"End Date (optional)"),React.createElement("input",{type:"date",value:w.recurring_pattern.endDate,onChange:function(e){return me({endDate:e.target.value})}}))))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"description"},"Description ",le("description")&&"*"),React.createElement("textarea",{id:"description",name:"description",value:w.description,onChange:ie,required:le("description")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Event Flyer ",le("flyer")&&"*"),React.createElement("div",{className:"mayo-upload-section"},!Z&&React.createElement(React.Fragment,null,React.createElement("input",{type:"file",id:"flyer-upload",name:"flyer",accept:"image/*",onChange:ie,required:le("flyer"),className:"mayo-file-input"}),React.createElement("label",{htmlFor:"flyer-upload",className:"mayo-upload-button"},"Upload Flyer"),React.createElement("p",{className:"mayo-upload-info"},"Supported file types: Images (.jpg, .jpeg, .png, .gif)",le("flyer")&&" (Required)"),j&&"error"===j.type&&j.text.includes("image")&&React.createElement("p",{className:"mayo-upload-error"},j.text)),Z&&React.createElement("div",{className:"mayo-upload-preview"},React.createElement("p",null,"Selected ","Image"===Z,": "," ",(null===(c=w.flyer)||void 0===c?void 0:c.name)||"No file selected"),React.createElement("button",{type:"button",onClick:function(){S(function(e){return M(M({},e),{},{flyer:null})}),K(null)},className:"mayo-clear-upload"},"Clear Upload")))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"location_name"},"Location Name"),React.createElement("input",{type:"text",id:"location_name",name:"location_name",value:w.location_name,onChange:ie})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"location_address"},"Address"),React.createElement("input",{type:"text",id:"location_address",name:"location_address",value:w.location_address,onChange:ie})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"location_details"},"Location Details"),React.createElement("textarea",{id:"location_details",name:"location_details",value:w.location_details,onChange:ie,placeholder:"Additional details about the location (e.g., parking, entrance info)"})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Categories"),React.createElement("div",{className:"mayo-taxonomy-list"},Array.isArray(I)&&I.map(function(e){return React.createElement("label",{key:null==e?void 0:e.id,className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:w.categories.includes(null==e?void 0:e.id),onChange:function(t){var n=t.target.checked?[].concat(W(w.categories),[null==e?void 0:e.id]):w.categories.filter(function(t){return t!==(null==e?void 0:e.id)});S(M(M({},w),{},{categories:n}))}}),null!=e&&e.name?h(e.name):"Unnamed Category")}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Tags"),React.createElement("div",{className:"mayo-taxonomy-list"},Array.isArray(q)&&q.map(function(e){return React.createElement("label",{key:(null==e?void 0:e.id)||"default",className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:w.tags.includes(null==e?void 0:e.name),onChange:function(t){var n=t.target.checked?[].concat(W(w.tags),[null==e?void 0:e.name]):w.tags.filter(function(t){return t!==(null==e?void 0:e.name)});S(M(M({},w),{},{tags:n}))}}),null!=e&&e.name?h(e.name):"Unnamed Tag")}))),React.createElement("button",{type:"submit",disabled:k,className:"mayo-submit-button"},k?"Submitting...":"Submit Event"),j&&React.createElement("div",{className:"mayo-message mayo-message-".concat(j.type)},"string"==typeof j.text?j.text:"An error occurred while submitting the form. Please try again.")))},J=function(e){var t=e.address,n=e.className,a=void 0===n?"mayo-location-address":n;if(!t)return null;var r=t.match(/(https?:\/\/[^\s]+)/g);return r&&r.length>0?React.createElement("a",{href:r[0],target:"_blank",rel:"noopener noreferrer",className:a,onClick:function(e){return e.stopPropagation()}},t):React.createElement("a",{href:"https://maps.google.com?q=".concat(encodeURIComponent(t)),target:"_blank",rel:"noopener noreferrer",className:a,onClick:function(e){return e.stopPropagation()}},t)};function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const V=function(t){var n,a,r,o,c=t.event,i=t.timeFormat,l=t.forceExpanded,s=(r=(0,e.useState)(!1),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(r,o)||function(e,t){if(e){if("string"==typeof e)return Y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],b=s[1];(0,e.useEffect)(function(){b(l)},[l]);var h=c.meta.event_start_date&&""!==c.meta.event_start_date&&!isNaN(new Date(c.meta.event_start_date+"T00:00:00").getTime()),E=h?new Date(c.meta.event_start_date+"T00:00:00"):null,_=c.meta.event_end_date&&c.meta.event_start_date!==c.meta.event_end_date,R=_?new Date(c.meta.event_end_date+"T00:00:00"):null,w=A(),S=w.getServiceBodyName,N=w.updateExternalServiceBodies;(0,e.useEffect)(function(){c.external_source&&c.external_source.service_bodies&&N(c.external_source.id,c.external_source.service_bodies)},[null===(n=c.external_source)||void 0===n?void 0:n.id,null===(a=c.external_source)||void 0===a?void 0:a.service_bodies,N]);var k=c.categories.map(function(e){return"mayo-event-category-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-"))}).join(" "),O=c.tags.map(function(e){return"mayo-event-tag-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-"))}).join(" "),T=c.meta.event_type?"mayo-event-type-".concat(f(c.meta.event_type).toLowerCase().replace(/\s+/g,"-")):"",j=c.external_source?c.external_source.id:"local",x=["mayo-event-card",k,O,T,"mayo-event-service-body-".concat(f(S(c.meta.service_body,j)).toLowerCase().replace(/\s+/g,"-"))].filter(Boolean).join(" ");return React.createElement("div",{className:x},React.createElement("div",{className:"mayo-event-header",onClick:function(){return b(!u)}},React.createElement("div",{className:"mayo-event-date-badge"},h?React.createElement(React.Fragment,null,_?React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[E.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},E.getDate()),React.createElement("span",{className:"mayo-event-month"},d[E.getMonth()],React.createElement("span",{className:"mayo-event-year"},E.getFullYear())),React.createElement("span",{className:"mayo-event-day-name"},m[R.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},R.getDate()),React.createElement("span",{className:"mayo-event-month"},d[R.getMonth()],React.createElement("span",{className:"mayo-event-year"},R.getFullYear()))):React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[E.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},E.getDate()),React.createElement("span",{className:"mayo-event-month"},d[E.getMonth()],React.createElement("span",{className:"mayo-event-year"},E.getFullYear())))):React.createElement("span",{className:"mayo-event-date-error"},"No Date")),React.createElement("div",{className:"mayo-event-summary"},React.createElement("h3",{dangerouslySetInnerHTML:{__html:c.title.rendered}}),!h&&React.createElement("div",{className:"mayo-event-date-warning"},"This event has no date set"),React.createElement("div",{className:"mayo-event-brief"},React.createElement("span",{className:"mayo-event-type"},c.meta.event_type),p(c,i)&&React.createElement("span",{className:"mayo-event-time"},p(c,i)),c.external_source&&React.createElement("span",{className:"mayo-event-source"},"Source: ",c.external_source.url),c.meta.service_body&&React.createElement("span",{className:"mayo-event-service-body mayo-event-service-body-small"},S(c.meta.service_body,j)),(c.categories.length>0||c.tags.length>0)&&React.createElement("div",{className:"mayo-event-brief-taxonomies"},c.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category mayo-event-category-small"},e.name)}),c.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag mayo-event-tag-small"},e.name)})))),React.createElement("span",{className:"mayo-caret dashicons ".concat(u?"dashicons-arrow-up-alt2":"dashicons-arrow-down-alt2")})),u&&React.createElement("div",{className:"mayo-event-details"},React.createElement("div",{className:"mayo-event-content"},React.createElement("div",{className:"mayo-event-metadata"},React.createElement("div",{className:"mayo-event-datetime-details"},React.createElement("h4",null,"Date & Time"),React.createElement("p",null,React.createElement("strong",null,"Start:")," ",c.meta.event_start_date," at ",v(c.meta.event_start_time,i),c.meta.timezone&&" (".concat(y(c.meta.timezone),")")),(c.meta.event_end_date||c.meta.event_end_time)&&React.createElement("p",null,React.createElement("strong",null,"End:")," ",c.meta.event_end_date||c.meta.event_start_date," at ",v(c.meta.event_end_time,i))),c.meta.event_type&&React.createElement("div",{className:"mayo-event-type-details"},React.createElement("h4",null,"Event Type"),React.createElement("p",null,c.meta.event_type))),React.createElement("div",{className:"mayo-event-description"},React.createElement("h4",null,"Description"),React.createElement("div",{dangerouslySetInnerHTML:{__html:c.content.rendered}})),c.featured_image&&React.createElement("div",{className:"mayo-event-attachments"},React.createElement("h4",null,"Event Flyer"),React.createElement("div",{className:"mayo-event-image"},React.createElement("div",{className:"mayo-image-actions"},React.createElement("a",{href:c.featured_image,download:!0,className:"mayo-image-link",onClick:function(e){return e.stopPropagation()}},"Download Flyer")),React.createElement("a",{href:c.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:c.featured_image,alt:c.title.rendered}))))),(c.meta.location_name||c.meta.location_address||c.meta.location_details)&&React.createElement("div",{className:"mayo-event-location"},React.createElement("h4",null,"Location"),c.meta.location_name&&React.createElement("p",{className:"mayo-location-name"},c.meta.location_name),c.meta.location_address&&React.createElement("p",{className:"mayo-location-address"},React.createElement(J,{address:c.meta.location_address})),c.meta.location_details&&React.createElement("p",{className:"mayo-location-details"},c.meta.location_details)),c.meta.service_body&&React.createElement("div",null,React.createElement("h4",null,"Service Body"),React.createElement("p",null,S(c.meta.service_body,j))),React.createElement("div",{className:"mayo-event-taxonomies"},c.categories.length>0&&React.createElement("div",{className:"mayo-archive-event-categories"},c.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category"},e.name)})),c.tags.length>0&&React.createElement("div",{className:"mayo-archive-event-tags"},c.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag"},e.name)}))),c.meta.recurring_pattern&&"none"!==c.meta.recurring_pattern.type&&React.createElement("div",{className:"mayo-event-recurring"},g(c.meta.recurring_pattern)),React.createElement("div",{className:"mayo-event-actions"},React.createElement("a",{href:c.link,className:"mayo-read-more",onClick:function(e){return e.stopPropagation()}},"Read More"))))},$=function(e){var t=e.event,n=e.timeFormat,a=t.meta.event_start_date&&""!==t.meta.event_start_date&&!isNaN(new Date(t.meta.event_start_date+"T00:00:00").getTime()),r=a?new Date(t.meta.event_start_date+"T00:00:00"):null,o=t.meta.event_end_date&&t.meta.event_start_date!==t.meta.event_end_date,c=o?new Date(t.meta.event_end_date+"T00:00:00"):null;return React.createElement("div",{key:"".concat(t.id,"-").concat(t.meta.event_start_date),className:"mayo-widget-event"},React.createElement("div",{className:"mayo-widget-event-date"},a?React.createElement(React.Fragment,null,o?React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[r.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},r.getDate()),React.createElement("span",{className:"mayo-event-month"},d[r.getMonth()]),React.createElement("span",{className:"mayo-event-range-separator"},"-"),React.createElement("span",{className:"mayo-event-day-name"},m[c.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},c.getDate()),React.createElement("span",{className:"mayo-event-month"},d[c.getMonth()])):React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[r.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},r.getDate()),React.createElement("span",{className:"mayo-event-month"},d[r.getMonth()]))):React.createElement("span",{className:"mayo-event-date-error"},"No Date")),React.createElement("h4",{className:"mayo-widget-event-title"},t.title.rendered),!a&&React.createElement("div",{className:"mayo-event-date-warning"},"Event date not set"),p(t,n)&&React.createElement("div",{className:"mayo-widget-event-time"},p(t,n)),React.createElement("a",{href:t.link,className:"mayo-widget-event-link"},t.featured_image&&React.createElement("img",{src:t.featured_image,alt:t.title.rendered,className:"mayo-widget-event-image"})),React.createElement("div",{className:"mayo-widget-event-actions"},React.createElement("a",{href:t.link,className:"mayo-widget-event-link"},"Read More...")))},Z=function(t){var n=t.event,a=t.timeFormat,r=t.onClose,o=A().getServiceBodyName;(0,e.useEffect)(function(){var e=function(e){"Escape"===e.key&&r()};return document.addEventListener("keydown",e),document.body.style.overflow="hidden",function(){document.removeEventListener("keydown",e),document.body.style.overflow=""}},[r]);var c=n.meta.event_start_date&&""!==n.meta.event_start_date&&!isNaN(new Date(n.meta.event_start_date+"T00:00:00").getTime()),i=c?new Date(n.meta.event_start_date+"T00:00:00"):null,l=n.meta.event_end_date&&n.meta.event_start_date!==n.meta.event_end_date,s=l?new Date(n.meta.event_end_date+"T00:00:00"):null,u=n.external_source?n.external_source.id:"local";return React.createElement("div",{className:"mayo-event-modal-backdrop",onClick:function(e){e.target===e.currentTarget&&r()}},React.createElement("div",{className:"mayo-event-modal"},React.createElement("button",{className:"mayo-event-modal-close",onClick:r,title:"Close"},React.createElement("span",{className:"dashicons dashicons-no-alt"})),React.createElement("div",{className:"mayo-event-modal-header"},React.createElement("div",{className:"mayo-event-modal-date"},c?l?React.createElement("span",null,m[i.getDay()],", ",d[i.getMonth()]," ",i.getDate(),", ",i.getFullYear()," – ",m[s.getDay()],", ",d[s.getMonth()]," ",s.getDate(),", ",s.getFullYear()):React.createElement("span",null,m[i.getDay()],", ",d[i.getMonth()]," ",i.getDate(),", ",i.getFullYear()):React.createElement("span",{className:"mayo-event-date-error"},"No Date Set")),React.createElement("h2",{dangerouslySetInnerHTML:{__html:n.title.rendered}}),n.meta.event_type&&React.createElement("span",{className:"mayo-event-modal-type"},n.meta.event_type)),React.createElement("div",{className:"mayo-event-modal-body"},React.createElement("div",{className:"mayo-event-modal-meta"},React.createElement("div",{className:"mayo-event-modal-time"},React.createElement("span",{className:"dashicons dashicons-clock"}),React.createElement("span",null,p(n,a),n.meta.timezone&&" (".concat(y(n.meta.timezone),")"))),(n.meta.location_name||n.meta.location_address)&&React.createElement("div",{className:"mayo-event-modal-location"},React.createElement("span",{className:"dashicons dashicons-location"}),React.createElement("span",null,n.meta.location_name&&React.createElement("strong",null,n.meta.location_name),n.meta.location_name&&n.meta.location_address&&React.createElement("br",null),n.meta.location_address&&React.createElement(J,{address:n.meta.location_address}),n.meta.location_details&&React.createElement(React.Fragment,null,React.createElement("br",null),React.createElement("em",null,n.meta.location_details)))),n.meta.service_body&&React.createElement("div",{className:"mayo-event-modal-service-body"},React.createElement("span",{className:"dashicons dashicons-groups"}),React.createElement("span",null,o(n.meta.service_body,u))),n.external_source&&React.createElement("div",{className:"mayo-event-modal-source"},React.createElement("span",{className:"dashicons dashicons-admin-site"}),React.createElement("span",null,"Source: ",n.external_source.url))),n.content.rendered&&React.createElement("div",{className:"mayo-event-modal-description"},React.createElement("div",{dangerouslySetInnerHTML:{__html:n.content.rendered}})),n.featured_image&&React.createElement("div",{className:"mayo-event-modal-image"},React.createElement("a",{href:n.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:n.featured_image,alt:n.title.rendered})),React.createElement("a",{href:n.featured_image,download:!0,className:"mayo-image-download"},React.createElement("span",{className:"dashicons dashicons-download"}),"Download Flyer")),(n.categories.length>0||n.tags.length>0)&&React.createElement("div",{className:"mayo-event-modal-taxonomies"},n.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category"},e.name)}),n.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag"},e.name)})),n.meta.recurring_pattern&&"none"!==n.meta.recurring_pattern.type&&React.createElement("div",{className:"mayo-event-modal-recurring"},React.createElement("span",{className:"dashicons dashicons-update"}),React.createElement("span",null,g(n.meta.recurring_pattern)))),React.createElement("div",{className:"mayo-event-modal-footer"},React.createElement("a",{href:n.link,className:"mayo-event-modal-link"},"View Full Details",React.createElement("span",{className:"dashicons dashicons-arrow-right-alt2"})))))};function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach(function(t){ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ee(e,t,n){return(t=function(e){var t=function(e){if("object"!=K(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==K(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ne(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ne(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const ae=function(t){for(var n,a=t.events,r=t.timeFormat,o=t.onMonthChange,c=t.loading,i=te((0,e.useState)(new Date),2),l=i[0],s=i[1],u=te((0,e.useState)(null),2),m=u[0],d=u[1],v=te((0,e.useState)(null),2),y=v[0],p=v[1],g=te((0,e.useState)({x:0,y:0}),2),b=g[0],h=g[1],E=A().getServiceBodyName,_=function(e){var t,n=["mayo-calendar-event"];if(null!==(t=e._calendarMeta)&&void 0!==t&&t.isMultiDay&&(n.push("mayo-multi-day-event"),e._calendarMeta.isFirstDay?n.push("mayo-multi-day-start"):e._calendarMeta.isLastDay?n.push("mayo-multi-day-end"):n.push("mayo-multi-day-middle")),e.categories.forEach(function(e){n.push("mayo-event-category-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-")))}),e.tags.forEach(function(e){n.push("mayo-event-tag-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-")))}),e.meta.event_type&&n.push("mayo-event-type-".concat(f(e.meta.event_type).toLowerCase().replace(/\s+/g,"-"))),e.meta.service_body){var a=e.external_source?e.external_source.id:"local",r=E(e.meta.service_body,a);n.push("mayo-event-service-body-".concat(f(r).toLowerCase().replace(/\s+/g,"-")))}return n.join(" ")},R=l.getFullYear(),w=l.getMonth(),S=new Date(R,w,1),N=new Date(R,w+1,0).getDate(),k=S.getDay(),O=function(e){return"".concat(e.getFullYear(),"-").concat(String(e.getMonth()+1).padStart(2,"0"),"-").concat(String(e.getDate()).padStart(2,"0"))},T=(0,e.useMemo)(function(){var e={};return a.forEach(function(t){if(t.meta.event_start_date)for(var n=new Date(t.meta.event_start_date+"T00:00:00"),a=t.meta.event_end_date?new Date(t.meta.event_end_date+"T00:00:00"):n,r=new Date(n);r<=a;){var o=O(r);e[o]||(e[o]=[]);var c=r.getTime()===n.getTime(),i=r.getTime()===a.getTime(),l=n.getTime()!==a.getTime();e[o].push(Q(Q({},t),{},{_calendarMeta:{isFirstDay:c,isLastDay:i,isMultiDay:l,displayDate:new Date(r)}})),r.setDate(r.getDate()+1)}}),Object.keys(e).forEach(function(t){e[t].sort(function(e,t){var n=e.meta.event_start_time||"00:00",a=t.meta.event_start_time||"00:00";return n.localeCompare(a)})}),e},[a]),j=function(e){if(!e)return"";var t=te(e.split(":"),2),n=t[0],a=t[1],o=parseInt(n,10);if("24hour"===r)return e;var c=o>=12?"pm":"am";return"".concat(o%12||12,":").concat(a).concat(c)},x=function(e){d(e)},C=function(e,t){var n=t.currentTarget.getBoundingClientRect();h({x:n.left+window.scrollX,y:n.bottom+window.scrollY+4}),p(e)},P=function(){p(null)},D=[],F=0;F<k;F++)D.push(React.createElement("div",{key:"empty-".concat(F),className:"mayo-calendar-day empty"}));for(var I=1;I<=N;I++){var M="".concat(R,"-").concat(String(w+1).padStart(2,"0"),"-").concat(String(I).padStart(2,"0")),L=T[M]||[],G=(new Date).toDateString()===new Date(R,w,I).toDateString();D.push(React.createElement("div",{key:M,className:"mayo-calendar-day ".concat(G?"today":""," ").concat(L.length>0?"has-events":"")},React.createElement("span",{className:"mayo-calendar-date"},I),React.createElement("div",{className:"mayo-calendar-events"},L.map(function(e,t){var n,a;return React.createElement("div",{key:"".concat(e.id,"-").concat(t),className:_(e),onClick:function(){return x(e)},onMouseEnter:function(t){return C(e,t)},onMouseLeave:P},e.meta.event_start_time&&(!(null!==(n=e._calendarMeta)&&void 0!==n&&n.isMultiDay)||(null===(a=e._calendarMeta)||void 0===a?void 0:a.isFirstDay))&&React.createElement("span",{className:"event-time"},j(e.meta.event_start_time)),React.createElement("span",{className:"event-title",dangerouslySetInnerHTML:{__html:e.title.rendered}}))}))))}return React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-calendar"},React.createElement("div",{className:"mayo-calendar-header"},React.createElement("button",{onClick:function(){var e=new Date(R,w-1,1);s(e),o&&o(e)},title:"Previous Month"},React.createElement("span",{className:"dashicons dashicons-arrow-left-alt2"})),React.createElement("h2",null,["January","February","March","April","May","June","July","August","September","October","November","December"][w]," ",R),React.createElement("div",{className:"mayo-calendar-header-right"},React.createElement("button",{onClick:function(){var e=new Date;s(e),o&&o(e)},className:"mayo-calendar-today-button",title:"Go to Today"},"Today"),React.createElement("button",{onClick:function(){var e=new Date(R,w+1,1);s(e),o&&o(e)},title:"Next Month"},React.createElement("span",{className:"dashicons dashicons-arrow-right-alt2"})))),React.createElement("div",{className:"mayo-calendar-grid".concat(c?" loading":"")},React.createElement("div",{className:"mayo-calendar-weekdays"},["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(function(e){return React.createElement("div",{key:e,className:"mayo-calendar-weekday"},e)})),React.createElement("div",{className:"mayo-calendar-days"},D),c&&React.createElement("div",{className:"mayo-calendar-loading"},React.createElement("span",null,"Loading events...")))),m&&React.createElement(Z,{event:m,timeFormat:r,onClose:function(){d(null)}}),y&&React.createElement("div",{className:"mayo-calendar-tooltip",style:{position:"absolute",left:b.x,top:b.y}},(n=function(e){var t,n,a={title:(t=e.title.rendered.replace(/<[^>]*>/g,""),n=document.createElement("textarea"),n.innerHTML=t,n.value),time:null,location:null,eventType:null,serviceBody:null};if(e.meta.event_start_time&&(a.time=j(e.meta.event_start_time),e.meta.event_end_time&&(a.time+=" - "+j(e.meta.event_end_time))),e.meta.location_name&&(a.location=e.meta.location_name),e.meta.event_type&&(a.eventType=e.meta.event_type),e.meta.service_body){var r=e.external_source?e.external_source.id:"local",o=E(e.meta.service_body,r);o&&o!==e.meta.service_body&&(a.serviceBody=o)}return a}(y),React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-tooltip-title"},n.title),n.time&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-clock"}),n.time),n.location&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-location"}),n.location),n.eventType&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-tag"}),n.eventType),n.serviceBody&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-groups"}),n.serviceBody)))))};function re(e){return re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},re(e)}function oe(e){return function(e){if(Array.isArray(e))return ye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ve(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(n),!0).forEach(function(t){le(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ce(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function le(e,t,n){return(t=function(e){var t=function(e){if("object"!=re(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=re(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==re(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function se(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return ue(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(ue(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,ue(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,ue(m,"constructor",s),ue(s,"constructor",l),l.displayName="GeneratorFunction",ue(s,r,"GeneratorFunction"),ue(m),ue(m,r,"Generator"),ue(m,a,function(){return this}),ue(m,"toString",function(){return"[object Generator]"}),(se=function(){return{w:o,m:d}})()}function ue(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}ue=function(e,t,n,a){function o(t,n){ue(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},ue(e,t,n,a)}function me(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function de(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){me(o,a,r,c,i,"next",e)}function i(e){me(o,a,r,c,i,"throw",e)}c(void 0)})}}function fe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||ve(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ve(e,t){if(e){if("string"==typeof e)return ye(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ye(e,t):void 0}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const pe=function(t){var n=t.widget,a=void 0!==n&&n,r=t.settings,o=void 0===r?{}:r,c=(0,e.useRef)(null),i=(0,e.useRef)(null),l=(0,e.useRef)(null),s=fe((0,e.useState)(!0),2),u=s[0],m=s[1],d=fe((0,e.useState)(null),2),f=d[0],v=d[1],y=fe((0,e.useState)([]),2),p=y[0],g=y[1],h=fe((0,e.useState)(1),2),E=h[0],_=h[1],R=fe((0,e.useState)("12hour"),2),w=R[0],S=R[1],N=fe((0,e.useState)(!1),2),k=N[0],O=N[1],T=fe((0,e.useState)(!0),2),j=T[0],x=T[1],P=fe((0,e.useState)(1),2),D=P[0],F=P[1],I=fe((0,e.useState)(!1),2),M=I[0],L=I[1],G=fe((0,e.useState)(new Set),2),B=(G[0],G[1]),U=fe((0,e.useState)(!1),2),W=(U[0],U[1],fe((0,e.useState)(!1),2)),z=(W[0],W[1],fe((0,e.useState)(!0),2)),q=(z[0],z[1],fe((0,e.useState)(!1),2)),H=q[0],J=q[1],Y=fe((0,e.useState)(!1),2),Z=Y[0],K=Y[1],X=fe((0,e.useState)((null==o?void 0:o.defaultView)||"list"),2),Q=X[0],ee=X[1],te=fe((0,e.useState)(new Date),2),ne=te[0],re=te[1],ce=fe((0,e.useState)([]),2),le=ce[0],ue=ce[1],me=fe((0,e.useState)(!1),2),ve=me[0],ye=me[1],pe=A().updateExternalServiceBodies,ge=C();(0,e.useEffect)(function(){O(a),S((null==o?void 0:o.timeFormat)||"12hour"),_(1),g([]),m(!0),v(null),x(!0),F(1),we(1)},[o,a]),(0,e.useEffect)(function(){var e=he("autoexpand"),t=null!==e?"true"===e:(null==o?void 0:o.autoexpand)||!1;J(t)},[null==o?void 0:o.autoexpand]),(0,e.useEffect)(function(){var e=he("view"),t=null!==e?e:(null==o?void 0:o.defaultView)||"list";"calendar"!==t&&"list"!==t||ee(t)},[null==o?void 0:o.defaultView]),(0,e.useEffect)(function(){H&&p.length>0&&(L(!0),B(new Set(p.map(function(e){return e.id}))))},[H,p]);var be=(0,e.useCallback)(function(e){e.length&&null!=o&&o.sourceIds&&(l.current&&clearTimeout(l.current),l.current=setTimeout(function(){var t=new Map;e.forEach(function(e){if(e.external_source&&e.external_source.service_bodies){var n=e.external_source.id,a=e.external_source.service_bodies;o.sourceIds.includes(n)&&t.set(n,a)}}),t.forEach(function(e,t){pe(t,e)})},300))},[null==o?void 0:o.sourceIds,pe]);(0,e.useEffect)(function(){p.length>0&&be(p)},[p,be]),(0,e.useEffect)(function(){if(null!=o&&o.infiniteScroll&&i.current&&j){var e=new IntersectionObserver(function(e){e[0].isIntersecting&&j&&!u&&E<D&&we(E+1)},{threshold:1});return e.observe(i.current),function(){i.current&&e.unobserve(i.current)}}},[j,u,E,D,null==o?void 0:o.infiniteScroll]);var he=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=new URLSearchParams(window.location.search);return n.has(e)?n.get(e):t},Ee=function(){var e,t=[],n={timeFormat:(null==o?void 0:o.timeFormat)||"12hour",perPage:(null==o?void 0:o.perPage)||10,infiniteScroll:null===(e=null==o?void 0:o.infiniteScroll)||void 0===e||e,autoexpand:(null==o?void 0:o.autoexpand)||!1,categories:(null==o?void 0:o.categories)||"", tags:(null==o?void 0:o.tags)||"",eventType:(null==o?void 0:o.eventType)||"",status:(null==o?void 0:o.status)||"publish",serviceBody:(null==o?void 0:o.serviceBody)||"",sourceIds:(null==o?void 0:o.sourceIds)||""};return"12hour"!==n.timeFormat&&t.push('time_format="'.concat(n.timeFormat,'"')),10!==n.perPage&&t.push('per_page="'.concat(n.perPage,'"')),!0!==n.infiniteScroll&&t.push('infinite_scroll="'.concat(n.infiniteScroll?"true":"false",'"')),!1!==n.autoexpand&&t.push('autoexpand="'.concat(n.autoexpand?"true":"false",'"')),n.categories&&t.push('categories="'.concat(n.categories,'"')),n.tags&&t.push('tags="'.concat(n.tags,'"')),n.eventType&&t.push('event_type="'.concat(n.eventType,'"')),"publish"!==n.status&&t.push('status="'.concat(n.status,'"')),n.serviceBody&&t.push('service_body="'.concat(n.serviceBody,'"')),n.sourceIds&&t.push('source_ids="'.concat(n.sourceIds,'"')),t.length>0?"[mayo_event_list ".concat(t.join(" "),"]"):"[mayo_event_list]"},_e=function(){var e=de(se().m(function e(){var t,n,a;return se().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=Ee(),e.p=1,e.n=2,navigator.clipboard.writeText(t);case 2:console.log("Shortcode copied to clipboard:",t),e.n=4;break;case 3:e.p=3,a=e.v,console.error("Failed to copy shortcode:",a),(n=document.createElement("textarea")).value=t,document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy"),console.log("Shortcode copied to clipboard (fallback):",t)}catch(e){console.error("Fallback copy failed:",e)}document.body.removeChild(n);case 4:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),Re=function(e){var t=[],n=[];return e.forEach(function(e){var a=e.meta.event_start_date&&""!==e.meta.event_start_date&&!isNaN(new Date(e.meta.event_start_date).getTime()),r=ie(ie({},e),{},{hasValidDate:a,isInvalid:!a});a?t.push(r):n.push(r)}),[].concat(t,n)},we=function(){var e=de(se().m(function e(){var t,n,a,r,c,i,l,s,u,d,f,y,p,h,E,R,w,S,N,k=arguments;return se().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=k.length>0&&void 0!==k[0]?k[0]:1,m(!0),e.p=1,a=null!==he("status")?he("status"):(null==o?void 0:o.status)||"publish",r=null!==he("event_type")?he("event_type"):(null==o?void 0:o.eventType)||"",c=null!==he("service_body")?he("service_body"):(null==o?void 0:o.serviceBody)||"",i=null!==he("relation")?he("relation"):(null==o?void 0:o.relation)||"AND",l=null!==he("categories")?he("categories"):(null==o?void 0:o.categories)||"",s=null!==he("tags")?he("tags"):(null==o?void 0:o.tags)||"",u=null!==he("source_ids")?he("source_ids"):(null==o?void 0:o.sourceIds)||"",d=null!==he("archive")?he("archive"):null!=o&&o.showArchived?"true":"false",f=null!==he("infinite_scroll")?"true"===he("infinite_scroll"):null===(n=null==o?void 0:o.infiniteScroll)||void 0===n||n,y=null!==he("per_page")?parseInt(he("per_page")):(null==o?void 0:o.perPage)||10,p=null!==he("order")?he("order"):(null==o?void 0:o.order)||"ASC",h="/events?status=".concat(a)+"&event_type=".concat(r)+"&service_body=".concat(c)+"&relation=".concat(i)+"&categories=".concat(l)+"&tags=".concat(s)+"&source_ids=".concat(u)+"&page=".concat(t)+"&per_page=".concat(y)+"&timezone=".concat(encodeURIComponent(ge))+"&archive=".concat(d)+"&order=".concat(p),e.n=2,b(h);case 2:E=e.v,R=Array.isArray(E)?E:E.events||[],w=E.pagination||{current_page:1,total_pages:Math.ceil(R.length/((null==o?void 0:o.perPage)||10))},S=Re(R),_(w.current_page),F(w.total_pages),x(w.current_page<w.total_pages),g(t>1&&f?function(e){return[].concat(oe(e),oe(S))}:S),m(!1),e.n=4;break;case 3:e.p=3,N=e.v,console.error("Error in fetchEvents:",N),v("Failed to load events: ".concat(N.message)),m(!1),x(!1);case 4:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),Se=function(){var e=de(se().m(function e(t,n){var a,r,c,i,l,s,u,m,d,f,v,y,p,g,h,E;return se().w(function(e){for(;;)switch(e.p=e.n){case 0:return ye(!0),e.p=1,a=null!==he("status")?he("status"):(null==o?void 0:o.status)||"publish",r=null!==he("event_type")?he("event_type"):(null==o?void 0:o.eventType)||"",c=null!==he("service_body")?he("service_body"):(null==o?void 0:o.serviceBody)||"",i=null!==he("relation")?he("relation"):(null==o?void 0:o.relation)||"AND",l=null!==he("categories")?he("categories"):(null==o?void 0:o.categories)||"",s=null!==he("tags")?he("tags"):(null==o?void 0:o.tags)||"",u=null!==he("source_ids")?he("source_ids"):(null==o?void 0:o.sourceIds)||"",m=null!==he("order")?he("order"):(null==o?void 0:o.order)||"ASC",d="".concat(t,"-").concat(String(n+1).padStart(2,"0"),"-01"),f=new Date(t,n+1,0).getDate(),v="".concat(t,"-").concat(String(n+1).padStart(2,"0"),"-").concat(String(f).padStart(2,"0")),y="/events?status=".concat(a)+"&event_type=".concat(r)+"&service_body=".concat(c)+"&relation=".concat(i)+"&categories=".concat(l)+"&tags=".concat(s)+"&source_ids=".concat(u)+"&timezone=".concat(encodeURIComponent(ge))+"&order=".concat(m)+"&start_date=".concat(d)+"&end_date=".concat(v)+"&per_page=100",e.n=2,b(y);case 2:p=e.v,g=Array.isArray(p)?p:p.events||[],h=Re(g),ue(h),ye(!1),e.n=4;break;case 3:e.p=3,E=e.v,console.error("Error in fetchCalendarEvents:",E),ye(!1);case 4:return e.a(2)}},e,null,[[1,3]])}));return function(t,n){return e.apply(this,arguments)}}();return(0,e.useEffect)(function(){"calendar"!==Q||k||Se(ne.getFullYear(),ne.getMonth())},[Q]),u&&0===p.length?React.createElement("div",null,"Loading events..."):f&&0===p.length?React.createElement("div",{className:"mayo-error"},f):p.length?React.createElement("div",{className:"mayo-event-list".concat("calendar"===Q?" mayo-calendar-view":""),ref:c},k?React.createElement("div",{className:"mayo-widget-events"},p.map(function(e){return React.createElement($,{key:"".concat(e.id,"-").concat(e.meta.event_start_date),event:e,timeFormat:w})})):React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-event-list-header"},React.createElement("div",{className:"mayo-view-toggle"},React.createElement("button",{className:"mayo-view-toggle-button ".concat("list"===Q?"active":""),onClick:function(){return ee("list")},title:"List View"},React.createElement("span",{className:"dashicons dashicons-list-view"})),React.createElement("button",{className:"mayo-view-toggle-button ".concat("calendar"===Q?"active":""),onClick:function(){return ee("calendar")},title:"Calendar View"},React.createElement("span",{className:"dashicons dashicons-calendar-alt"}))),React.createElement("div",{className:"mayo-event-list-actions"},"list"===Q&&React.createElement("button",{className:"mayo-expand-all-button",onClick:function(){return L(!M)},title:M?"Collapse All":"Expand All"},React.createElement("span",{className:"dashicons ".concat(M?"dashicons-arrow-up-alt2":"dashicons-arrow-down-alt2")})),React.createElement("button",{className:"mayo-print-button",onClick:function(){var e=window.open("","_blank"),t=document.title,n="\n <!DOCTYPE html>\n <html>\n <head>\n <title>".concat(t,' - Print View</title>\n <style>\n body {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n color: #333;\n max-width: 800px;\n margin: 0 auto;\n padding: 20px;\n }\n .mayo-print-header {\n text-align: center;\n margin-bottom: 30px;\n padding-bottom: 20px;\n border-bottom: 2px solid #eee;\n }\n .mayo-print-event {\n margin-bottom: 30px;\n padding-bottom: 20px;\n border-bottom: 1px solid #eee;\n }\n .mayo-print-event:last-child {\n border-bottom: none;\n }\n .mayo-print-event-title {\n font-size: 1.4em;\n margin: 0 0 10px 0;\n color: #0073aa;\n }\n .mayo-print-event-meta {\n margin-bottom: 15px;\n color: #666;\n }\n .mayo-print-event-description {\n margin-top: 15px;\n }\n .mayo-print-event-taxonomies {\n margin-top: 15px;\n }\n .mayo-print-event-taxonomy {\n display: inline-block;\n padding: 3px 8px;\n margin: 0 5px 5px 0;\n border-radius: 3px;\n font-size: 0.9em;\n }\n .mayo-print-event-category {\n background: #e9ecef;\n color: #495057;\n }\n .mayo-print-event-tag {\n background: #e5f5e8;\n color: #1fa23d;\n }\n @media print {\n body {\n padding: 0;\n }\n .mayo-print-header {\n margin-bottom: 20px;\n }\n .mayo-print-event {\n page-break-inside: avoid;\n }\n }\n </style>\n </head>\n <body>\n <div class="mayo-print-header">\n <h1>').concat(t,"</h1>\n <p>Printed on ").concat((new Date).toLocaleString(),"</p>\n </div>\n ").concat(p.map(function(e){return'\n <div class="mayo-print-event">\n <h2 class="mayo-print-event-title">'.concat(e.title.rendered,'</h2>\n <div class="mayo-print-event-meta">\n <p><strong>Date:</strong> ').concat(e.meta.event_start_date).concat(e.meta.event_start_time?" at ".concat(e.meta.event_start_time):"","</p>\n ").concat(e.meta.event_type?"<p><strong>Type:</strong> ".concat(e.meta.event_type,"</p>"):"","\n ").concat(e.meta.location_name?"<p><strong>Location:</strong> ".concat(e.meta.location_name,"</p>"):"",'\n </div>\n <div class="mayo-print-event-description">\n ').concat(e.content.rendered,"\n </div>\n ").concat(e.categories.length>0||e.tags.length>0?'\n <div class="mayo-print-event-taxonomies">\n '.concat(e.categories.map(function(e){return'\n <span class="mayo-print-event-taxonomy mayo-print-event-category">'.concat(e.name,"</span>\n ")}).join(""),"\n ").concat(e.tags.map(function(e){return'\n <span class="mayo-print-event-taxonomy mayo-print-event-tag">'.concat(e.name,"</span>\n ")}).join(""),"\n </div>\n "):"","\n </div>\n ")}).join(""),"\n </body>\n </html>\n ");e.document.write(n),e.document.close(),e.onload=function(){e.print()}},title:"Print Events"},React.createElement("span",{className:"dashicons dashicons-printer"})),React.createElement("a",{href:function(){var e=new URLSearchParams;e.append("feed","mayo_events");var t=null!==he("event_type")?he("event_type"):(null==o?void 0:o.eventType)||"",n=null!==he("service_body")?he("service_body"):(null==o?void 0:o.serviceBody)||"",a=null!==he("relation")?he("relation"):(null==o?void 0:o.relation)||"AND",r=null!==he("categories")?he("categories"):(null==o?void 0:o.categories)||"",c=null!==he("tags")?he("tags"):(null==o?void 0:o.tags)||"";t&&e.append("event_type",t),n&&e.append("service_body",n),"AND"!==a&&e.append("relation",a),r&&e.append("categories",r),c&&e.append("tags",c);var i=e.toString();return"".concat(window.location.origin).concat(window.location.pathname).concat(i?"?"+i:"")}(),className:"mayo-rss-link",target:"_blank",rel:"noopener noreferrer",title:"Calendar Feed (ICS)"},React.createElement("span",{className:"dashicons dashicons-calendar"})),React.createElement("a",{href:"".concat(window.location.pathname,"?feed=mayo_rss"),className:"mayo-rss-link",target:"_blank",rel:"noopener noreferrer",title:"RSS Feed"},React.createElement("span",{className:"dashicons dashicons-rss"})),React.createElement("button",{className:"mayo-shortcode-button",onClick:function(){return K(!Z)},title:Z?"Hide Shortcode":"Show Shortcode"},React.createElement("span",{className:"dashicons dashicons-editor-code"})))),Z&&React.createElement("div",{className:"mayo-shortcode-display"},React.createElement("div",{className:"mayo-shortcode-header"},React.createElement("strong",null,"Shortcode for this event list:"),React.createElement("button",{className:"mayo-copy-shortcode",onClick:_e,title:"Copy to Clipboard"},React.createElement("span",{className:"dashicons dashicons-clipboard"}),"Copy")),React.createElement("div",{className:"mayo-shortcode-text"},React.createElement("code",null,Ee()))),"calendar"===Q?React.createElement(ae,{events:le,timeFormat:w,onMonthChange:function(e){re(e),Se(e.getFullYear(),e.getMonth())},loading:ve}):React.createElement("div",{className:"mayo-event-cards"},p.map(function(e){return React.createElement(V,{key:"".concat(e.id,"-").concat(e.meta.event_start_date),event:e,timeFormat:w,forceExpanded:M})}),null!==he("infinite_scroll")?"true"===he("infinite_scroll")&&j&&React.createElement("div",{ref:i,className:"mayo-infinite-loader"},u&&React.createElement("div",{className:"mayo-loader"},"Loading more events...")):(null==o?void 0:o.infiniteScroll)&&j&&React.createElement("div",{ref:i,className:"mayo-infinite-loader"},u&&React.createElement("div",{className:"mayo-loader"},"Loading more events..."))))):null!=o&&o.showArchived?React.createElement("div",{className:"mayo-no-events"},"No events found in the archive."):React.createElement("div",{className:"mayo-no-events"},"No upcoming events found.",React.createElement("a",{href:"".concat(window.location.pathname,"?archive=true"),className:"mayo-archive-link"},"View past events"))};function ge(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return be(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(be(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,be(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,be(m,"constructor",s),be(s,"constructor",l),l.displayName="GeneratorFunction",be(s,r,"GeneratorFunction"),be(m),be(m,r,"Generator"),be(m,a,function(){return this}),be(m,"toString",function(){return"[object Generator]"}),(ge=function(){return{w:o,m:d}})()}function be(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}be=function(e,t,n,a){function o(t,n){be(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},be(e,t,n,a)}function he(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function Ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return _e(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_e(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const Re=function(){var t=Ee((0,e.useState)([]),2),n=t[0],a=t[1],r=Ee((0,e.useState)(!0),2),o=r[0],c=r[1],i=Ee((0,e.useState)(null),2),l=i[0],s=i[1],u=A().getServiceBodyName;return(0,e.useEffect)(function(){var e=function(){var e,t=(e=ge().m(function e(){var t,n;return ge().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,b("/events?archive=true");case 1:(t=e.v)&&Array.isArray(t)?a(t):t&&t.events&&Array.isArray(t.events)?a(t.events):(console.warn("Unexpected API response format:",t),a([])),e.n=3;break;case 2:e.p=2,n=e.v,console.error("Error fetching events:",n),s("Failed to load events"),a([]);case 3:return e.p=3,c(!1),e.f(3);case 4:return e.a(2)}},e,null,[[0,2,3,4]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){he(o,a,r,c,i,"next",e)}function i(e){he(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),o?React.createElement("div",null,"Loading events..."):l?React.createElement("div",{className:"mayo-error"},l):n.length?React.createElement("div",{className:"mayo-archive-container"},React.createElement("div",{className:"mayo-archive-content"},React.createElement("header",{className:"mayo-archive-header"},React.createElement("h1",{className:"mayo-archive-title"},"Events")),React.createElement("div",{className:"mayo-archive-events"},n.map(function(e){var t,n;return React.createElement("article",{key:e.id,className:"mayo-archive-event"},React.createElement("div",{className:"mayo-archive-event-content"},e.featured_image&&React.createElement("div",{className:"mayo-archive-event-image"},React.createElement("a",{href:e.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:e.featured_image,alt:e.title.rendered}))),React.createElement("div",{className:"mayo-archive-event-details"},React.createElement("h2",{className:"mayo-archive-event-title"},React.createElement("a",{href:e.link,dangerouslySetInnerHTML:{__html:e.title.rendered}})),React.createElement("div",{className:"mayo-archive-event-meta"},e.meta.event_type&&React.createElement("div",{className:"mayo-archive-event-type"},React.createElement("strong",null,"Type:")," ",e.meta.event_type),React.createElement("div",{className:"mayo-archive-event-datetime"},React.createElement("strong",null,"When:")," ",e.meta.event_start_date,e.meta.event_start_time&&" at ".concat(e.meta.event_start_time),(e.meta.event_end_date||e.meta.event_end_time)&&" - ",e.meta.event_end_date,e.meta.event_end_time&&" at ".concat(e.meta.event_end_time),e.meta.timezone&&" (".concat(y(e.meta.timezone),")")),(e.meta.location_name||e.meta.location_address)&&React.createElement("div",{className:"mayo-archive-event-location"},React.createElement("strong",null,"Where:")," ",e.meta.location_name,e.meta.location_name&&e.meta.location_address&&", ",e.meta.location_address),(null===(t=e.categories)||void 0===t?void 0:t.length)>0&&React.createElement("div",{className:"mayo-archive-event-categories"},e.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category"},e.name)})),(null===(n=e.tags)||void 0===n?void 0:n.length)>0&&React.createElement("div",{className:"mayo-archive-event-tags"},e.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag"},e.name)}))),React.createElement("div",{className:"mayo-archive-event-excerpt",dangerouslySetInnerHTML:{__html:e.content.rendered}}),e.meta.service_body&&React.createElement("p",null,React.createElement("strong",null,"Service Body:")," ",u(e.meta.service_body)),React.createElement("a",{href:e.link,className:"mayo-archive-event-link"},"View Event Details"))))})))):React.createElement("div",{className:"mayo-no-events"},"No archived events found.")};function we(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return Se(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(Se(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Se(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,Se(m,"constructor",s),Se(s,"constructor",l),l.displayName="GeneratorFunction",Se(s,r,"GeneratorFunction"),Se(m),Se(m,r,"Generator"),Se(m,a,function(){return this}),Se(m,"toString",function(){return"[object Generator]"}),(we=function(){return{w:o,m:d}})()}function Se(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Se=function(e,t,n,a){function o(t,n){Se(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},Se(e,t,n,a)}function Ne(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function ke(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const Te=function(){var t,n,a=ke((0,e.useState)(null),2),r=a[0],o=a[1],c=ke((0,e.useState)(!0),2),i=c[0],l=c[1],s=ke((0,e.useState)(null),2),u=s[0],m=s[1],d=ke((0,e.useState)([]),2),f=d[0],p=d[1],h=A().getServiceBodyName;if((0,e.useEffect)(function(){var e=function(){var e,t=(e=we().m(function e(){var t,n,a,r;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,t=window.location.pathname.split("/"),n=t[t.length-2],e.n=1,b("/event/".concat(n));case 1:if(!(a=e.v)){e.n=2;break}o(a),a.linked_announcements&&p(a.linked_announcements),e.n=3;break;case 2:throw new Error("Event not found");case 3:e.n=5;break;case 4:e.p=4,r=e.v,console.error("Error fetching event:",r),m("Failed to load event details");case 5:return e.p=5,l(!1),e.f(5);case 6:return e.a(2)}},e,null,[[0,4,5,6]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Ne(o,a,r,c,i,"next",e)}function i(e){Ne(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),i)return React.createElement("div",null,"Loading event details...");if(u)return React.createElement("div",{className:"mayo-error"},u);if(!r)return React.createElement("div",null,"Event not found");var E=r.title,_=r.content,R=r.meta,w=R.event_type,S=(R.event_start_date,R.event_end_date,R.event_start_time,R.event_end_time,R.timezone,R.location_name),N=R.location_address,k=R.location_details,O=R.recurring_pattern,T=R.service_body;return React.createElement("div",{className:"mayo-single-container"},React.createElement("article",{className:"mayo-single-event"},React.createElement("div",{className:"mayo-single-event-content"},React.createElement("header",{className:"mayo-single-event-header"},React.createElement("h1",{className:"mayo-single-event-title",dangerouslySetInnerHTML:{__html:E.rendered}})),f.length>0&&React.createElement("div",{className:"mayo-event-announcements"},f.map(function(e){var t={urgent:"#dc3545",high:"#ff9800",normal:"#0073aa",low:"#6c757d"},n=t[e.priority]||t.normal;return React.createElement("div",{key:e.id,className:"mayo-event-announcement-notice",style:{padding:"12px 16px",marginBottom:"16px",backgroundColor:"#fff8e1",borderLeft:"4px solid ".concat(n),borderRadius:"4px"}},React.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"4px"}},React.createElement("span",{className:"dashicons dashicons-megaphone",style:{color:n,fontSize:"18px"}}),React.createElement("strong",{style:{fontSize:"15px"}},e.title),e.priority&&"normal"!==e.priority&&React.createElement("span",{style:{backgroundColor:n,color:"#fff",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",textTransform:"uppercase"}},e.priority)),e.excerpt&&React.createElement("p",{style:{margin:"8px 0 0",fontSize:"14px",color:"#555"},dangerouslySetInnerHTML:{__html:e.excerpt.replace(/<[^>]+>/g,"").substring(0,200)+(e.excerpt.length>200?"...":"")}}))})),r.featured_image&&React.createElement("div",{className:"mayo-single-event-image"},React.createElement("div",{className:"mayo-image-actions"},React.createElement("a",{href:r.featured_image,download:!0,className:"mayo-image-link"},"Download Flyer")),React.createElement("a",{href:r.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:r.featured_image,alt:E.rendered}))),React.createElement("div",{className:"mayo-single-event-description"},React.createElement("h3",null,"Description"),React.createElement("div",{dangerouslySetInnerHTML:{__html:_.rendered}})),(S||N||k)&&React.createElement("div",{className:"mayo-single-event-location"},React.createElement("h3",null,"Location"),S&&React.createElement("p",{className:"mayo-location-name"},S),N&&React.createElement("p",{className:"mayo-location-address"},React.createElement(J,{address:N})),k&&React.createElement("p",{className:"mayo-location-details"},k)),React.createElement("div",{className:"mayo-single-event-meta"},w&&React.createElement("div",{className:"mayo-single-event-type"},React.createElement("h3",null,"Event Type"),React.createElement("p",null,w)),T&&React.createElement("div",{className:"mayo-single-event-service-body"},React.createElement("h3",null,"Service Body"),React.createElement("p",null,h(T))),React.createElement("div",{className:"mayo-single-event-datetime"},React.createElement("h3",null,"Date & Time"),React.createElement("p",null,React.createElement("strong",null,"Start:")," ",r.meta.event_start_date," at ",v(r.meta.event_start_time,"12hour"),r.meta.timezone&&" (".concat(y(r.meta.timezone),")")),(r.meta.event_end_date||r.meta.event_end_time)&&React.createElement("p",null,React.createElement("strong",null,"End:")," ",r.meta.event_end_date||r.meta.event_start_date," at ",v(r.meta.event_end_time,"12hour"))),O&&"none"!==O.type&&React.createElement("div",{className:"mayo-single-event-recurrence"},React.createElement("h3",null,"Recurring Event"),React.createElement("p",null,g(O))),React.createElement("div",{className:"mayo-single-event-taxonomies"},(null===(t=r.categories)||void 0===t?void 0:t.length)>0&&React.createElement("div",{className:"mayo-single-event-categories"},React.createElement("h3",null,"Categories"),r.categories.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})),(null===(n=r.tags)||void 0===n?void 0:n.length)>0&&React.createElement("div",{className:"mayo-single-event-tags"},React.createElement("h3",null,"Tags"),r.tags.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})))))))};function Ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const je=function(t){var n,a,r=t.announcements,o=t.currentIndex,c=t.onPrev,i=t.onNext,l=t.onClose,s=t.backgroundColor,u=t.textColor,m=t.autoRotateInterval,d=void 0===m?5e3:m,f=(0,e.useRef)(null),v=(n=(0,e.useState)(!1),a=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(n,a)||function(e,t){if(e){if("string"==typeof e)return Ae(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ae(e,t):void 0}}(n,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=v[0],p=v[1],g={};if(s&&(g.background=s),u&&(g.color=u),(0,e.useEffect)(function(){var e=function(){if(f.current){var e=f.current.offsetHeight;document.body.style.paddingTop="".concat(e,"px")}};return e(),window.addEventListener("resize",e),function(){document.body.style.paddingTop="",window.removeEventListener("resize",e)}},[r]),(0,e.useEffect)(function(){if(!(r.length<=1||y)){var e=setInterval(function(){i()},d);return function(){return clearInterval(e)}}},[r.length,y,i,d]),0===r.length)return null;var b=r[o];if(!b)return null;var h=r.length>1;return React.createElement("div",{className:"mayo-announcement-banner",ref:f,style:g,onMouseEnter:function(){return p(!0)},onMouseLeave:function(){return p(!1)}},React.createElement("div",{className:"mayo-announcement-banner-content"},h&&React.createElement("button",{className:"mayo-announcement-nav mayo-announcement-prev",onClick:c,title:"Previous"},React.createElement("span",{className:"dashicons dashicons-arrow-left-alt2"})),React.createElement("div",{className:"mayo-announcement-slider"},React.createElement("div",{key:o,className:"mayo-announcement-item mayo-slide-enter-down"},React.createElement("span",{className:"mayo-announcement-icon"},React.createElement("span",{className:"dashicons dashicons-megaphone"})),function(e){if(!e||"normal"===e)return null;var t={low:"#6c757d",high:"#ff9800",urgent:"#dc3545"};return React.createElement("span",{className:"mayo-announcement-priority",style:{backgroundColor:t[e]||t.normal,color:"#fff",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",textTransform:"uppercase",marginRight:"8px"}},e)}(b.priority),React.createElement("a",{href:b.link,className:"mayo-announcement-title",dangerouslySetInnerHTML:{__html:b.title}}),b.linked_events&&b.linked_events.length>0&&React.createElement("span",{className:"mayo-announcement-linked-events",style:{marginLeft:"8px",fontSize:"12px",opacity:.9}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"12px",marginRight:"4px",verticalAlign:"middle"}}),b.linked_events.map(function(e,t){var n,a,r,o=e.source&&"external"===e.source.type,c=e.unavailable;return React.createElement("span",{key:"".concat((null===(n=e.source)||void 0===n?void 0:n.type)||"local","-").concat((null===(a=e.source)||void 0===a?void 0:a.id)||"local","-").concat(e.id)},c?React.createElement("span",{style:{opacity:.7,fontStyle:"italic"}},e.title):React.createElement("a",{href:e.permalink,target:o?"_blank":"_self",rel:o?"noopener noreferrer":void 0,style:{color:"inherit",textDecoration:"underline"}},e.title,o&&(null===(r=e.source)||void 0===r?void 0:r.name)&&React.createElement("span",{style:{opacity:.8,marginLeft:"2px"}},"(",e.source.name,")")),t<b.linked_events.length-1&&", ")})),h&&React.createElement("span",{className:"mayo-announcement-counter"},o+1," / ",r.length))),h&&React.createElement("button",{className:"mayo-announcement-nav mayo-announcement-next",onClick:i,title:"Next"},React.createElement("span",{className:"dashicons dashicons-arrow-right-alt2"}))),React.createElement("button",{className:"mayo-announcement-close",onClick:l,title:"Dismiss"},React.createElement("span",{className:"dashicons dashicons-no-alt"})))},xe=function(t){var n=t.announcements,a=(t.timeFormat,t.onClose),r=t.backgroundColor,o=t.textColor,c={};return r&&(c.background=r),o&&(c.color=o),(0,e.useEffect)(function(){var e=function(e){"Escape"===e.key&&a()};return document.addEventListener("keydown",e),document.body.style.overflow="hidden",function(){document.removeEventListener("keydown",e),document.body.style.overflow=""}},[a]),0===n.length?null:React.createElement("div",{className:"mayo-announcement-modal-backdrop",onClick:function(e){e.target===e.currentTarget&&a()}},React.createElement("div",{className:"mayo-announcement-modal"},React.createElement("button",{className:"mayo-announcement-modal-close",onClick:a,title:"Close"},React.createElement("span",{className:"dashicons dashicons-no-alt"})),React.createElement("div",{className:"mayo-announcement-modal-header",style:c},React.createElement("span",{className:"dashicons dashicons-megaphone"}),React.createElement("h2",null,"Announcements")),React.createElement("div",{className:"mayo-announcement-modal-body"},React.createElement("ul",{className:"mayo-announcement-list"},n.map(function(e){return React.createElement("li",{key:e.id,className:"mayo-announcement-list-item"},React.createElement("div",{className:"mayo-announcement-list-header"},function(e){if(!e||"normal"===e)return null;var t={low:"#6c757d",high:"#ff9800",urgent:"#dc3545"};return React.createElement("span",{className:"mayo-announcement-priority",style:{backgroundColor:t[e]||t.normal,color:"#fff",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",textTransform:"uppercase",marginRight:"8px"}},e)}(e.priority)),React.createElement("a",{href:e.link,className:"mayo-announcement-list-title",dangerouslySetInnerHTML:{__html:e.title}}),e.excerpt&&React.createElement("div",{className:"mayo-announcement-list-excerpt",dangerouslySetInnerHTML:{__html:e.excerpt.replace(/<[^>]+>/g,"").substring(0,150)+"..."}}),e.linked_events&&e.linked_events.length>0&&React.createElement("div",{className:"mayo-announcement-linked-events",style:{marginTop:"8px",fontSize:"12px",color:"#666"}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"14px",marginRight:"4px",verticalAlign:"middle"}}),React.createElement("span",{style:{marginRight:"4px"}},"Related:"),e.linked_events.map(function(t,n){var a,r,o,c,i=t.source&&"external"===t.source.type,l=t.unavailable;return React.createElement("span",{key:"".concat((null===(a=t.source)||void 0===a?void 0:a.type)||"local","-").concat((null===(r=t.source)||void 0===r?void 0:r.id)||"local","-").concat(t.id)},l?React.createElement("span",{style:{color:"#999",fontStyle:"italic"}},t.title,i&&(null===(o=t.source)||void 0===o?void 0:o.name)&&React.createElement("span",{style:{fontSize:"10px",marginLeft:"4px"}},"(",t.source.name,")")):React.createElement("a",{href:t.permalink,target:i?"_blank":"_self",rel:i?"noopener noreferrer":void 0,style:{color:"#0073aa",textDecoration:"none"}},t.title,i&&(null===(c=t.source)||void 0===c?void 0:c.name)&&React.createElement("span",{style:{fontSize:"10px",color:"#888",marginLeft:"4px"}},"(",t.source.name,")")),n<e.linked_events.length-1&&", ")})))}))),React.createElement("div",{className:"mayo-announcement-modal-footer"},React.createElement("button",{className:"mayo-announcement-dismiss-button",onClick:a},"Dismiss"))))},Ce=function(e){var t=e.count,n=e.onClick,a=e.backgroundColor,r=e.textColor,o={};return a&&(o.background=a),r&&(o.color=r),React.createElement("button",{className:"mayo-announcement-bell",onClick:n,title:"".concat(t," announcement").concat(1!==t?"s":""," - Click to view"),style:o},React.createElement("span",{className:"dashicons dashicons-bell"}),t>0&&React.createElement("span",{className:"mayo-announcement-bell-badge"},t>9?"9+":t))};function Pe(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return De(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(De(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,De(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,De(m,"constructor",s),De(s,"constructor",l),l.displayName="GeneratorFunction",De(s,r,"GeneratorFunction"),De(m),De(m,r,"Generator"),De(m,a,function(){return this}),De(m,"toString",function(){return"[object Generator]"}),(Pe=function(){return{w:o,m:d}})()}function De(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}De=function(e,t,n,a){function o(t,n){De(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},De(e,t,n,a)}function Fe(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function Ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Me(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Me(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const Le=function(t){var n=t.settings,a=void 0===n?{}:n,r=Ie((0,e.useState)([]),2),o=r[0],c=r[1],i=Ie((0,e.useState)(!0),2),l=i[0],s=i[1],u=Ie((0,e.useState)(!1),2),m=(u[0],u[1]),d=Ie((0,e.useState)(!1),2),f=d[0],v=d[1],y=Ie((0,e.useState)(0),2),p=y[0],g=y[1],h=a.mode||"banner",E=a.categories||"",_=a.tags||"",R=a.priority||"",w=a.timeFormat||"12hour",S=a.backgroundColor||"",N=a.textColor||"",k=a.orderBy||"date",O=a.order||"",T=(0,e.useCallback)(function(e){var t=e.sort().join("-");return"mayo_announcement_dismissed_".concat(t)},[]),A=(0,e.useCallback)(function(e){if(0===e.length)return!1;var t=T(e),n=localStorage.getItem(t);if(!n)return!1;var a=parseInt(n,10);return Date.now()-a<864e5},[T]);(0,e.useEffect)(function(){var e=function(){var e,t=(e=Pe().m(function e(){var t,n,a,r,o;return Pe().w(function(e){for(;;)switch(e.p=e.n){case 0:return s(!0),e.p=1,t="/announcements?per_page=20",E&&(t+="&categories=".concat(encodeURIComponent(E))),_&&(t+="&tags=".concat(encodeURIComponent(_))),R&&(t+="&priority=".concat(encodeURIComponent(R))),k&&(t+="&orderby=".concat(encodeURIComponent(k))),O&&(t+="&order=".concat(encodeURIComponent(O))),e.n=2,b(t);case 2:n=e.v,a=Array.isArray(n)?n:n.announcements||[],c(a),r=a.map(function(e){return e.id}),A(r)&&(m(!0),v(!0)),e.n=4;break;case 3:e.p=3,o=e.v,console.error("Error fetching announcements:",o),c([]);case 4:return e.p=4,s(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Fe(o,a,r,c,i,"next",e)}function i(e){Fe(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[E,_,R,k,O,A]);var j=(0,e.useCallback)(function(){var e=o.map(function(e){return e.id}),t=T(e);localStorage.setItem(t,Date.now().toString()),m(!0),v(!0)},[o,T]),x=(0,e.useCallback)(function(){m(!1),v(!1);var e=o.map(function(e){return e.id}),t=T(e);localStorage.removeItem(t)},[o,T]),C=(0,e.useCallback)(function(){g(function(e){return 0===e?o.length-1:e-1})},[o.length]),P=(0,e.useCallback)(function(){g(function(e){return e>=o.length-1?0:e+1})},[o.length]);return(0,e.useEffect)(function(){o.length>0&&p>=o.length&&g(0)},[o.length,p]),l||0===o.length?null:f?React.createElement(Ce,{count:o.length,onClick:x,backgroundColor:S,textColor:N}):"modal"===h?React.createElement(xe,{announcements:o,timeFormat:w,onClose:j,backgroundColor:S,textColor:N}):React.createElement(je,{announcements:o,currentIndex:p,onPrev:C,onNext:P,onClose:j,backgroundColor:S,textColor:N})};function Ge(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return Be(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(Be(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Be(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,Be(m,"constructor",s),Be(s,"constructor",l),l.displayName="GeneratorFunction",Be(s,r,"GeneratorFunction"),Be(m),Be(m,r,"Generator"),Be(m,a,function(){return this}),Be(m,"toString",function(){return"[object Generator]"}),(Ge=function(){return{w:o,m:d}})()}function Be(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Be=function(e,t,n,a){function o(t,n){Be(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},Be(e,t,n,a)}function Ue(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function We(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ze(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const qe=function(){var t,n,a=We((0,e.useState)(null),2),r=a[0],o=a[1],c=We((0,e.useState)(!0),2),i=c[0],l=c[1],s=We((0,e.useState)(null),2),u=s[0],m=s[1],d=A().getServiceBodyName;if((0,e.useEffect)(function(){var e=function(){var e,t=(e=Ge().m(function e(){var t,n,a,r;return Ge().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,t=window.location.pathname.split("/"),n=t[t.length-2],e.n=1,b("/announcement-by-slug/".concat(n));case 1:if(!(a=e.v)){e.n=2;break}o(a),e.n=3;break;case 2:throw new Error("Announcement not found");case 3:e.n=5;break;case 4:e.p=4,r=e.v,console.error("Error fetching announcement:",r),m("Failed to load announcement");case 5:return e.p=5,l(!1),e.f(5);case 6:return e.a(2)}},e,null,[[0,4,5,6]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Ue(o,a,r,c,i,"next",e)}function i(e){Ue(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),i)return React.createElement("div",{className:"mayo-single-container"},React.createElement("div",{className:"mayo-loading"},"Loading announcement..."));if(u)return React.createElement("div",{className:"mayo-single-container"},React.createElement("div",{className:"mayo-error"},u));if(!r)return React.createElement("div",{className:"mayo-single-container"},React.createElement("div",{className:"mayo-error"},"Announcement not found"));var f={urgent:"#dc3545",high:"#ff9800",normal:"#0073aa",low:"#6c757d"},v=f[r.priority]||f.normal,y=function(e,t){if(!e)return null;var n=e;return t&&(n+=" at ".concat(function(e){if(!e)return"";try{var t=We(e.split(":"),2),n=t[0],a=t[1],r=parseInt(n,10),o=r>=12?"PM":"AM";return"".concat(r%12||12,":").concat(a," ").concat(o)}catch(t){return e}}(t))),n};return React.createElement("div",{className:"mayo-single-container"},React.createElement("article",{className:"mayo-single-announcement mayo-priority-".concat(r.priority||"normal")},React.createElement("header",{className:"mayo-single-announcement-header"},React.createElement("div",{className:"mayo-announcement-priority-bar",style:{backgroundColor:v}}),React.createElement("h1",{className:"mayo-single-announcement-title"},React.createElement("span",{dangerouslySetInnerHTML:{__html:r.title}})),r.priority&&"normal"!==r.priority&&React.createElement("span",{className:"mayo-priority-badge",style:{backgroundColor:v}},r.priority)),r.featured_image&&React.createElement("div",{className:"mayo-single-announcement-image"},React.createElement("a",{href:r.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:r.featured_image,alt:r.title}))),React.createElement("div",{className:"mayo-single-announcement-body"},React.createElement("div",{dangerouslySetInnerHTML:{__html:r.content}})),r.linked_events&&r.linked_events.length>0&&React.createElement("div",{className:"mayo-single-announcement-events"},React.createElement("h3",null,React.createElement("span",{className:"dashicons dashicons-calendar-alt"}),"Related Events"),React.createElement("ul",null,r.linked_events.map(function(e){var t,n,a,r,o=e.source&&"external"===e.source.type,c=e.unavailable;return React.createElement("li",{key:"".concat((null===(t=e.source)||void 0===t?void 0:t.type)||"local","-").concat((null===(n=e.source)||void 0===n?void 0:n.id)||"local","-").concat(e.id)},c?React.createElement("span",{className:"mayo-event-unavailable"},e.title,o&&(null===(a=e.source)||void 0===a?void 0:a.name)&&React.createElement("span",{className:"mayo-event-source"},"(",e.source.name,")")):React.createElement("a",{href:e.permalink,target:o?"_blank":"_self",rel:o?"noopener noreferrer":void 0},React.createElement("span",{className:"mayo-event-title"},e.title),e.start_date&&React.createElement("span",{className:"mayo-event-date"},e.start_date),o&&(null===(r=e.source)||void 0===r?void 0:r.name)&&React.createElement("span",{className:"mayo-event-source-badge"},e.source.name)))}))),React.createElement("div",{className:"mayo-single-announcement-meta"},r.service_body&&React.createElement("div",{className:"mayo-announcement-service-body"},React.createElement("h3",null,"Service Body"),React.createElement("p",null,d(r.service_body))),(r.display_start_date||r.display_end_date)&&React.createElement("div",{className:"mayo-announcement-display-window"},React.createElement("h3",null,"Display Window"),r.display_start_date&&React.createElement("p",null,React.createElement("strong",null,"From:")," ",y(r.display_start_date,r.display_start_time)),r.display_end_date&&React.createElement("p",null,React.createElement("strong",null,"Until:")," ",y(r.display_end_date,r.display_end_time)))),React.createElement("div",{className:"mayo-single-announcement-taxonomies"},(null===(t=r.categories)||void 0===t?void 0:t.length)>0&&React.createElement("div",{className:"mayo-single-announcement-categories"},React.createElement("h3",null,"Categories"),r.categories.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})),(null===(n=r.tags)||void 0===n?void 0:n.length)>0&&React.createElement("div",{className:"mayo-single-announcement-tags"},React.createElement("h3",null,"Tags"),r.tags.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})))))};function He(e){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}function Je(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return Ye(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(Ye(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Ye(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,Ye(m,"constructor",s),Ye(s,"constructor",l),l.displayName="GeneratorFunction",Ye(s,r,"GeneratorFunction"),Ye(m),Ye(m,r,"Generator"),Ye(m,a,function(){return this}),Ye(m,"toString",function(){return"[object Generator]"}),(Je=function(){return{w:o,m:d}})()}function Ye(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Ye=function(e,t,n,a){function o(t,n){Ye(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},Ye(e,t,n,a)}function Ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ve(Object(n),!0).forEach(function(t){Ze(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ve(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ze(e,t,n){return(t=function(e){var t=function(e){if("object"!=He(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=He(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==He(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ke(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function Xe(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Ke(o,a,r,c,i,"next",e)}function i(e){Ke(o,a,r,c,i,"throw",e)}c(void 0)})}}function Qe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||tt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function et(e){return function(e){if(Array.isArray(e))return nt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||tt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(e,t){if(e){if("string"==typeof e)return nt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?nt(e,t):void 0}}function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const at=function(){var t,n,a,r,o=document.getElementById("mayo-announcement-form"),c=null==o||null===(t=o.dataset)||void 0===t?void 0:t.settings,i=window[c]||{},l=(null==o||null===(n=o.dataset)||void 0===n?void 0:n.categories)||"",s=(0,e.useMemo)(function(){return l?l.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[l]),u=(0,e.useMemo)(function(){return s.filter(function(e){return!e.startsWith("-")})},[s]),m=(0,e.useMemo)(function(){return s.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[s]),d=(null==o||null===(a=o.dataset)||void 0===a?void 0:a.tags)||"",f=(0,e.useMemo)(function(){return d?d.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[d]),v=(0,e.useMemo)(function(){return f.filter(function(e){return!e.startsWith("-")})},[f]),y=(0,e.useMemo)(function(){return f.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[f]),p=function(e){var t=document.createElement("textarea");return t.innerHTML=e,t.value},g=i.additionalRequiredFields?i.additionalRequiredFields.split(",").map(function(e){return e.trim()}):[],h=[].concat(["title","description","service_body","email","contact_name"],et(g)),E=!0===i.showFlyer||"true"===i.showFlyer,_=Qe((0,e.useState)({title:"",description:"",start_date:"",start_time:"",end_date:"",end_time:"",flyer:null,categories:[],tags:[],service_body:"",email:"",contact_name:""}),2),R=_[0],w=_[1],S=Qe((0,e.useState)(!1),2),N=S[0],k=S[1],O=Qe((0,e.useState)(null),2),T=O[0],j=O[1],x=Qe((0,e.useState)([]),2),C=x[0],P=x[1],D=Qe((0,e.useState)([]),2),F=D[0],I=D[1],M=Qe((0,e.useState)(null),2),L=M[0],G=(M[1],A().serviceBodies),B=Qe((0,e.useState)(null),2),U=B[0],W=B[1],z=Qe((0,e.useState)({default_service_bodies:""}),2),q=z[0],H=z[1],J=Qe((0,e.useState)({categories:[],tags:[],service_bodies:[]}),2),Y=J[0],V=J[1];(0,e.useEffect)(function(){var e=function(){var e=Xe(Je().m(function e(){var t,n,a,r,o,c,l,s;return Je().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([b("/settings"),b("/subscription-options")]);case 1:n=e.v,a=Qe(n,2),r=a[0],o=a[1],c={default_service_bodies:r.default_service_bodies||""},void 0!==i.defaultServiceBodies&&""!==i.defaultServiceBodies&&(c.default_service_bodies=i.defaultServiceBodies),H(c),V(o||{categories:[],tags:[],service_bodies:[]}),(l=null===(t=c.default_service_bodies)||void 0===t?void 0:t.split(",").map(function(e){return e.trim()}).filter(function(e){return e}))&&1===l.length&&w(function(e){return $e($e({},e),{},{service_body:l[0]})}),e.n=3;break;case 2:e.p=2,s=e.v,console.error("Error fetching settings:",s);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();e()},[i]),(0,e.useEffect)(function(){var e=function(){var e=Xe(Je().m(function e(){var t,n,a,r,o,c,i,l,s,d,f;return Je().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([fetch("/wp-json/wp/v2/categories?hide_empty=false&per_page=100"),fetch("/wp-json/wp/v2/tags?hide_empty=false&per_page=100")]);case 1:if(t=e.v,n=Qe(t,2),a=n[0],r=n[1],a.ok&&r.ok){e.n=2;break}throw new Error("Failed to fetch taxonomies");case 2:return e.n=3,a.json();case 3:return o=e.v,e.n=4,r.json();case 4:c=e.v,i=Y.categories.map(function(e){return e.id}),l=Y.tags.map(function(e){return e.id}),s=o.filter(function(e){if(i.length>0&&!i.includes(e.id))return!1;var t=(e.slug||"").toLowerCase();return u.length>0?u.includes(t):!(m.length>0&&m.includes(t))}),d=c.filter(function(e){if(l.length>0&&!l.includes(e.id))return!1;var t=(e.slug||"").toLowerCase();return v.length>0?v.includes(t):!(y.length>0&&y.includes(t))}),P(Array.isArray(s)?s:[]),I(Array.isArray(d)?d:[]),e.n=6;break;case 5:e.p=5,f=e.v,console.error("Error fetching taxonomies:",f),P([]),I([]);case 6:return e.a(2)}},e,null,[[0,5]])}));return function(){return e.apply(this,arguments)}}();e()},[u,m,v,y,Y]);var $,Z,K=function(){var e=Xe(Je().m(function e(t){var n,a,r,o,c,i,l,s,u,m,d,f,v,y;return Je().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),k(!0),j(null),e.p=1,!R.flyer){e.n=2;break}if(o=["image/jpeg","image/png","image/gif"],c=R.flyer.name.split(".").pop().toLowerCase(),i=["jpg","jpeg","png","gif"],o.includes(R.flyer.type)&&i.includes(c)){e.n=2;break}throw new Error("You did not attach a valid image file. Please choose a valid image file (JPG, PNG, or GIF)");case 2:if(!((l=h.filter(function(e){return"flyer"===e?!R.flyer:!R[e]})).length>0)){e.n=3;break}throw new Error("Please fill in all required fields: ".concat(l.join(", ")));case 3:return s=new FormData,Object.keys(R).forEach(function(e){"flyer"===e&&R[e]instanceof File?s.append("flyer",R[e]):"categories"===e||"tags"===e?s.append(e,R[e].join(",")):null!=R[e]&&""!==R[e]&&s.append(e,R[e])}),u=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.nonce)||(null===(a=document.querySelector("#_wpnonce"))||void 0===a?void 0:a.value)||(null===(r=window.wpApiSettings)||void 0===r?void 0:r.nonce),e.n=4,b("/submit-announcement",{method:"POST",body:s,credentials:"same-origin",headers:{"X-WP-Nonce":u}});case 4:if(!(m=e.v).id&&!m.success){e.n=5;break}j({type:"success",text:"Announcement submitted successfully!"}),f=null===(d=q.default_service_bodies)||void 0===d?void 0:d.split(",").map(function(e){return e.trim()}).filter(function(e){return e}),v=f&&1===f.length?f[0]:"",w({title:"",description:"",start_date:"",start_time:"",end_date:"",end_time:"",flyer:null,categories:[],tags:[],service_body:v,email:"",contact_name:""}),W(null),e.n=6;break;case 5:throw new Error(m.message||"Failed to submit announcement");case 6:e.n=8;break;case 7:e.p=7,y=e.v,j({type:"error",text:y.message||"Error submitting form"});case 8:return e.p=8,k(!1),e.f(8);case 9:return e.a(2)}},e,null,[[1,7,8,9]])}));return function(t){return e.apply(this,arguments)}}(),X=function(e){var t=e.target,n=t.name,a=t.value,r=t.files;if(r&&r[0]){var o=r[0],c=o.name.split(".").pop().toLowerCase();if(!["image/jpeg","image/png","image/gif"].includes(o.type)||!["jpg","jpeg","png","gif"].includes(c))return j({type:"error",text:"The selected file is not a valid image. Please use a valid image file (JPG, PNG, or GIF)"}),e.target.value="",w(function(e){return $e($e({},e),{},{flyer:null})}),void W(null);var i=new FileReader;i.onload=function(t){var n=new Image;n.onload=function(){W("image"),w(function(e){return $e($e({},e),{},{flyer:o})}),j(null)},n.onerror=function(){j({type:"error",text:"The selected file is not a valid image. Please choose a valid image file (JPG, PNG, or GIF)"}),e.target.value="",w(function(e){return $e($e({},e),{},{flyer:null})}),W(null)},n.src=t.target.result},i.onerror=function(){j({type:"error",text:"Error reading the file"}),e.target.value="",w(function(e){return $e($e({},e),{},{flyer:null})}),W(null)},i.readAsDataURL(o)}else w(function(e){return $e($e({},e),{},Ze({},n,a))})},Q=function(e){return h.includes(e)};return L?React.createElement("div",{className:"mayo-error"},L):React.createElement("div",{className:"mayo-announcement-form"},React.createElement("form",{onSubmit:K},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"title"},"Announcement Title ",Q("title")&&"*"),React.createElement("input",{type:"text",id:"title",name:"title",value:R.title,onChange:X,required:Q("title")})),(!q.default_service_bodies||(null===(Z=q.default_service_bodies)||void 0===Z?void 0:Z.split(",").map(function(e){return e.trim()}).filter(function(e){return e})).length>1)&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"service_body"},"Service Body *"),React.createElement("select",{id:"service_body",name:"service_body",value:R.service_body,onChange:function(e){w(function(t){return $e($e({},t),{},{service_body:e.target.value})})},required:!0},React.createElement("option",{value:""},"Select a service body"),!(($=Y.service_bodies.map(function(e){return e.id.toString()})).length>0&&!$.includes("0"))&&(!q.default_service_bodies||q.default_service_bodies.includes("0"))&&React.createElement("option",{value:"0"},"Unaffiliated (0)"),function(){var e=G,t=Y.service_bodies.map(function(e){return e.id.toString()});if(t.length>0&&(e=e.filter(function(e){return t.includes(e.id.toString())})),q.default_service_bodies){var n=q.default_service_bodies.split(",").map(function(e){return e.trim()}).filter(function(e){return e});e=e.filter(function(e){return n.includes(e.id.toString())})}return e}().map(function(e){return React.createElement("option",{key:e.id,value:e.id},e.name," (",e.id,")")}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"contact_name"},"Point of Contact Name (Private) *"),React.createElement("input",{type:"text",id:"contact_name",name:"contact_name",value:R.contact_name,onChange:X,required:!0,placeholder:"Your name (will not be displayed publicly)"})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"email"},"Point of Contact Email (Private) *"),React.createElement("input",{type:"email",id:"email",name:"email",value:R.email,onChange:X,required:!0,placeholder:"Your email address (will not be displayed publicly)"})),React.createElement("fieldset",{className:"mayo-display-window-fieldset"},React.createElement("legend",null,"Display Window"),React.createElement("p",{className:"mayo-fieldset-description"},"Control when this announcement is visible on the site."),React.createElement("div",{className:"mayo-datetime-group"},React.createElement("div",{className:"mayo-datetime-row"},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"start_date"},"Start Date ",Q("start_date")&&"*"),React.createElement("input",{type:"date",id:"start_date",name:"start_date",value:R.start_date,onChange:X,required:Q("start_date")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"start_time"},"Start Time ",Q("start_time")&&"*"),React.createElement("input",{type:"time",id:"start_time",name:"start_time",value:R.start_time,onChange:X,required:Q("start_time")}))),React.createElement("p",{className:"mayo-field-hint"},"Leave empty to start showing immediately"),React.createElement("div",{className:"mayo-datetime-row"},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"end_date"},"End Date ",Q("end_date")&&"*"),React.createElement("input",{type:"date",id:"end_date",name:"end_date",value:R.end_date,onChange:X,required:Q("end_date")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"end_time"},"End Time ",Q("end_time")&&"*"),React.createElement("input",{type:"time",id:"end_time",name:"end_time",value:R.end_time,onChange:X,required:Q("end_time")}))),React.createElement("p",{className:"mayo-field-hint"},"Leave empty to show indefinitely"))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"description"},"Description ",Q("description")&&"*"),React.createElement("textarea",{id:"description",name:"description",value:R.description,onChange:X,required:Q("description"),rows:"6"})),E&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Image/Flyer ",Q("flyer")&&"*"),React.createElement("div",{className:"mayo-upload-section"},!U&&React.createElement(React.Fragment,null,React.createElement("input",{type:"file",id:"flyer-upload",name:"flyer",accept:"image/*",onChange:X,required:Q("flyer"),className:"mayo-file-input"}),React.createElement("label",{htmlFor:"flyer-upload",className:"mayo-upload-button"},"Upload Image"),React.createElement("p",{className:"mayo-upload-info"},"Supported file types: Images (.jpg, .jpeg, .png, .gif)",Q("flyer")&&" (Required)")),U&&React.createElement("div",{className:"mayo-upload-preview"},React.createElement("p",null,"Selected: ",(null===(r=R.flyer)||void 0===r?void 0:r.name)||"No file selected"),React.createElement("button",{type:"button",onClick:function(){w(function(e){return $e($e({},e),{},{flyer:null})}),W(null)},className:"mayo-clear-upload"},"Clear Upload")))),C.length>0&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Categories"),React.createElement("div",{className:"mayo-taxonomy-list"},C.map(function(e){return React.createElement("label",{key:null==e?void 0:e.id,className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:R.categories.includes(null==e?void 0:e.id),onChange:function(t){var n=t.target.checked?[].concat(et(R.categories),[null==e?void 0:e.id]):R.categories.filter(function(t){return t!==(null==e?void 0:e.id)});w($e($e({},R),{},{categories:n}))}}),null!=e&&e.name?p(e.name):"Unnamed Category")}))),F.length>0&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Tags"),React.createElement("div",{className:"mayo-taxonomy-list"},F.map(function(e){return React.createElement("label",{key:(null==e?void 0:e.id)||"default",className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:R.tags.includes(null==e?void 0:e.name),onChange:function(t){var n=t.target.checked?[].concat(et(R.tags),[null==e?void 0:e.name]):R.tags.filter(function(t){return t!==(null==e?void 0:e.name)});w($e($e({},R),{},{tags:n}))}}),null!=e&&e.name?p(e.name):"Unnamed Tag")}))),React.createElement("button",{type:"submit",disabled:N,className:"mayo-submit-button"},N?"Submitting...":"Submit Announcement"),T&&React.createElement("div",{className:"mayo-message mayo-message-".concat(T.type)},"string"==typeof T.text?T.text:"An error occurred while submitting the form. Please try again.")))};function rt(e){return rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(e)}function ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ot(Object(n),!0).forEach(function(t){it(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ot(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function it(e,t,n){return(t=function(e){var t=function(e){if("object"!=rt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=rt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==rt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lt(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return st(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(st(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,st(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,st(m,"constructor",s),st(s,"constructor",l),l.displayName="GeneratorFunction",st(s,r,"GeneratorFunction"),st(m),st(m,r,"Generator"),st(m,a,function(){return this}),st(m,"toString",function(){return"[object Generator]"}),(lt=function(){return{w:o,m:d}})()}function st(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}st=function(e,t,n,a){function o(t,n){st(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},st(e,t,n,a)}function ut(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function mt(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){ut(o,a,r,c,i,"next",e)}function i(e){ut(o,a,r,c,i,"throw",e)}c(void 0)})}}function dt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||ft(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ft(e,t){if(e){if("string"==typeof e)return vt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vt(e,t):void 0}}function vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const yt=function(){var t=dt((0,e.useState)(""),2),n=t[0],a=t[1],r=dt((0,e.useState)(!1),2),o=r[0],c=r[1],i=dt((0,e.useState)(!0),2),l=i[0],s=i[1],u=dt((0,e.useState)(null),2),m=u[0],d=u[1],f=dt((0,e.useState)({categories:[],tags:[],service_bodies:[]}),2),v=f[0],y=f[1],p=dt((0,e.useState)({categories:[],tags:[],service_bodies:[]}),2),g=p[0],h=p[1],E=A().getServiceBodyName;(0,e.useEffect)(function(){var e=function(){var e=mt(lt().m(function e(){var t,n;return lt().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,b("/subscription-options");case 1:(t=e.v)&&y({categories:t.categories||[],tags:t.tags||[],service_bodies:t.service_bodies||[]}),e.n=3;break;case 2:e.p=2,n=e.v,console.error("Failed to fetch subscription options:",n);case 3:return e.p=3,s(!1),e.f(3);case 4:return e.a(2)}},e,null,[[0,2,3,4]])}));return function(){return e.apply(this,arguments)}}();e()},[]);var _=function(){return g.categories.length>0||g.tags.length>0||g.service_bodies.length>0},R=function(){return v.categories.length>0||v.tags.length>0||v.service_bodies.length>0},w=function(e,t){h(function(n){var a,r=n[e]||[],o=r.includes(t)?r.filter(function(e){return e!==t}):[].concat(function(e){if(Array.isArray(e))return vt(e)}(a=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||ft(a)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[t]);return ct(ct({},n),{},it({},e,o))})},S=function(){var e=mt(lt().m(function e(t){var r,o,i;return lt().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),!R()||_()){e.n=1;break}return d({type:"error",text:"Please select at least one preference to subscribe."}),e.a(2);case 1:return c(!0),d(null),e.p=2,r={email:n},R()&&(r.preferences=g),e.n=3,b("/subscribe",{method:"POST",body:JSON.stringify(r)});case 3:(o=e.v).success?(d({type:"success",text:o.message}),a(""),h({categories:[],tags:[],service_bodies:[]})):d({type:"error",text:o.message||"An error occurred. Please try again."}),e.n=5;break;case 4:e.p=4,i=e.v,d({type:"error",text:i.message||"An error occurred. Please try again."});case 5:return e.p=5,c(!1),e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(t){return e.apply(this,arguments)}}();return l?React.createElement("div",{className:"mayo-subscribe-form"},React.createElement("p",null,"Loading...")):React.createElement("div",{className:"mayo-subscribe-form"},React.createElement("form",{onSubmit:S},React.createElement("div",{className:"mayo-subscribe-input-group"},React.createElement("input",{type:"email",value:n,onChange:function(e){return a(e.target.value)},placeholder:"Enter your email address",required:!0,disabled:o,className:"mayo-subscribe-email"})),R()&&React.createElement("div",{className:"mayo-subscribe-preferences"},React.createElement("p",{className:"mayo-subscribe-preferences-label"},"Select what you'd like to receive notifications about:"),v.categories.length>0&&React.createElement("div",{className:"mayo-subscribe-preference-group"},React.createElement("span",{className:"mayo-subscribe-preference-heading"},"Categories"),React.createElement("div",{className:"mayo-subscribe-checkboxes"},v.categories.map(function(e){return React.createElement("label",{key:e.id,className:"mayo-subscribe-checkbox"},React.createElement("input",{type:"checkbox",checked:g.categories.includes(e.id),onChange:function(){return w("categories",e.id)},disabled:o}),React.createElement("span",null,e.name))}))),v.tags.length>0&&React.createElement("div",{className:"mayo-subscribe-preference-group"},React.createElement("span",{className:"mayo-subscribe-preference-heading"},"Tags"),React.createElement("div",{className:"mayo-subscribe-checkboxes"},v.tags.map(function(e){return React.createElement("label",{key:e.id,className:"mayo-subscribe-checkbox"},React.createElement("input",{type:"checkbox",checked:g.tags.includes(e.id),onChange:function(){return w("tags",e.id)},disabled:o}),React.createElement("span",null,e.name))}))),v.service_bodies.length>0&&React.createElement("div",{className:"mayo-subscribe-preference-group"},React.createElement("span",{className:"mayo-subscribe-preference-heading"},"Service Bodies"),React.createElement("div",{className:"mayo-subscribe-checkboxes"},v.service_bodies.map(function(e){return React.createElement("label",{key:e.id,className:"mayo-subscribe-checkbox"},React.createElement("input",{type:"checkbox",checked:g.service_bodies.includes(e.id),onChange:function(){return w("service_bodies",e.id)},disabled:o}),React.createElement("span",null,E(e.id,e.source_id)||e.name||e.id))})))),React.createElement("button",{type:"submit",disabled:o||R()&&!_(),className:"mayo-subscribe-button"},o?"Subscribing...":"Subscribe"),m&&React.createElement("div",{className:"mayo-subscribe-message mayo-subscribe-message-".concat(m.type)},m.text)))};document.addEventListener("DOMContentLoaded",function(){var t=document.getElementById("mayo-event-form"),n=document.querySelectorAll('[id^="mayo-event-list-"]'),a=document.getElementById("mayo-details-root"),r=document.getElementById("mayo-archive-root"),o=document.getElementById("mayo-announcement-details-root"),c=function(t,n){if(n){var a=n.dataset.instance,r=window["mayoEventSettings_".concat(a)]||{};n.classList.contains("mayo-widget-list")?(0,e.render)(React.createElement(j,null,React.createElement(t,{widget:!0,settings:r})),n):(0,e.render)(React.createElement(j,null,React.createElement(t,{settings:r})),n)}};n.forEach(function(e){c(pe,e)}),c(H,t),c(Te,a),c(Re,r),c(qe,o),document.querySelectorAll(".mayo-announcement-container").forEach(function(t){var n=t.dataset.instance,a="mayoAnnouncementSettings_".concat(n),r=window[a]||{};(0,e.render)(React.createElement(j,null,React.createElement(Le,{settings:r})),t)}),document.querySelectorAll(".mayo-subscribe-container").forEach(function(t){(0,e.render)(React.createElement(j,null,React.createElement(yt,null)),t)});var i=document.getElementById("mayo-announcement-form");i&&(0,e.render)(React.createElement(j,null,React.createElement(at,null)),i)})})();2 (()=>{"use strict";const e=wp.element,t=React;function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function a(){var e,t,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",c=n.toStringTag||"@@toStringTag";function i(n,a,o,c){var i=a&&a.prototype instanceof s?a:s,u=Object.create(i.prototype);return r(u,"_invoke",function(n,a,r){var o,c,i,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,c=0,i=e,d.n=n,l}};function f(n,a){for(c=n,i=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(i=o[(c=o[4])?5:(c=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(c=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,c=0))}if(r||n>1)return l;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),c=u,i=v;(t=c<2?e:i)||!m;){o||(c?c<3?(c>1&&(d.n=-1),f(c,i)):d.n=i:d.v=i);try{if(s=2,o){if(c||(r="next"),t=o[r]){if(!(t=t.call(o,i)))throw TypeError("iterator result is not an object");if(!t.done)return t;i=t.value,c<2&&(c=0)}else 1===c&&(t=o.return)&&t.call(o),c<2&&(i=TypeError("The iterator does not provide a '"+r+"' method"),c=1);o=e}else if((t=(m=d.n<0)?i:n.call(a,d))!==l)break}catch(t){o=e,c=1,i=t}finally{s=1}}return{value:t,done:m}}}(n,o,c),!0),u}var l={};function s(){}function u(){}function m(){}t=Object.getPrototypeOf;var d=[][o]?t(t([][o]())):(r(t={},o,function(){return this}),t),f=m.prototype=s.prototype=Object.create(d);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,r(e,c,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=m,r(f,"constructor",m),r(m,"constructor",u),u.displayName="GeneratorFunction",r(m,c,"GeneratorFunction"),r(f),r(f,c,"Generator"),r(f,o,function(){return this}),r(f,"toString",function(){return"[object Generator]"}),(a=function(){return{w:i,m:v}})()}function r(e,t,n,a){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}r=function(e,t,n,a){function c(t,n){r(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(c("next",0),c("throw",1),c("return",2))},r(e,t,n,a)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,a){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=n(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],f=function(e){return e.split("").map(function(e){var t=e.codePointAt(0);return t>127?"u".concat(t):e}).join("")},v=function(e,t){if(!e)return"";if("24hour"===t)return e;var n=s(e.split(":"),2),a=n[0],r=n[1],o=parseInt(a),c=o>=12?"PM":"AM";return"".concat(o%12||12,":").concat(r," ").concat(c)},y=function(e){try{return(new Date).toLocaleTimeString("en-US",{timeZone:e,timeZoneName:"short"}).split(" ")[2]}catch(t){return e.split("/").pop().replace("_"," ")}},p=function(e,t){var n=e.meta,a=n.event_start_date,r=n.event_end_date,o=n.event_start_time,c=n.event_end_time,i=n.timezone;if(!a)return"";if(!o)return"";var l="";if(r&&a!==r){var s=new Date(a+"T00:00:00"),u=new Date(r+"T00:00:00"),m="".concat(d[s.getMonth()]," ").concat(s.getDate()),f="".concat(d[u.getMonth()]," ").concat(u.getDate());l="".concat(m,", ").concat(v(o,t)," - ").concat(f,", ").concat(v(c||o,t))}else l=v(o,t),c&&(l+=" - ".concat(v(c,t)));return i&&(l+=" (".concat(y(i),")")),l},g=function(e){if(!e||"none"===e.type)return"";var t=e.type,n=e.interval,a=e.weekdays,r=void 0===a?[]:a,o=e.endDate,c=e.monthlyType,i=e.monthlyWeekday,l=e.monthlyDate,u="This event repeats ";switch(t){case"daily":u+=n>1?"every ".concat(n," days"):"daily";break;case"weekly":if(u+=n>1?"every ".concat(n," weeks"):"weekly",r&&r.length){var d=r.map(function(e){return m[parseInt(e)]});u+=" on ".concat(d.join(", "))}break;case"monthly":if(u+=n>1?"every ".concat(n," months"):"monthly","date"===c&&l)u+=" on day ".concat(l);else if("weekday"===c&&i){var f=s(i.split(",").map(Number),2),v=f[0],y=f[1];u+=" on the ".concat(v>0?["first","second","third","fourth","fifth"][v-1]:"last"," ").concat(m[y])}break;default:return""}return o&&(u+=" until ".concat(o)),u},b=function(){var e,t=(e=a().m(function e(t){var n,r,o,i,l,s,u,m,d,f=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:return o=f.length>1&&void 0!==f[1]?f[1]:{},(i=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.root)||(null===(r=window.wpApiSettings)||void 0===r?void 0:r.root)||"/wp-json/").endsWith("/")||(i+="/"),l="".concat(i,"event-manager/v1").concat(t),s="",window.mayoApiSettings&&window.mayoApiSettings.nonce?s=window.mayoApiSettings.nonce:window.wpApiSettings&&window.wpApiSettings.nonce&&(s=window.wpApiSettings.nonce),u=c(c({},{credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":s}}),o),e.p=1,e.n=2,fetch(l,u);case 2:if((m=e.v).ok){e.n=3;break}throw new Error("API error: ".concat(m.status," ").concat(m.statusText));case 3:return e.n=4,m.json();case 4:return e.a(2,e.v);case 5:throw e.p=5,d=e.v,console.error("API fetch error:",d),d;case 6:return e.a(2)}},e,null,[[1,5]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){l(o,a,r,c,i,"next",e)}function i(e){l(o,a,r,c,i,"throw",e)}c(void 0)})});return function(e){return t.apply(this,arguments)}}();function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?E(Object(n),!0).forEach(function(t){R(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function R(e,t,n){return(t=function(e){var t=function(e){if("object"!=h(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=h(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==h(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return S(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(S(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,S(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,S(m,"constructor",s),S(s,"constructor",l),l.displayName="GeneratorFunction",S(s,r,"GeneratorFunction"),S(m),S(m,r,"Generator"),S(m,a,function(){return this}),S(m,"toString",function(){return"[object Generator]"}),(w=function(){return{w:o,m:d}})()}function S(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}S=function(e,t,n,a){function o(t,n){S(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},S(e,t,n,a)}function N(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var T=(0,t.createContext)(),A=function(){return(0,t.useContext)(T)},j=function(e){var n=e.children,a=k((0,t.useState)([]),2),r=a[0],o=a[1],c=k((0,t.useState)({}),2),i=c[0],l=c[1],s=k((0,t.useState)(!0),2),u=s[0],m=s[1];return(0,t.useEffect)(function(){var e=function(){var e,t=(e=w().m(function e(){var t,n,a,r,c,i;return w().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,m(!0),e.n=1,b("/settings");case 1:if(t=e.v,n=t.bmlt_root_server){e.n=2;break}throw new Error("BMLT root server URL not set");case 2:return e.n=3,fetch("".concat(n,"/client_interface/json/?switcher=GetServiceBodies"));case 3:return a=e.v,e.n=4,a.json();case 4:r=e.v,c=r.sort(function(e,t){return e.name.localeCompare(t.name)}),o(c),e.n=6;break;case 5:e.p=5,i=e.v,console.error("Error fetching service bodies:",i),setError("Failed to load service bodies");case 6:return e.p=6,m(!1),e.f(6);case 7:return e.a(2)}},e,null,[[0,5,6,7]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){N(o,a,r,c,i,"next",e)}function i(e){N(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),React.createElement(T.Provider,{value:{serviceBodies:r,getServiceBodyName:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if("local"===t){var n=r.find(function(t){return t.id===e});return(null==n?void 0:n.name)||"Out of Area"}if(i[t]){var a=i[t].find(function(t){return t.id===e});return(null==a?void 0:a.name)||"Out of Area"}return"Out of Area"},updateExternalServiceBodies:function(e,t){t&&Array.isArray(t)&&0!==t.length&&l(function(n){return _(_({},n),{},R({},e,t))})}}},u?React.createElement("div",null,"Loading..."):n)},x=[{label:"Eastern Time (US/Canada)",value:"America/New_York",region:"North America"},{label:"Central Time (US/Canada)",value:"America/Chicago",region:"North America"},{label:"Mountain Time (US/Canada)",value:"America/Denver",region:"North America"},{label:"Pacific Time (US/Canada)",value:"America/Los_Angeles",region:"North America"},{label:"Alaska Time (US)",value:"America/Anchorage",region:"North America"},{label:"Hawaii Time (US)",value:"Pacific/Honolulu",region:"North America"},{label:"Atlantic Time (Canada)",value:"America/Halifax",region:"North America"},{label:"Newfoundland Time (Canada)",value:"America/St_Johns",region:"North America"},{label:"Mexico City Time",value:"America/Mexico_City",region:"North America"},{label:"London (GMT/BST)",value:"Europe/London",region:"Europe"},{label:"Paris (CET/CEST)",value:"Europe/Paris",region:"Europe"},{label:"Berlin (CET/CEST)",value:"Europe/Berlin",region:"Europe"},{label:"Rome (CET/CEST)",value:"Europe/Rome",region:"Europe"},{label:"Madrid (CET/CEST)",value:"Europe/Madrid",region:"Europe"},{label:"Amsterdam (CET/CEST)",value:"Europe/Amsterdam",region:"Europe"},{label:"Brussels (CET/CEST)",value:"Europe/Brussels",region:"Europe"},{label:"Zurich (CET/CEST)",value:"Europe/Zurich",region:"Europe"},{label:"Vienna (CET/CEST)",value:"Europe/Vienna",region:"Europe"},{label:"Stockholm (CET/CEST)",value:"Europe/Stockholm",region:"Europe"},{label:"Oslo (CET/CEST)",value:"Europe/Oslo",region:"Europe"},{label:"Copenhagen (CET/CEST)",value:"Europe/Copenhagen",region:"Europe"},{label:"Helsinki (EET/EEST)",value:"Europe/Helsinki",region:"Europe"},{label:"Athens (EET/EEST)",value:"Europe/Athens",region:"Europe"},{label:"Istanbul (TRT)",value:"Europe/Istanbul",region:"Europe"},{label:"Moscow (MSK)",value:"Europe/Moscow",region:"Europe"},{label:"Dublin (GMT/IST)",value:"Europe/Dublin",region:"Europe"},{label:"Lisbon (WET/WEST)",value:"Europe/Lisbon",region:"Europe"},{label:"Tokyo (JST)",value:"Asia/Tokyo",region:"Asia"},{label:"Shanghai (CST)",value:"Asia/Shanghai",region:"Asia"},{label:"Hong Kong (HKT)",value:"Asia/Hong_Kong",region:"Asia"},{label:"Singapore (SGT)",value:"Asia/Singapore",region:"Asia"},{label:"Seoul (KST)",value:"Asia/Seoul",region:"Asia"},{label:"Bangkok (ICT)",value:"Asia/Bangkok",region:"Asia"},{label:"Manila (PHT)",value:"Asia/Manila",region:"Asia"},{label:"Jakarta (WIB)",value:"Asia/Jakarta",region:"Asia"},{label:"Mumbai (IST)",value:"Asia/Kolkata",region:"Asia"},{label:"Dubai (GST)",value:"Asia/Dubai",region:"Asia"},{label:"Riyadh (AST)",value:"Asia/Riyadh",region:"Asia"},{label:"Tel Aviv (IST)",value:"Asia/Jerusalem",region:"Asia"},{label:"Dhaka (BST)",value:"Asia/Dhaka",region:"Asia"},{label:"Karachi (PKT)",value:"Asia/Karachi",region:"Asia"},{label:"Tashkent (UZT)",value:"Asia/Tashkent",region:"Asia"},{label:"Sydney (AEST/AEDT)",value:"Australia/Sydney",region:"Australia & Oceania"},{label:"Melbourne (AEST/AEDT)",value:"Australia/Melbourne",region:"Australia & Oceania"},{label:"Brisbane (AEST)",value:"Australia/Brisbane",region:"Australia & Oceania"},{label:"Perth (AWST)",value:"Australia/Perth",region:"Australia & Oceania"},{label:"Adelaide (ACST/ACDT)",value:"Australia/Adelaide",region:"Australia & Oceania"},{label:"Darwin (ACST)",value:"Australia/Darwin",region:"Australia & Oceania"},{label:"Hobart (AEST/AEDT)",value:"Australia/Hobart",region:"Australia & Oceania"},{label:"Auckland (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Wellington (NZST/NZDT)",value:"Pacific/Auckland",region:"Australia & Oceania"},{label:"Fiji (FJT)",value:"Pacific/Fiji",region:"Australia & Oceania"},{label:"Cairo (EET)",value:"Africa/Cairo",region:"Africa"},{label:"Cape Town (SAST)",value:"Africa/Johannesburg",region:"Africa"},{label:"Lagos (WAT)",value:"Africa/Lagos",region:"Africa"},{label:"Nairobi (EAT)",value:"Africa/Nairobi",region:"Africa"},{label:"Casablanca (WET)",value:"Africa/Casablanca",region:"Africa"},{label:"Tunis (CET)",value:"Africa/Tunis",region:"Africa"},{label:"São Paulo (BRT)",value:"America/Sao_Paulo",region:"South America"},{label:"Buenos Aires (ART)",value:"America/Argentina/Buenos_Aires",region:"South America"},{label:"Santiago (CLT)",value:"America/Santiago",region:"South America"},{label:"Lima (PET)",value:"America/Lima",region:"South America"},{label:"Bogotá (COT)",value:"America/Bogota",region:"South America"},{label:"Caracas (VET)",value:"America/Caracas",region:"South America"}],C=function(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;return x.find(function(t){return t.value===e})?e:"America/New_York"}catch(e){return"America/New_York"}};function P(e){return P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P(e)}function D(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return F(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(F(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,F(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,F(m,"constructor",s),F(s,"constructor",l),l.displayName="GeneratorFunction",F(s,r,"GeneratorFunction"),F(m),F(m,r,"Generator"),F(m,a,function(){return this}),F(m,"toString",function(){return"[object Generator]"}),(D=function(){return{w:o,m:d}})()}function F(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}F=function(e,t,n,a){function o(t,n){F(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},F(e,t,n,a)}function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach(function(t){L(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function L(e,t,n){return(t=function(e){var t=function(e){if("object"!=P(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=P(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==P(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function B(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){G(o,a,r,c,i,"next",e)}function i(e){G(o,a,r,c,i,"throw",e)}c(void 0)})}}function U(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||z(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e){return function(e){if(Array.isArray(e))return q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||z(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e,t){if(e){if("string"==typeof e)return q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?q(e,t):void 0}}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const H=function(){var t,n,a,r,o,c,i=document.getElementById("mayo-event-form"),l=null==i||null===(t=i.dataset)||void 0===t?void 0:t.settings,s=window[l]||{},u=(null==i||null===(n=i.dataset)||void 0===n?void 0:n.categories)||"",m=(0,e.useMemo)(function(){return u?u.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[u]),d=(0,e.useMemo)(function(){return m.filter(function(e){return!e.startsWith("-")})},[m]),f=(0,e.useMemo)(function(){return m.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[m]),v=(null==i||null===(a=i.dataset)||void 0===a?void 0:a.tags)||"",y=(0,e.useMemo)(function(){return v?v.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[v]),p=(0,e.useMemo)(function(){return y.filter(function(e){return!e.startsWith("-")})},[y]),g=(0,e.useMemo)(function(){return y.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[y]),h=function(e){var t=document.createElement("textarea");return t.innerHTML=e,t.value},E=s.additionalRequiredFields?s.additionalRequiredFields.split(",").map(function(e){return e.trim()}):[],_=[].concat(["event_name","event_type","service_body","email","event_start_date","event_start_time","event_end_time","event_end_date","timezone"],W(E)),R=U((0,e.useState)({event_name:"",event_type:"",event_start_date:"",event_end_date:"",event_start_time:"",event_end_time:"",timezone:C(),description:"",flyer:null,location_name:"",location_address:"",location_details:"",categories:[],tags:[],service_body:"",email:"",contact_name:"",recurring_pattern:{type:"none",interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"",monthlyWeekday:""}}),2),w=R[0],S=R[1],N=U((0,e.useState)(!1),2),k=N[0],O=N[1],T=U((0,e.useState)(null),2),j=T[0],P=T[1],F=U((0,e.useState)([]),2),I=F[0],G=F[1],z=U((0,e.useState)([]),2),q=z[0],H=z[1],J=U((0,e.useState)(null),2),Y=J[0],V=(J[1],A().serviceBodies),$=U((0,e.useState)(null),2),Z=$[0],K=$[1],X=U((0,e.useState)(!1),2),Q=X[0],ee=X[1],te=U((0,e.useState)({default_service_bodies:""}),2),ne=te[0],ae=te[1];(0,e.useEffect)(function(){var e=function(){var e=B(D().m(function e(){var t,n,a,r,o;return D().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,b("/settings");case 1:n=e.v,a={default_service_bodies:n.default_service_bodies||""},void 0!==s.defaultServiceBodies&&""!==s.defaultServiceBodies&&(a.default_service_bodies=s.defaultServiceBodies),ae(a),(r=null===(t=a.default_service_bodies)||void 0===t?void 0:t.split(",").map(function(e){return e.trim()}).filter(function(e){return e}))&&1===r.length&&S(function(e){return M(M({},e),{},{service_body:r[0]})}),e.n=3;break;case 2:e.p=2,o=e.v,console.error("Error fetching service body settings:",o);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();e()},[s]),(0,e.useEffect)(function(){var e=function(){var e=B(D().m(function e(){var t,n,a,r,o,c,i,l,s;return D().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([fetch("/wp-json/wp/v2/categories?hide_empty=false&per_page=100"),fetch("/wp-json/wp/v2/tags?hide_empty=false&per_page=100")]);case 1:if(t=e.v,n=U(t,2),a=n[0],r=n[1],a.ok&&r.ok){e.n=2;break}throw new Error("Failed to fetch taxonomies");case 2:return e.n=3,a.json();case 3:return o=e.v,e.n=4,r.json();case 4:c=e.v,i=o.filter(function(e){var t=(e.slug||"").toLowerCase();return d.length>0?d.includes(t):!(f.length>0&&f.includes(t))}),l=c.filter(function(e){var t=(e.slug||"").toLowerCase();return p.length>0?p.includes(t):!(g.length>0&&g.includes(t))}),G(Array.isArray(i)?i:[]),H(Array.isArray(l)?l:[]),e.n=6;break;case 5:e.p=5,s=e.v,console.error("Error fetching taxonomies:",s),G([]),H([]);case 6:return e.a(2)}},e,null,[[0,5]])}));return function(){return e.apply(this,arguments)}}();e()},[d,f,p,g]);var re,oe,ce=function(){var e=B(D().m(function e(t){var n,a,r,o,c,i,l,s,u,m,d,f,v,y;return D().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),O(!0),P(null),e.p=1,!w.flyer){e.n=2;break}if(o=["image/jpeg","image/png","image/gif"],c=w.flyer.name.split(".").pop().toLowerCase(),i=["jpg","jpeg","png","gif"],o.includes(w.flyer.type)&&i.includes(c)){e.n=2;break}throw new Error("You did not attach a valid image file, so one will not be submitted. Please choose a valid image file (JPG, PNG, or GIF)");case 2:if(!((l=_.filter(function(e){return"flyer"===e?!w.flyer:!w[e]})).length>0)){e.n=3;break}throw new Error("Please fill in all required fields: ".concat(l.join(", ")));case 3:return s=new FormData,Object.keys(w).forEach(function(e){"flyer"===e&&w[e]instanceof File?s.append("flyer",w[e]):"categories"===e||"tags"===e?s.append(e,w[e].join(",")):"recurring_pattern"===e?s.append(e,JSON.stringify(w[e])):null!=w[e]&&""!==w[e]&&s.append(e,w[e])}),u=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.nonce)||(null===(a=document.querySelector("#_wpnonce"))||void 0===a?void 0:a.value)||(null===(r=window.wpApiSettings)||void 0===r?void 0:r.nonce),e.n=4,b("/submit-event",{method:"POST",body:s,credentials:"same-origin",headers:{"X-WP-Nonce":u}});case 4:if(!(m=e.v).id&&!m.success){e.n=5;break}P({type:"success",text:"Event submitted successfully!"}),f=null===(d=ne.default_service_bodies)||void 0===d?void 0:d.split(",").map(function(e){return e.trim()}).filter(function(e){return e}),v=f&&1===f.length?f[0]:"",console.log("Form reset - serviceBodySettings:",ne),console.log("Form reset - defaultIds:",f),console.log("Form reset - preservedServiceBody:",v),S({event_name:"",event_type:"",event_start_date:"",event_end_date:"",event_start_time:"",event_end_time:"",timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,description:"",flyer:null,location_name:"",location_address:"",location_details:"",categories:[],tags:[],service_body:v,email:"",contact_name:"",recurring_pattern:{type:"none",interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"",monthlyWeekday:""}}),K(null),e.n=6;break;case 5:throw new Error(m.message||"Failed to submit event");case 6:e.n=8;break;case 7:e.p=7,y=e.v,P({type:"error",text:y.message||"Error submitting form"});case 8:return e.p=8,O(!1),e.f(8);case 9:return e.a(2)}},e,null,[[1,7,8,9]])}));return function(t){return e.apply(this,arguments)}}(),ie=function(e){var t=e.target,n=t.name,a=t.value,r=t.files;if(r&&r[0]){var o=r[0],c=o.name.split(".").pop().toLowerCase();if(!["image/jpeg","image/png","image/gif"].includes(o.type)||!["jpg","jpeg","png","gif"].includes(c))return P({type:"error",text:"The selected file is not a valid image, so one will not be submitted. Please use a valid image file (JPG, PNG, or GIF)"}),e.target.value="",S(function(e){return M(M({},e),{},{flyer:null})}),void K(null);var i=new FileReader;i.onload=function(t){var n=new Image;n.onload=function(){K("image"),S(function(e){return M(M({},e),{},{flyer:o})}),P(null)},n.onerror=function(){P({type:"error",text:"The selected file is not a valid image, so one will not be submitted. Please choose a valid image file (JPG, PNG, or GIF)"}),e.target.value="",S(function(e){return M(M({},e),{},{flyer:null})}),K(null)},n.src=t.target.result},i.onerror=function(){P({type:"error",text:"Error reading the file"}),e.target.value="",S(function(e){return M(M({},e),{},{flyer:null})}),K(null)},i.readAsDataURL(o)}else S(function(e){return M(M({},e),{},L({},n,a))})},le=function(e){return _.includes(e)},se=function(){return w.event_start_date?new Date(w.event_start_date).getDate().toString():""},ue=function(){if(w.event_start_date){var e=new Date(w.event_start_date),t=Math.ceil(e.getDate()/7);return"".concat(t,",").concat(e.getDay())}return""},me=function(e){S(function(t){return M(M({},t),{},{recurring_pattern:M(M({},t.recurring_pattern),e)})})},de=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}];return Y?React.createElement("div",{className:"mayo-error"},Y):React.createElement("div",{className:"mayo-event-form"},React.createElement("form",{onSubmit:ce},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"event_name"},"Event Name ",le("event_name")&&"*"),React.createElement("input",{type:"text",id:"event_name",name:"event_name",value:w.event_name,onChange:ie,required:le("event_name")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"event_type"},"Event Type ",le("event_type")&&"*"),React.createElement("select",{id:"event_type",name:"event_type",value:w.event_type,onChange:ie,required:le("event_type")},React.createElement("option",{value:""},"Select Event Type"),React.createElement("option",{value:"Service"},"Service"),React.createElement("option",{value:"Activity"},"Activity"))),(!ne.default_service_bodies||(null===(oe=ne.default_service_bodies)||void 0===oe?void 0:oe.split(",").map(function(e){return e.trim()}).filter(function(e){return e})).length>1)&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"service_body"},"Service Body *"),React.createElement("select",{id:"service_body",name:"service_body",value:w.service_body,onChange:function(e){S(function(t){return M(M({},t),{},{service_body:e.target.value})})},required:!0},React.createElement("option",{value:""},"Select a service body"),(!ne.default_service_bodies||ne.default_service_bodies.includes("0"))&&React.createElement("option",{value:"0"},"Unaffiliated (0)"),function(){if(!ne.default_service_bodies)return V;var e=ne.default_service_bodies.split(",").map(function(e){return e.trim()}).filter(function(e){return e});return V.filter(function(t){return e.includes(t.id.toString())})}().map(function(e){return React.createElement("option",{key:e.id,value:e.id},e.name," (",e.id,")")}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"contact_name"},"Point of Contact Name (Private) *"),React.createElement("input",{type:"text",id:"contact_name",name:"contact_name",value:w.contact_name,onChange:ie,required:!0,placeholder:"Your name (will not be displayed publicly)"})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"email"},"Point of Contact Email (Private) *"),React.createElement("input",{type:"email",id:"email",name:"email",value:w.email,onChange:ie,required:!0,placeholder:"Your email address (will not be displayed publicly)"})),React.createElement("div",{className:"mayo-datetime-group"},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Start Date/Time *"),React.createElement("div",{className:"mayo-datetime-inputs"},React.createElement("input",{type:"date",id:"event_start_date",name:"event_start_date",value:w.event_start_date,onChange:ie,required:!0}),React.createElement("input",{type:"time",id:"event_start_time",name:"event_start_time",value:w.event_start_time,onChange:ie,required:!0}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"End Date/Time *"),React.createElement("div",{className:"mayo-datetime-inputs"},React.createElement("input",{type:"date",id:"event_end_date",name:"event_end_date",value:w.event_end_date,onChange:ie}),React.createElement("input",{type:"time",id:"event_end_time",name:"event_end_time",value:w.event_end_time,onChange:ie,required:!0})))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"timezone"},"Timezone ",le("timezone")&&"*"),React.createElement("select",{id:"timezone",name:"timezone",value:w.timezone,onChange:ie,required:le("timezone")},Object.entries((re={},x.forEach(function(e){re[e.region]||(re[e.region]=[]),re[e.region].push(e)}),re)).map(function(e){var t=U(e,2),n=t[0],a=t[1];return React.createElement("optgroup",{key:n,label:n},a.map(function(e){return React.createElement("option",{key:e.value,value:e.value},e.label)}))}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Recurring Pattern"),React.createElement("div",{className:"mayo-recurring-pattern"},React.createElement("select",{value:w.recurring_pattern.type,onChange:function(e){var t=e.target.value;me({type:t,interval:1,weekdays:[],endDate:"",monthlyType:"date",monthlyDate:"monthly"===t?se():"",monthlyWeekday:"monthly"===t?ue():""}),ee("none"!==t)}},React.createElement("option",{value:"none"},"No Recurrence"),React.createElement("option",{value:"daily"},"Daily"),React.createElement("option",{value:"weekly"},"Weekly"),React.createElement("option",{value:"monthly"},"Monthly")),Q&&React.createElement("div",{className:"mayo-recurring-options"},React.createElement("div",{className:"mayo-recurring-interval"},React.createElement("label",null,"Repeat every"),React.createElement("input",{type:"number",min:"1",value:w.recurring_pattern.interval,onChange:function(e){return me({interval:parseInt(e.target.value)})}}),React.createElement("span",null,"daily"===w.recurring_pattern.type?"days":"weekly"===w.recurring_pattern.type?"weeks":"months")),"weekly"===w.recurring_pattern.type&&React.createElement("div",{className:"mayo-weekday-controls"},React.createElement("label",null,"On these days"),de.map(function(e){return React.createElement("label",{key:e.value,className:"mayo-weekday-checkbox"},React.createElement("input",{type:"checkbox",checked:w.recurring_pattern.weekdays.includes(e.value),onChange:function(t){var n=t.target.checked?[].concat(W(w.recurring_pattern.weekdays),[e.value]):w.recurring_pattern.weekdays.filter(function(t){return t!==e.value});me({weekdays:n})}}),e.label)})),"monthly"===w.recurring_pattern.type&&React.createElement("div",{className:"mayo-monthly-pattern"},React.createElement("div",{className:"mayo-monthly-type"},React.createElement("label",null,"Monthly Pattern"),React.createElement("div",{className:"mayo-radio-group"},React.createElement("label",null,React.createElement("input",{type:"radio",name:"monthlyType",value:"date",checked:"date"===w.recurring_pattern.monthlyType,onChange:function(){return me({monthlyType:"date",monthlyDate:se(),monthlyWeekday:""})}}),"On a specific date"),React.createElement("label",null,React.createElement("input",{type:"radio",name:"monthlyType",value:"weekday",checked:"weekday"===w.recurring_pattern.monthlyType,onChange:function(){return me({monthlyType:"weekday",monthlyDate:"",monthlyWeekday:ue()})}}),"On a specific day"))),"date"===w.recurring_pattern.monthlyType&&React.createElement("div",{className:"mayo-monthly-date"},React.createElement("label",null,"Day of month"),React.createElement("input",{type:"number",min:"1",max:"31",value:w.recurring_pattern.monthlyDate||se(),onChange:function(e){return me({monthlyDate:e.target.value})}})),"weekday"===w.recurring_pattern.monthlyType&&React.createElement("div",{className:"mayo-monthly-weekday"},React.createElement("div",{className:"mayo-week-select"},React.createElement("label",null,"Week"),React.createElement("select",{value:(null===(r=w.recurring_pattern.monthlyWeekday)||void 0===r?void 0:r.split(",")[0])||"1",onChange:function(e){var t,n=(null===(t=w.recurring_pattern.monthlyWeekday)||void 0===t?void 0:t.split(",")[1])||"0";me({monthlyWeekday:"".concat(e.target.value,",").concat(n)})}},[{value:"1",label:"First"},{value:"2",label:"Second"},{value:"3",label:"Third"},{value:"4",label:"Fourth"},{value:"5",label:"Fifth"},{value:"-1",label:"Last"}].map(function(e){return React.createElement("option",{key:e.value,value:e.value},e.label)}))),React.createElement("div",{className:"mayo-day-select"},React.createElement("label",null,"Day"),React.createElement("select",{value:(null===(o=w.recurring_pattern.monthlyWeekday)||void 0===o?void 0:o.split(",")[1])||"0",onChange:function(e){var t,n=(null===(t=w.recurring_pattern.monthlyWeekday)||void 0===t?void 0:t.split(",")[0])||"1";me({monthlyWeekday:"".concat(n,",").concat(e.target.value)})}},de.map(function(e){return React.createElement("option",{key:e.value,value:e.value},e.label)}))))),React.createElement("div",{className:"mayo-recurring-end-date"},React.createElement("label",null,"End Date (optional)"),React.createElement("input",{type:"date",value:w.recurring_pattern.endDate,onChange:function(e){return me({endDate:e.target.value})}}))))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"description"},"Description ",le("description")&&"*"),React.createElement("textarea",{id:"description",name:"description",value:w.description,onChange:ie,required:le("description")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Event Flyer ",le("flyer")&&"*"),React.createElement("div",{className:"mayo-upload-section"},!Z&&React.createElement(React.Fragment,null,React.createElement("input",{type:"file",id:"flyer-upload",name:"flyer",accept:"image/*",onChange:ie,required:le("flyer"),className:"mayo-file-input"}),React.createElement("label",{htmlFor:"flyer-upload",className:"mayo-upload-button"},"Upload Flyer"),React.createElement("p",{className:"mayo-upload-info"},"Supported file types: Images (.jpg, .jpeg, .png, .gif)",le("flyer")&&" (Required)"),j&&"error"===j.type&&j.text.includes("image")&&React.createElement("p",{className:"mayo-upload-error"},j.text)),Z&&React.createElement("div",{className:"mayo-upload-preview"},React.createElement("p",null,"Selected ","Image"===Z,": "," ",(null===(c=w.flyer)||void 0===c?void 0:c.name)||"No file selected"),React.createElement("button",{type:"button",onClick:function(){S(function(e){return M(M({},e),{},{flyer:null})}),K(null)},className:"mayo-clear-upload"},"Clear Upload")))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"location_name"},"Location Name"),React.createElement("input",{type:"text",id:"location_name",name:"location_name",value:w.location_name,onChange:ie})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"location_address"},"Address"),React.createElement("input",{type:"text",id:"location_address",name:"location_address",value:w.location_address,onChange:ie})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"location_details"},"Location Details"),React.createElement("textarea",{id:"location_details",name:"location_details",value:w.location_details,onChange:ie,placeholder:"Additional details about the location (e.g., parking, entrance info)"})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Categories"),React.createElement("div",{className:"mayo-taxonomy-list"},Array.isArray(I)&&I.map(function(e){return React.createElement("label",{key:null==e?void 0:e.id,className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:w.categories.includes(null==e?void 0:e.id),onChange:function(t){var n=t.target.checked?[].concat(W(w.categories),[null==e?void 0:e.id]):w.categories.filter(function(t){return t!==(null==e?void 0:e.id)});S(M(M({},w),{},{categories:n}))}}),null!=e&&e.name?h(e.name):"Unnamed Category")}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Tags"),React.createElement("div",{className:"mayo-taxonomy-list"},Array.isArray(q)&&q.map(function(e){return React.createElement("label",{key:(null==e?void 0:e.id)||"default",className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:w.tags.includes(null==e?void 0:e.name),onChange:function(t){var n=t.target.checked?[].concat(W(w.tags),[null==e?void 0:e.name]):w.tags.filter(function(t){return t!==(null==e?void 0:e.name)});S(M(M({},w),{},{tags:n}))}}),null!=e&&e.name?h(e.name):"Unnamed Tag")}))),React.createElement("button",{type:"submit",disabled:k,className:"mayo-submit-button"},k?"Submitting...":"Submit Event"),j&&React.createElement("div",{className:"mayo-message mayo-message-".concat(j.type)},"string"==typeof j.text?j.text:"An error occurred while submitting the form. Please try again.")))},J=function(e){var t=e.address,n=e.className,a=void 0===n?"mayo-location-address":n;if(!t)return null;var r=t.match(/(https?:\/\/[^\s]+)/g);return r&&r.length>0?React.createElement("a",{href:r[0],target:"_blank",rel:"noopener noreferrer",className:a,onClick:function(e){return e.stopPropagation()}},t):React.createElement("a",{href:"https://maps.google.com?q=".concat(encodeURIComponent(t)),target:"_blank",rel:"noopener noreferrer",className:a,onClick:function(e){return e.stopPropagation()}},t)};function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const V=function(t){var n,a,r,o,c=t.event,i=t.timeFormat,l=t.forceExpanded,s=(r=(0,e.useState)(!1),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(r,o)||function(e,t){if(e){if("string"==typeof e)return Y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],b=s[1];(0,e.useEffect)(function(){b(l)},[l]);var h=c.meta.event_start_date&&""!==c.meta.event_start_date&&!isNaN(new Date(c.meta.event_start_date+"T00:00:00").getTime()),E=h?new Date(c.meta.event_start_date+"T00:00:00"):null,_=c.meta.event_end_date&&c.meta.event_start_date!==c.meta.event_end_date,R=_?new Date(c.meta.event_end_date+"T00:00:00"):null,w=A(),S=w.getServiceBodyName,N=w.updateExternalServiceBodies;(0,e.useEffect)(function(){c.external_source&&c.external_source.service_bodies&&N(c.external_source.id,c.external_source.service_bodies)},[null===(n=c.external_source)||void 0===n?void 0:n.id,null===(a=c.external_source)||void 0===a?void 0:a.service_bodies,N]);var k=c.categories.map(function(e){return"mayo-event-category-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-"))}).join(" "),O=c.tags.map(function(e){return"mayo-event-tag-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-"))}).join(" "),T=c.meta.event_type?"mayo-event-type-".concat(f(c.meta.event_type).toLowerCase().replace(/\s+/g,"-")):"",j=c.external_source?c.external_source.id:"local",x=["mayo-event-card",k,O,T,"mayo-event-service-body-".concat(f(S(c.meta.service_body,j)).toLowerCase().replace(/\s+/g,"-"))].filter(Boolean).join(" ");return React.createElement("div",{className:x},React.createElement("div",{className:"mayo-event-header",onClick:function(){return b(!u)}},React.createElement("div",{className:"mayo-event-date-badge"},h?React.createElement(React.Fragment,null,_?React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[E.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},E.getDate()),React.createElement("span",{className:"mayo-event-month"},d[E.getMonth()],React.createElement("span",{className:"mayo-event-year"},E.getFullYear())),React.createElement("span",{className:"mayo-event-day-name"},m[R.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},R.getDate()),React.createElement("span",{className:"mayo-event-month"},d[R.getMonth()],React.createElement("span",{className:"mayo-event-year"},R.getFullYear()))):React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[E.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},E.getDate()),React.createElement("span",{className:"mayo-event-month"},d[E.getMonth()],React.createElement("span",{className:"mayo-event-year"},E.getFullYear())))):React.createElement("span",{className:"mayo-event-date-error"},"No Date")),React.createElement("div",{className:"mayo-event-summary"},React.createElement("h3",{dangerouslySetInnerHTML:{__html:c.title.rendered}}),!h&&React.createElement("div",{className:"mayo-event-date-warning"},"This event has no date set"),React.createElement("div",{className:"mayo-event-brief"},React.createElement("span",{className:"mayo-event-type"},c.meta.event_type),p(c,i)&&React.createElement("span",{className:"mayo-event-time"},p(c,i)),c.external_source&&React.createElement("span",{className:"mayo-event-source"},"Source: ",c.external_source.url),c.meta.service_body&&React.createElement("span",{className:"mayo-event-service-body mayo-event-service-body-small"},S(c.meta.service_body,j)),(c.categories.length>0||c.tags.length>0)&&React.createElement("div",{className:"mayo-event-brief-taxonomies"},c.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category mayo-event-category-small"},e.name)}),c.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag mayo-event-tag-small"},e.name)})))),React.createElement("span",{className:"mayo-caret dashicons ".concat(u?"dashicons-arrow-up-alt2":"dashicons-arrow-down-alt2")})),u&&React.createElement("div",{className:"mayo-event-details"},React.createElement("div",{className:"mayo-event-content"},React.createElement("div",{className:"mayo-event-metadata"},React.createElement("div",{className:"mayo-event-datetime-details"},React.createElement("h4",null,"Date & Time"),React.createElement("p",null,React.createElement("strong",null,"Start:")," ",c.meta.event_start_date," at ",v(c.meta.event_start_time,i),c.meta.timezone&&" (".concat(y(c.meta.timezone),")")),(c.meta.event_end_date||c.meta.event_end_time)&&React.createElement("p",null,React.createElement("strong",null,"End:")," ",c.meta.event_end_date||c.meta.event_start_date," at ",v(c.meta.event_end_time,i))),c.meta.event_type&&React.createElement("div",{className:"mayo-event-type-details"},React.createElement("h4",null,"Event Type"),React.createElement("p",null,c.meta.event_type))),React.createElement("div",{className:"mayo-event-description"},React.createElement("h4",null,"Description"),React.createElement("div",{dangerouslySetInnerHTML:{__html:c.content.rendered}})),c.featured_image&&React.createElement("div",{className:"mayo-event-attachments"},React.createElement("h4",null,"Event Flyer"),React.createElement("div",{className:"mayo-event-image"},React.createElement("div",{className:"mayo-image-actions"},React.createElement("a",{href:c.featured_image,download:!0,className:"mayo-image-link",onClick:function(e){return e.stopPropagation()}},"Download Flyer")),React.createElement("a",{href:c.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:c.featured_image,alt:c.title.rendered}))))),(c.meta.location_name||c.meta.location_address||c.meta.location_details)&&React.createElement("div",{className:"mayo-event-location"},React.createElement("h4",null,"Location"),c.meta.location_name&&React.createElement("p",{className:"mayo-location-name"},c.meta.location_name),c.meta.location_address&&React.createElement("p",{className:"mayo-location-address"},React.createElement(J,{address:c.meta.location_address})),c.meta.location_details&&React.createElement("p",{className:"mayo-location-details"},c.meta.location_details)),c.meta.service_body&&React.createElement("div",null,React.createElement("h4",null,"Service Body"),React.createElement("p",null,S(c.meta.service_body,j))),React.createElement("div",{className:"mayo-event-taxonomies"},c.categories.length>0&&React.createElement("div",{className:"mayo-archive-event-categories"},c.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category"},e.name)})),c.tags.length>0&&React.createElement("div",{className:"mayo-archive-event-tags"},c.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag"},e.name)}))),c.meta.recurring_pattern&&"none"!==c.meta.recurring_pattern.type&&React.createElement("div",{className:"mayo-event-recurring"},g(c.meta.recurring_pattern)),React.createElement("div",{className:"mayo-event-actions"},React.createElement("a",{href:c.link,className:"mayo-read-more",onClick:function(e){return e.stopPropagation()}},"Read More"))))},$=function(e){var t=e.event,n=e.timeFormat,a=t.meta.event_start_date&&""!==t.meta.event_start_date&&!isNaN(new Date(t.meta.event_start_date+"T00:00:00").getTime()),r=a?new Date(t.meta.event_start_date+"T00:00:00"):null,o=t.meta.event_end_date&&t.meta.event_start_date!==t.meta.event_end_date,c=o?new Date(t.meta.event_end_date+"T00:00:00"):null;return React.createElement("div",{key:"".concat(t.id,"-").concat(t.meta.event_start_date),className:"mayo-widget-event"},React.createElement("div",{className:"mayo-widget-event-date"},a?React.createElement(React.Fragment,null,o?React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[r.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},r.getDate()),React.createElement("span",{className:"mayo-event-month"},d[r.getMonth()]),React.createElement("span",{className:"mayo-event-range-separator"},"-"),React.createElement("span",{className:"mayo-event-day-name"},m[c.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},c.getDate()),React.createElement("span",{className:"mayo-event-month"},d[c.getMonth()])):React.createElement(React.Fragment,null,React.createElement("span",{className:"mayo-event-day-name"},m[r.getDay()]),React.createElement("span",{className:"mayo-event-day-number"},r.getDate()),React.createElement("span",{className:"mayo-event-month"},d[r.getMonth()]))):React.createElement("span",{className:"mayo-event-date-error"},"No Date")),React.createElement("h4",{className:"mayo-widget-event-title"},t.title.rendered),!a&&React.createElement("div",{className:"mayo-event-date-warning"},"Event date not set"),p(t,n)&&React.createElement("div",{className:"mayo-widget-event-time"},p(t,n)),React.createElement("a",{href:t.link,className:"mayo-widget-event-link"},t.featured_image&&React.createElement("img",{src:t.featured_image,alt:t.title.rendered,className:"mayo-widget-event-image"})),React.createElement("div",{className:"mayo-widget-event-actions"},React.createElement("a",{href:t.link,className:"mayo-widget-event-link"},"Read More...")))},Z=function(t){var n=t.event,a=t.timeFormat,r=t.onClose,o=A().getServiceBodyName;(0,e.useEffect)(function(){var e=function(e){"Escape"===e.key&&r()};return document.addEventListener("keydown",e),document.body.style.overflow="hidden",function(){document.removeEventListener("keydown",e),document.body.style.overflow=""}},[r]);var c=n.meta.event_start_date&&""!==n.meta.event_start_date&&!isNaN(new Date(n.meta.event_start_date+"T00:00:00").getTime()),i=c?new Date(n.meta.event_start_date+"T00:00:00"):null,l=n.meta.event_end_date&&n.meta.event_start_date!==n.meta.event_end_date,s=l?new Date(n.meta.event_end_date+"T00:00:00"):null,u=n.external_source?n.external_source.id:"local";return React.createElement("div",{className:"mayo-event-modal-backdrop",onClick:function(e){e.target===e.currentTarget&&r()}},React.createElement("div",{className:"mayo-event-modal"},React.createElement("button",{className:"mayo-event-modal-close",onClick:r,title:"Close"},React.createElement("span",{className:"dashicons dashicons-no-alt"})),React.createElement("div",{className:"mayo-event-modal-header"},React.createElement("div",{className:"mayo-event-modal-date"},c?l?React.createElement("span",null,m[i.getDay()],", ",d[i.getMonth()]," ",i.getDate(),", ",i.getFullYear()," – ",m[s.getDay()],", ",d[s.getMonth()]," ",s.getDate(),", ",s.getFullYear()):React.createElement("span",null,m[i.getDay()],", ",d[i.getMonth()]," ",i.getDate(),", ",i.getFullYear()):React.createElement("span",{className:"mayo-event-date-error"},"No Date Set")),React.createElement("h2",{dangerouslySetInnerHTML:{__html:n.title.rendered}}),n.meta.event_type&&React.createElement("span",{className:"mayo-event-modal-type"},n.meta.event_type)),React.createElement("div",{className:"mayo-event-modal-body"},React.createElement("div",{className:"mayo-event-modal-meta"},React.createElement("div",{className:"mayo-event-modal-time"},React.createElement("span",{className:"dashicons dashicons-clock"}),React.createElement("span",null,p(n,a),n.meta.timezone&&" (".concat(y(n.meta.timezone),")"))),(n.meta.location_name||n.meta.location_address)&&React.createElement("div",{className:"mayo-event-modal-location"},React.createElement("span",{className:"dashicons dashicons-location"}),React.createElement("span",null,n.meta.location_name&&React.createElement("strong",null,n.meta.location_name),n.meta.location_name&&n.meta.location_address&&React.createElement("br",null),n.meta.location_address&&React.createElement(J,{address:n.meta.location_address}),n.meta.location_details&&React.createElement(React.Fragment,null,React.createElement("br",null),React.createElement("em",null,n.meta.location_details)))),n.meta.service_body&&React.createElement("div",{className:"mayo-event-modal-service-body"},React.createElement("span",{className:"dashicons dashicons-groups"}),React.createElement("span",null,o(n.meta.service_body,u))),n.external_source&&React.createElement("div",{className:"mayo-event-modal-source"},React.createElement("span",{className:"dashicons dashicons-admin-site"}),React.createElement("span",null,"Source: ",n.external_source.url))),n.content.rendered&&React.createElement("div",{className:"mayo-event-modal-description"},React.createElement("div",{dangerouslySetInnerHTML:{__html:n.content.rendered}})),n.featured_image&&React.createElement("div",{className:"mayo-event-modal-image"},React.createElement("a",{href:n.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:n.featured_image,alt:n.title.rendered})),React.createElement("a",{href:n.featured_image,download:!0,className:"mayo-image-download"},React.createElement("span",{className:"dashicons dashicons-download"}),"Download Flyer")),(n.categories.length>0||n.tags.length>0)&&React.createElement("div",{className:"mayo-event-modal-taxonomies"},n.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category"},e.name)}),n.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag"},e.name)})),n.meta.recurring_pattern&&"none"!==n.meta.recurring_pattern.type&&React.createElement("div",{className:"mayo-event-modal-recurring"},React.createElement("span",{className:"dashicons dashicons-update"}),React.createElement("span",null,g(n.meta.recurring_pattern)))),React.createElement("div",{className:"mayo-event-modal-footer"},React.createElement("a",{href:n.link,className:"mayo-event-modal-link"},"View Full Details",React.createElement("span",{className:"dashicons dashicons-arrow-right-alt2"})))))};function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach(function(t){ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ee(e,t,n){return(t=function(e){var t=function(e){if("object"!=K(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==K(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ne(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ne(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const ae=function(t){for(var n,a=t.events,r=t.timeFormat,o=t.onMonthChange,c=t.loading,i=te((0,e.useState)(new Date),2),l=i[0],s=i[1],u=te((0,e.useState)(null),2),m=u[0],d=u[1],v=te((0,e.useState)(null),2),y=v[0],p=v[1],g=te((0,e.useState)({x:0,y:0}),2),b=g[0],h=g[1],E=A().getServiceBodyName,_=function(e){var t,n=["mayo-calendar-event"];if(null!==(t=e._calendarMeta)&&void 0!==t&&t.isMultiDay&&(n.push("mayo-multi-day-event"),e._calendarMeta.isFirstDay?n.push("mayo-multi-day-start"):e._calendarMeta.isLastDay?n.push("mayo-multi-day-end"):n.push("mayo-multi-day-middle")),e.categories.forEach(function(e){n.push("mayo-event-category-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-")))}),e.tags.forEach(function(e){n.push("mayo-event-tag-".concat(f(e.name).toLowerCase().replace(/\s+/g,"-")))}),e.meta.event_type&&n.push("mayo-event-type-".concat(f(e.meta.event_type).toLowerCase().replace(/\s+/g,"-"))),e.meta.service_body){var a=e.external_source?e.external_source.id:"local",r=E(e.meta.service_body,a);n.push("mayo-event-service-body-".concat(f(r).toLowerCase().replace(/\s+/g,"-")))}return n.join(" ")},R=l.getFullYear(),w=l.getMonth(),S=new Date(R,w,1),N=new Date(R,w+1,0).getDate(),k=S.getDay(),O=function(e){return"".concat(e.getFullYear(),"-").concat(String(e.getMonth()+1).padStart(2,"0"),"-").concat(String(e.getDate()).padStart(2,"0"))},T=(0,e.useMemo)(function(){var e={};return a.forEach(function(t){if(t.meta.event_start_date)for(var n=new Date(t.meta.event_start_date+"T00:00:00"),a=t.meta.event_end_date?new Date(t.meta.event_end_date+"T00:00:00"):n,r=new Date(n);r<=a;){var o=O(r);e[o]||(e[o]=[]);var c=r.getTime()===n.getTime(),i=r.getTime()===a.getTime(),l=n.getTime()!==a.getTime();e[o].push(Q(Q({},t),{},{_calendarMeta:{isFirstDay:c,isLastDay:i,isMultiDay:l,displayDate:new Date(r)}})),r.setDate(r.getDate()+1)}}),Object.keys(e).forEach(function(t){e[t].sort(function(e,t){var n=e.meta.event_start_time||"00:00",a=t.meta.event_start_time||"00:00";return n.localeCompare(a)})}),e},[a]),j=function(e){if(!e)return"";var t=te(e.split(":"),2),n=t[0],a=t[1],o=parseInt(n,10);if("24hour"===r)return e;var c=o>=12?"pm":"am";return"".concat(o%12||12,":").concat(a).concat(c)},x=function(e){d(e)},C=function(e,t){var n=t.currentTarget.getBoundingClientRect();h({x:n.left+window.scrollX,y:n.bottom+window.scrollY+4}),p(e)},P=function(){p(null)},D=[],F=0;F<k;F++)D.push(React.createElement("div",{key:"empty-".concat(F),className:"mayo-calendar-day empty"}));for(var I=1;I<=N;I++){var M="".concat(R,"-").concat(String(w+1).padStart(2,"0"),"-").concat(String(I).padStart(2,"0")),L=T[M]||[],G=(new Date).toDateString()===new Date(R,w,I).toDateString();D.push(React.createElement("div",{key:M,className:"mayo-calendar-day ".concat(G?"today":""," ").concat(L.length>0?"has-events":"")},React.createElement("span",{className:"mayo-calendar-date"},I),React.createElement("div",{className:"mayo-calendar-events"},L.map(function(e,t){var n,a;return React.createElement("div",{key:"".concat(e.id,"-").concat(t),className:_(e),onClick:function(){return x(e)},onMouseEnter:function(t){return C(e,t)},onMouseLeave:P},e.meta.event_start_time&&(!(null!==(n=e._calendarMeta)&&void 0!==n&&n.isMultiDay)||(null===(a=e._calendarMeta)||void 0===a?void 0:a.isFirstDay))&&React.createElement("span",{className:"event-time"},j(e.meta.event_start_time)),React.createElement("span",{className:"event-title",dangerouslySetInnerHTML:{__html:e.title.rendered}}))}))))}return React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-calendar"},React.createElement("div",{className:"mayo-calendar-header"},React.createElement("button",{onClick:function(){var e=new Date(R,w-1,1);s(e),o&&o(e)},title:"Previous Month"},React.createElement("span",{className:"dashicons dashicons-arrow-left-alt2"})),React.createElement("h2",null,["January","February","March","April","May","June","July","August","September","October","November","December"][w]," ",R),React.createElement("div",{className:"mayo-calendar-header-right"},React.createElement("button",{onClick:function(){var e=new Date;s(e),o&&o(e)},className:"mayo-calendar-today-button",title:"Go to Today"},"Today"),React.createElement("button",{onClick:function(){var e=new Date(R,w+1,1);s(e),o&&o(e)},title:"Next Month"},React.createElement("span",{className:"dashicons dashicons-arrow-right-alt2"})))),React.createElement("div",{className:"mayo-calendar-grid".concat(c?" loading":"")},React.createElement("div",{className:"mayo-calendar-weekdays"},["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(function(e){return React.createElement("div",{key:e,className:"mayo-calendar-weekday"},e)})),React.createElement("div",{className:"mayo-calendar-days"},D),c&&React.createElement("div",{className:"mayo-calendar-loading"},React.createElement("span",null,"Loading events...")))),m&&React.createElement(Z,{event:m,timeFormat:r,onClose:function(){d(null)}}),y&&React.createElement("div",{className:"mayo-calendar-tooltip",style:{position:"absolute",left:b.x,top:b.y}},(n=function(e){var t,n,a={title:(t=e.title.rendered.replace(/<[^>]*>/g,""),n=document.createElement("textarea"),n.innerHTML=t,n.value),time:null,location:null,eventType:null,serviceBody:null};if(e.meta.event_start_time&&(a.time=j(e.meta.event_start_time),e.meta.event_end_time&&(a.time+=" - "+j(e.meta.event_end_time))),e.meta.location_name&&(a.location=e.meta.location_name),e.meta.event_type&&(a.eventType=e.meta.event_type),e.meta.service_body){var r=e.external_source?e.external_source.id:"local",o=E(e.meta.service_body,r);o&&o!==e.meta.service_body&&(a.serviceBody=o)}return a}(y),React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-tooltip-title"},n.title),n.time&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-clock"}),n.time),n.location&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-location"}),n.location),n.eventType&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-tag"}),n.eventType),n.serviceBody&&React.createElement("div",{className:"mayo-tooltip-row"},React.createElement("span",{className:"dashicons dashicons-groups"}),n.serviceBody)))))};function re(e){return re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},re(e)}function oe(e){return function(e){if(Array.isArray(e))return ye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ve(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(n),!0).forEach(function(t){le(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ce(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function le(e,t,n){return(t=function(e){var t=function(e){if("object"!=re(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=re(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==re(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function se(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return ue(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(ue(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,ue(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,ue(m,"constructor",s),ue(s,"constructor",l),l.displayName="GeneratorFunction",ue(s,r,"GeneratorFunction"),ue(m),ue(m,r,"Generator"),ue(m,a,function(){return this}),ue(m,"toString",function(){return"[object Generator]"}),(se=function(){return{w:o,m:d}})()}function ue(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}ue=function(e,t,n,a){function o(t,n){ue(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},ue(e,t,n,a)}function me(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function de(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){me(o,a,r,c,i,"next",e)}function i(e){me(o,a,r,c,i,"throw",e)}c(void 0)})}}function fe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||ve(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ve(e,t){if(e){if("string"==typeof e)return ye(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ye(e,t):void 0}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const pe=function(t){var n=t.widget,a=void 0!==n&&n,r=t.settings,o=void 0===r?{}:r,c=(0,e.useRef)(null),i=(0,e.useRef)(null),l=(0,e.useRef)(null),s=fe((0,e.useState)(!0),2),u=s[0],m=s[1],d=fe((0,e.useState)(null),2),f=d[0],v=d[1],y=fe((0,e.useState)([]),2),p=y[0],g=y[1],h=fe((0,e.useState)(1),2),E=h[0],_=h[1],R=fe((0,e.useState)("12hour"),2),w=R[0],S=R[1],N=fe((0,e.useState)(!1),2),k=N[0],O=N[1],T=fe((0,e.useState)(!0),2),j=T[0],x=T[1],P=fe((0,e.useState)(1),2),D=P[0],F=P[1],I=fe((0,e.useState)(!1),2),M=I[0],L=I[1],G=fe((0,e.useState)(new Set),2),B=(G[0],G[1]),U=fe((0,e.useState)(!1),2),W=(U[0],U[1],fe((0,e.useState)(!1),2)),z=(W[0],W[1],fe((0,e.useState)(!0),2)),q=(z[0],z[1],fe((0,e.useState)(!1),2)),H=q[0],J=q[1],Y=fe((0,e.useState)(!1),2),Z=Y[0],K=Y[1],X=fe((0,e.useState)((null==o?void 0:o.defaultView)||"list"),2),Q=X[0],ee=X[1],te=fe((0,e.useState)(new Date),2),ne=te[0],re=te[1],ce=fe((0,e.useState)([]),2),le=ce[0],ue=ce[1],me=fe((0,e.useState)(!1),2),ve=me[0],ye=me[1],pe=A().updateExternalServiceBodies,ge=C();(0,e.useEffect)(function(){O(a),S((null==o?void 0:o.timeFormat)||"12hour"),_(1),g([]),m(!0),v(null),x(!0),F(1),we(1)},[o,a]),(0,e.useEffect)(function(){var e=he("autoexpand"),t=null!==e?"true"===e:(null==o?void 0:o.autoexpand)||!1;J(t)},[null==o?void 0:o.autoexpand]),(0,e.useEffect)(function(){var e=he("view"),t=null!==e?e:(null==o?void 0:o.defaultView)||"list";"calendar"!==t&&"list"!==t||ee(t)},[null==o?void 0:o.defaultView]),(0,e.useEffect)(function(){H&&p.length>0&&(L(!0),B(new Set(p.map(function(e){return e.id}))))},[H,p]);var be=(0,e.useCallback)(function(e){e.length&&null!=o&&o.sourceIds&&(l.current&&clearTimeout(l.current),l.current=setTimeout(function(){var t=new Map;e.forEach(function(e){if(e.external_source&&e.external_source.service_bodies){var n=e.external_source.id,a=e.external_source.service_bodies;o.sourceIds.includes(n)&&t.set(n,a)}}),t.forEach(function(e,t){pe(t,e)})},300))},[null==o?void 0:o.sourceIds,pe]);(0,e.useEffect)(function(){p.length>0&&be(p)},[p,be]),(0,e.useEffect)(function(){if(null!=o&&o.infiniteScroll&&i.current&&j){var e=new IntersectionObserver(function(e){e[0].isIntersecting&&j&&!u&&E<D&&we(E+1)},{threshold:1});return e.observe(i.current),function(){i.current&&e.unobserve(i.current)}}},[j,u,E,D,null==o?void 0:o.infiniteScroll]);var he=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=new URLSearchParams(window.location.search);return n.has(e)?n.get(e):t},Ee=function(){var e,t=[],n={timeFormat:(null==o?void 0:o.timeFormat)||"12hour",perPage:(null==o?void 0:o.perPage)||10,infiniteScroll:null===(e=null==o?void 0:o.infiniteScroll)||void 0===e||e,autoexpand:(null==o?void 0:o.autoexpand)||!1,categories:(null==o?void 0:o.categories)||"",categoryRelation:(null==o?void 0:o.categoryRelation)||"OR",tags:(null==o?void 0:o.tags)||"",eventType:(null==o?void 0:o.eventType)||"",status:(null==o?void 0:o.status)||"publish",serviceBody:(null==o?void 0:o.serviceBody)||"",sourceIds:(null==o?void 0:o.sourceIds)||""};return"12hour"!==n.timeFormat&&t.push('time_format="'.concat(n.timeFormat,'"')),10!==n.perPage&&t.push('per_page="'.concat(n.perPage,'"')),!0!==n.infiniteScroll&&t.push('infinite_scroll="'.concat(n.infiniteScroll?"true":"false",'"')),!1!==n.autoexpand&&t.push('autoexpand="'.concat(n.autoexpand?"true":"false",'"')),n.categories&&t.push('categories="'.concat(n.categories,'"')),"OR"!==n.categoryRelation&&t.push('category_relation="'.concat(n.categoryRelation,'"')),n.tags&&t.push('tags="'.concat(n.tags,'"')),n.eventType&&t.push('event_type="'.concat(n.eventType,'"')),"publish"!==n.status&&t.push('status="'.concat(n.status,'"')),n.serviceBody&&t.push('service_body="'.concat(n.serviceBody,'"')),n.sourceIds&&t.push('source_ids="'.concat(n.sourceIds,'"')),t.length>0?"[mayo_event_list ".concat(t.join(" "),"]"):"[mayo_event_list]"},_e=function(){var e=de(se().m(function e(){var t,n,a;return se().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=Ee(),e.p=1,e.n=2,navigator.clipboard.writeText(t);case 2:console.log("Shortcode copied to clipboard:",t),e.n=4;break;case 3:e.p=3,a=e.v,console.error("Failed to copy shortcode:",a),(n=document.createElement("textarea")).value=t,document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy"),console.log("Shortcode copied to clipboard (fallback):",t)}catch(e){console.error("Fallback copy failed:",e)}document.body.removeChild(n);case 4:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),Re=function(e){var t=[],n=[];return e.forEach(function(e){var a=e.meta.event_start_date&&""!==e.meta.event_start_date&&!isNaN(new Date(e.meta.event_start_date).getTime()),r=ie(ie({},e),{},{hasValidDate:a,isInvalid:!a});a?t.push(r):n.push(r)}),[].concat(t,n)},we=function(){var e=de(se().m(function e(){var t,n,a,r,c,i,l,s,u,d,f,y,p,h,E,R,w,S,N,k,O=arguments;return se().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=O.length>0&&void 0!==O[0]?O[0]:1,m(!0),e.p=1,a=null!==he("status")?he("status"):(null==o?void 0:o.status)||"publish",r=null!==he("event_type")?he("event_type"):(null==o?void 0:o.eventType)||"",c=null!==he("service_body")?he("service_body"):(null==o?void 0:o.serviceBody)||"",i=null!==he("relation")?he("relation"):(null==o?void 0:o.relation)||"AND",l=null!==he("categories")?he("categories"):(null==o?void 0:o.categories)||"",s=null!==he("category_relation")?he("category_relation"):(null==o?void 0:o.categoryRelation)||"OR",u=null!==he("tags")?he("tags"):(null==o?void 0:o.tags)||"",d=null!==he("source_ids")?he("source_ids"):(null==o?void 0:o.sourceIds)||"",f=null!==he("archive")?he("archive"):null!=o&&o.showArchived?"true":"false",y=null!==he("infinite_scroll")?"true"===he("infinite_scroll"):null===(n=null==o?void 0:o.infiniteScroll)||void 0===n||n,p=null!==he("per_page")?parseInt(he("per_page")):(null==o?void 0:o.perPage)||10,h=null!==he("order")?he("order"):(null==o?void 0:o.order)||"ASC",E="/events?status=".concat(a)+"&event_type=".concat(r)+"&service_body=".concat(c)+"&relation=".concat(i)+"&categories=".concat(l)+"&category_relation=".concat(s)+"&tags=".concat(u)+"&source_ids=".concat(d)+"&page=".concat(t)+"&per_page=".concat(p)+"&timezone=".concat(encodeURIComponent(ge))+"&archive=".concat(f)+"&order=".concat(h),e.n=2,b(E);case 2:R=e.v,w=Array.isArray(R)?R:R.events||[],S=R.pagination||{current_page:1,total_pages:Math.ceil(w.length/((null==o?void 0:o.perPage)||10))},N=Re(w),_(S.current_page),F(S.total_pages),x(S.current_page<S.total_pages),g(t>1&&y?function(e){return[].concat(oe(e),oe(N))}:N),m(!1),e.n=4;break;case 3:e.p=3,k=e.v,console.error("Error in fetchEvents:",k),v("Failed to load events: ".concat(k.message)),m(!1),x(!1);case 4:return e.a(2)}},e,null,[[1,3]])}));return function(){return e.apply(this,arguments)}}(),Se=function(){var e=de(se().m(function e(t,n){var a,r,c,i,l,s,u,m,d,f,v,y,p,g,h,E,_;return se().w(function(e){for(;;)switch(e.p=e.n){case 0:return ye(!0),e.p=1,a=null!==he("status")?he("status"):(null==o?void 0:o.status)||"publish",r=null!==he("event_type")?he("event_type"):(null==o?void 0:o.eventType)||"",c=null!==he("service_body")?he("service_body"):(null==o?void 0:o.serviceBody)||"",i=null!==he("relation")?he("relation"):(null==o?void 0:o.relation)||"AND",l=null!==he("categories")?he("categories"):(null==o?void 0:o.categories)||"",s=null!==he("category_relation")?he("category_relation"):(null==o?void 0:o.categoryRelation)||"OR",u=null!==he("tags")?he("tags"):(null==o?void 0:o.tags)||"",m=null!==he("source_ids")?he("source_ids"):(null==o?void 0:o.sourceIds)||"",d=null!==he("order")?he("order"):(null==o?void 0:o.order)||"ASC",f="".concat(t,"-").concat(String(n+1).padStart(2,"0"),"-01"),v=new Date(t,n+1,0).getDate(),y="".concat(t,"-").concat(String(n+1).padStart(2,"0"),"-").concat(String(v).padStart(2,"0")),p="/events?status=".concat(a)+"&event_type=".concat(r)+"&service_body=".concat(c)+"&relation=".concat(i)+"&categories=".concat(l)+"&category_relation=".concat(s)+"&tags=".concat(u)+"&source_ids=".concat(m)+"&timezone=".concat(encodeURIComponent(ge))+"&order=".concat(d)+"&start_date=".concat(f)+"&end_date=".concat(y)+"&per_page=100",e.n=2,b(p);case 2:g=e.v,h=Array.isArray(g)?g:g.events||[],E=Re(h),ue(E),ye(!1),e.n=4;break;case 3:e.p=3,_=e.v,console.error("Error in fetchCalendarEvents:",_),ye(!1);case 4:return e.a(2)}},e,null,[[1,3]])}));return function(t,n){return e.apply(this,arguments)}}();return(0,e.useEffect)(function(){"calendar"!==Q||k||Se(ne.getFullYear(),ne.getMonth())},[Q]),u&&0===p.length?React.createElement("div",null,"Loading events..."):f&&0===p.length?React.createElement("div",{className:"mayo-error"},f):p.length?React.createElement("div",{className:"mayo-event-list".concat("calendar"===Q?" mayo-calendar-view":""),ref:c},k?React.createElement("div",{className:"mayo-widget-events"},p.map(function(e){return React.createElement($,{key:"".concat(e.id,"-").concat(e.meta.event_start_date),event:e,timeFormat:w})})):React.createElement(React.Fragment,null,React.createElement("div",{className:"mayo-event-list-header"},React.createElement("div",{className:"mayo-view-toggle"},React.createElement("button",{className:"mayo-view-toggle-button ".concat("list"===Q?"active":""),onClick:function(){return ee("list")},title:"List View"},React.createElement("span",{className:"dashicons dashicons-list-view"})),React.createElement("button",{className:"mayo-view-toggle-button ".concat("calendar"===Q?"active":""),onClick:function(){return ee("calendar")},title:"Calendar View"},React.createElement("span",{className:"dashicons dashicons-calendar-alt"}))),React.createElement("div",{className:"mayo-event-list-actions"},"list"===Q&&React.createElement("button",{className:"mayo-expand-all-button",onClick:function(){return L(!M)},title:M?"Collapse All":"Expand All"},React.createElement("span",{className:"dashicons ".concat(M?"dashicons-arrow-up-alt2":"dashicons-arrow-down-alt2")})),React.createElement("button",{className:"mayo-print-button",onClick:function(){var e=window.open("","_blank"),t=document.title,n="\n <!DOCTYPE html>\n <html>\n <head>\n <title>".concat(t,' - Print View</title>\n <style>\n body {\n font-family: Arial, sans-serif;\n line-height: 1.6;\n color: #333;\n max-width: 800px;\n margin: 0 auto;\n padding: 20px;\n }\n .mayo-print-header {\n text-align: center;\n margin-bottom: 30px;\n padding-bottom: 20px;\n border-bottom: 2px solid #eee;\n }\n .mayo-print-event {\n margin-bottom: 30px;\n padding-bottom: 20px;\n border-bottom: 1px solid #eee;\n }\n .mayo-print-event:last-child {\n border-bottom: none;\n }\n .mayo-print-event-title {\n font-size: 1.4em;\n margin: 0 0 10px 0;\n color: #0073aa;\n }\n .mayo-print-event-meta {\n margin-bottom: 15px;\n color: #666;\n }\n .mayo-print-event-description {\n margin-top: 15px;\n }\n .mayo-print-event-taxonomies {\n margin-top: 15px;\n }\n .mayo-print-event-taxonomy {\n display: inline-block;\n padding: 3px 8px;\n margin: 0 5px 5px 0;\n border-radius: 3px;\n font-size: 0.9em;\n }\n .mayo-print-event-category {\n background: #e9ecef;\n color: #495057;\n }\n .mayo-print-event-tag {\n background: #e5f5e8;\n color: #1fa23d;\n }\n @media print {\n body {\n padding: 0;\n }\n .mayo-print-header {\n margin-bottom: 20px;\n }\n .mayo-print-event {\n page-break-inside: avoid;\n }\n }\n </style>\n </head>\n <body>\n <div class="mayo-print-header">\n <h1>').concat(t,"</h1>\n <p>Printed on ").concat((new Date).toLocaleString(),"</p>\n </div>\n ").concat(p.map(function(e){return'\n <div class="mayo-print-event">\n <h2 class="mayo-print-event-title">'.concat(e.title.rendered,'</h2>\n <div class="mayo-print-event-meta">\n <p><strong>Date:</strong> ').concat(e.meta.event_start_date).concat(e.meta.event_start_time?" at ".concat(e.meta.event_start_time):"","</p>\n ").concat(e.meta.event_type?"<p><strong>Type:</strong> ".concat(e.meta.event_type,"</p>"):"","\n ").concat(e.meta.location_name?"<p><strong>Location:</strong> ".concat(e.meta.location_name,"</p>"):"",'\n </div>\n <div class="mayo-print-event-description">\n ').concat(e.content.rendered,"\n </div>\n ").concat(e.categories.length>0||e.tags.length>0?'\n <div class="mayo-print-event-taxonomies">\n '.concat(e.categories.map(function(e){return'\n <span class="mayo-print-event-taxonomy mayo-print-event-category">'.concat(e.name,"</span>\n ")}).join(""),"\n ").concat(e.tags.map(function(e){return'\n <span class="mayo-print-event-taxonomy mayo-print-event-tag">'.concat(e.name,"</span>\n ")}).join(""),"\n </div>\n "):"","\n </div>\n ")}).join(""),"\n </body>\n </html>\n ");e.document.write(n),e.document.close(),e.onload=function(){e.print()}},title:"Print Events"},React.createElement("span",{className:"dashicons dashicons-printer"})),React.createElement("a",{href:function(){var e=new URLSearchParams;e.append("feed","mayo_events");var t=null!==he("event_type")?he("event_type"):(null==o?void 0:o.eventType)||"",n=null!==he("service_body")?he("service_body"):(null==o?void 0:o.serviceBody)||"",a=null!==he("relation")?he("relation"):(null==o?void 0:o.relation)||"AND",r=null!==he("categories")?he("categories"):(null==o?void 0:o.categories)||"",c=null!==he("category_relation")?he("category_relation"):(null==o?void 0:o.categoryRelation)||"OR",i=null!==he("tags")?he("tags"):(null==o?void 0:o.tags)||"";t&&e.append("event_type",t),n&&e.append("service_body",n),"AND"!==a&&e.append("relation",a),r&&e.append("categories",r),"OR"!==c&&e.append("category_relation",c),i&&e.append("tags",i);var l=e.toString();return"".concat(window.location.origin).concat(window.location.pathname).concat(l?"?"+l:"")}(),className:"mayo-rss-link",target:"_blank",rel:"noopener noreferrer",title:"Calendar Feed (ICS)"},React.createElement("span",{className:"dashicons dashicons-calendar"})),React.createElement("a",{href:"".concat(window.location.pathname,"?feed=mayo_rss"),className:"mayo-rss-link",target:"_blank",rel:"noopener noreferrer",title:"RSS Feed"},React.createElement("span",{className:"dashicons dashicons-rss"})),React.createElement("button",{className:"mayo-shortcode-button",onClick:function(){return K(!Z)},title:Z?"Hide Shortcode":"Show Shortcode"},React.createElement("span",{className:"dashicons dashicons-editor-code"})))),Z&&React.createElement("div",{className:"mayo-shortcode-display"},React.createElement("div",{className:"mayo-shortcode-header"},React.createElement("strong",null,"Shortcode for this event list:"),React.createElement("button",{className:"mayo-copy-shortcode",onClick:_e,title:"Copy to Clipboard"},React.createElement("span",{className:"dashicons dashicons-clipboard"}),"Copy")),React.createElement("div",{className:"mayo-shortcode-text"},React.createElement("code",null,Ee()))),"calendar"===Q?React.createElement(ae,{events:le,timeFormat:w,onMonthChange:function(e){re(e),Se(e.getFullYear(),e.getMonth())},loading:ve}):React.createElement("div",{className:"mayo-event-cards"},p.map(function(e){return React.createElement(V,{key:"".concat(e.id,"-").concat(e.meta.event_start_date),event:e,timeFormat:w,forceExpanded:M})}),null!==he("infinite_scroll")?"true"===he("infinite_scroll")&&j&&React.createElement("div",{ref:i,className:"mayo-infinite-loader"},u&&React.createElement("div",{className:"mayo-loader"},"Loading more events...")):(null==o?void 0:o.infiniteScroll)&&j&&React.createElement("div",{ref:i,className:"mayo-infinite-loader"},u&&React.createElement("div",{className:"mayo-loader"},"Loading more events..."))))):null!=o&&o.showArchived?React.createElement("div",{className:"mayo-no-events"},"No events found in the archive."):React.createElement("div",{className:"mayo-no-events"},"No upcoming events found.",React.createElement("a",{href:"".concat(window.location.pathname,"?archive=true"),className:"mayo-archive-link"},"View past events"))};function ge(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return be(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(be(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,be(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,be(m,"constructor",s),be(s,"constructor",l),l.displayName="GeneratorFunction",be(s,r,"GeneratorFunction"),be(m),be(m,r,"Generator"),be(m,a,function(){return this}),be(m,"toString",function(){return"[object Generator]"}),(ge=function(){return{w:o,m:d}})()}function be(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}be=function(e,t,n,a){function o(t,n){be(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},be(e,t,n,a)}function he(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function Ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return _e(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_e(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const Re=function(){var t=Ee((0,e.useState)([]),2),n=t[0],a=t[1],r=Ee((0,e.useState)(!0),2),o=r[0],c=r[1],i=Ee((0,e.useState)(null),2),l=i[0],s=i[1],u=A().getServiceBodyName;return(0,e.useEffect)(function(){var e=function(){var e,t=(e=ge().m(function e(){var t,n;return ge().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,b("/events?archive=true");case 1:(t=e.v)&&Array.isArray(t)?a(t):t&&t.events&&Array.isArray(t.events)?a(t.events):(console.warn("Unexpected API response format:",t),a([])),e.n=3;break;case 2:e.p=2,n=e.v,console.error("Error fetching events:",n),s("Failed to load events"),a([]);case 3:return e.p=3,c(!1),e.f(3);case 4:return e.a(2)}},e,null,[[0,2,3,4]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){he(o,a,r,c,i,"next",e)}function i(e){he(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),o?React.createElement("div",null,"Loading events..."):l?React.createElement("div",{className:"mayo-error"},l):n.length?React.createElement("div",{className:"mayo-archive-container"},React.createElement("div",{className:"mayo-archive-content"},React.createElement("header",{className:"mayo-archive-header"},React.createElement("h1",{className:"mayo-archive-title"},"Events")),React.createElement("div",{className:"mayo-archive-events"},n.map(function(e){var t,n;return React.createElement("article",{key:e.id,className:"mayo-archive-event"},React.createElement("div",{className:"mayo-archive-event-content"},e.featured_image&&React.createElement("div",{className:"mayo-archive-event-image"},React.createElement("a",{href:e.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:e.featured_image,alt:e.title.rendered}))),React.createElement("div",{className:"mayo-archive-event-details"},React.createElement("h2",{className:"mayo-archive-event-title"},React.createElement("a",{href:e.link,dangerouslySetInnerHTML:{__html:e.title.rendered}})),React.createElement("div",{className:"mayo-archive-event-meta"},e.meta.event_type&&React.createElement("div",{className:"mayo-archive-event-type"},React.createElement("strong",null,"Type:")," ",e.meta.event_type),React.createElement("div",{className:"mayo-archive-event-datetime"},React.createElement("strong",null,"When:")," ",e.meta.event_start_date,e.meta.event_start_time&&" at ".concat(e.meta.event_start_time),(e.meta.event_end_date||e.meta.event_end_time)&&" - ",e.meta.event_end_date,e.meta.event_end_time&&" at ".concat(e.meta.event_end_time),e.meta.timezone&&" (".concat(y(e.meta.timezone),")")),(e.meta.location_name||e.meta.location_address)&&React.createElement("div",{className:"mayo-archive-event-location"},React.createElement("strong",null,"Where:")," ",e.meta.location_name,e.meta.location_name&&e.meta.location_address&&", ",e.meta.location_address),(null===(t=e.categories)||void 0===t?void 0:t.length)>0&&React.createElement("div",{className:"mayo-archive-event-categories"},e.categories.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-category"},e.name)})),(null===(n=e.tags)||void 0===n?void 0:n.length)>0&&React.createElement("div",{className:"mayo-archive-event-tags"},e.tags.map(function(e){return React.createElement("span",{key:e.id,className:"mayo-event-tag"},e.name)}))),React.createElement("div",{className:"mayo-archive-event-excerpt",dangerouslySetInnerHTML:{__html:e.content.rendered}}),e.meta.service_body&&React.createElement("p",null,React.createElement("strong",null,"Service Body:")," ",u(e.meta.service_body)),React.createElement("a",{href:e.link,className:"mayo-archive-event-link"},"View Event Details"))))})))):React.createElement("div",{className:"mayo-no-events"},"No archived events found.")};function we(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return Se(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(Se(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Se(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,Se(m,"constructor",s),Se(s,"constructor",l),l.displayName="GeneratorFunction",Se(s,r,"GeneratorFunction"),Se(m),Se(m,r,"Generator"),Se(m,a,function(){return this}),Se(m,"toString",function(){return"[object Generator]"}),(we=function(){return{w:o,m:d}})()}function Se(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Se=function(e,t,n,a){function o(t,n){Se(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},Se(e,t,n,a)}function Ne(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function ke(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Oe(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const Te=function(){var t,n,a=ke((0,e.useState)(null),2),r=a[0],o=a[1],c=ke((0,e.useState)(!0),2),i=c[0],l=c[1],s=ke((0,e.useState)(null),2),u=s[0],m=s[1],d=ke((0,e.useState)([]),2),f=d[0],p=d[1],h=A().getServiceBodyName;if((0,e.useEffect)(function(){var e=function(){var e,t=(e=we().m(function e(){var t,n,a,r;return we().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,t=window.location.pathname.split("/"),n=t[t.length-2],e.n=1,b("/event/".concat(n));case 1:if(!(a=e.v)){e.n=2;break}o(a),a.linked_announcements&&p(a.linked_announcements),e.n=3;break;case 2:throw new Error("Event not found");case 3:e.n=5;break;case 4:e.p=4,r=e.v,console.error("Error fetching event:",r),m("Failed to load event details");case 5:return e.p=5,l(!1),e.f(5);case 6:return e.a(2)}},e,null,[[0,4,5,6]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Ne(o,a,r,c,i,"next",e)}function i(e){Ne(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),i)return React.createElement("div",null,"Loading event details...");if(u)return React.createElement("div",{className:"mayo-error"},u);if(!r)return React.createElement("div",null,"Event not found");var E=r.title,_=r.content,R=r.meta,w=R.event_type,S=(R.event_start_date,R.event_end_date,R.event_start_time,R.event_end_time,R.timezone,R.location_name),N=R.location_address,k=R.location_details,O=R.recurring_pattern,T=R.service_body;return React.createElement("div",{className:"mayo-single-container"},React.createElement("article",{className:"mayo-single-event"},React.createElement("div",{className:"mayo-single-event-content"},React.createElement("header",{className:"mayo-single-event-header"},React.createElement("h1",{className:"mayo-single-event-title",dangerouslySetInnerHTML:{__html:E.rendered}})),f.length>0&&React.createElement("div",{className:"mayo-event-announcements"},f.map(function(e){var t={urgent:"#dc3545",high:"#ff9800",normal:"#0073aa",low:"#6c757d"},n=t[e.priority]||t.normal;return React.createElement("div",{key:e.id,className:"mayo-event-announcement-notice",style:{padding:"12px 16px",marginBottom:"16px",backgroundColor:"#fff8e1",borderLeft:"4px solid ".concat(n),borderRadius:"4px"}},React.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"4px"}},React.createElement("span",{className:"dashicons dashicons-megaphone",style:{color:n,fontSize:"18px"}}),React.createElement("strong",{style:{fontSize:"15px"}},e.title),e.priority&&"normal"!==e.priority&&React.createElement("span",{style:{backgroundColor:n,color:"#fff",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",textTransform:"uppercase"}},e.priority)),e.excerpt&&React.createElement("p",{style:{margin:"8px 0 0",fontSize:"14px",color:"#555"},dangerouslySetInnerHTML:{__html:e.excerpt.replace(/<[^>]+>/g,"").substring(0,200)+(e.excerpt.length>200?"...":"")}}))})),r.featured_image&&React.createElement("div",{className:"mayo-single-event-image"},React.createElement("div",{className:"mayo-image-actions"},React.createElement("a",{href:r.featured_image,download:!0,className:"mayo-image-link"},"Download Flyer")),React.createElement("a",{href:r.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:r.featured_image,alt:E.rendered}))),React.createElement("div",{className:"mayo-single-event-description"},React.createElement("h3",null,"Description"),React.createElement("div",{dangerouslySetInnerHTML:{__html:_.rendered}})),(S||N||k)&&React.createElement("div",{className:"mayo-single-event-location"},React.createElement("h3",null,"Location"),S&&React.createElement("p",{className:"mayo-location-name"},S),N&&React.createElement("p",{className:"mayo-location-address"},React.createElement(J,{address:N})),k&&React.createElement("p",{className:"mayo-location-details"},k)),React.createElement("div",{className:"mayo-single-event-meta"},w&&React.createElement("div",{className:"mayo-single-event-type"},React.createElement("h3",null,"Event Type"),React.createElement("p",null,w)),T&&React.createElement("div",{className:"mayo-single-event-service-body"},React.createElement("h3",null,"Service Body"),React.createElement("p",null,h(T))),React.createElement("div",{className:"mayo-single-event-datetime"},React.createElement("h3",null,"Date & Time"),React.createElement("p",null,React.createElement("strong",null,"Start:")," ",r.meta.event_start_date," at ",v(r.meta.event_start_time,"12hour"),r.meta.timezone&&" (".concat(y(r.meta.timezone),")")),(r.meta.event_end_date||r.meta.event_end_time)&&React.createElement("p",null,React.createElement("strong",null,"End:")," ",r.meta.event_end_date||r.meta.event_start_date," at ",v(r.meta.event_end_time,"12hour"))),O&&"none"!==O.type&&React.createElement("div",{className:"mayo-single-event-recurrence"},React.createElement("h3",null,"Recurring Event"),React.createElement("p",null,g(O))),React.createElement("div",{className:"mayo-single-event-taxonomies"},(null===(t=r.categories)||void 0===t?void 0:t.length)>0&&React.createElement("div",{className:"mayo-single-event-categories"},React.createElement("h3",null,"Categories"),r.categories.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})),(null===(n=r.tags)||void 0===n?void 0:n.length)>0&&React.createElement("div",{className:"mayo-single-event-tags"},React.createElement("h3",null,"Tags"),r.tags.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})))))))};function Ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const je=function(t){var n,a,r=t.announcements,o=t.currentIndex,c=t.onPrev,i=t.onNext,l=t.onClose,s=t.backgroundColor,u=t.textColor,m=t.autoRotateInterval,d=void 0===m?5e3:m,f=(0,e.useRef)(null),v=(n=(0,e.useState)(!1),a=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(n,a)||function(e,t){if(e){if("string"==typeof e)return Ae(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ae(e,t):void 0}}(n,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=v[0],p=v[1],g={};if(s&&(g.background=s),u&&(g.color=u),(0,e.useEffect)(function(){var e=function(){if(f.current){var e=f.current.offsetHeight;document.body.style.paddingTop="".concat(e,"px")}};return e(),window.addEventListener("resize",e),function(){document.body.style.paddingTop="",window.removeEventListener("resize",e)}},[r]),(0,e.useEffect)(function(){if(!(r.length<=1||y)){var e=setInterval(function(){i()},d);return function(){return clearInterval(e)}}},[r.length,y,i,d]),0===r.length)return null;var b=r[o];if(!b)return null;var h=r.length>1;return React.createElement("div",{className:"mayo-announcement-banner",ref:f,style:g,onMouseEnter:function(){return p(!0)},onMouseLeave:function(){return p(!1)}},React.createElement("div",{className:"mayo-announcement-banner-content"},h&&React.createElement("button",{className:"mayo-announcement-nav mayo-announcement-prev",onClick:c,title:"Previous"},React.createElement("span",{className:"dashicons dashicons-arrow-left-alt2"})),React.createElement("div",{className:"mayo-announcement-slider"},React.createElement("div",{key:o,className:"mayo-announcement-item mayo-slide-enter-down"},React.createElement("span",{className:"mayo-announcement-icon"},React.createElement("span",{className:"dashicons dashicons-megaphone"})),function(e){if(!e||"normal"===e)return null;var t={low:"#6c757d",high:"#ff9800",urgent:"#dc3545"};return React.createElement("span",{className:"mayo-announcement-priority",style:{backgroundColor:t[e]||t.normal,color:"#fff",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",textTransform:"uppercase",marginRight:"8px"}},e)}(b.priority),React.createElement("a",{href:b.link,className:"mayo-announcement-title",dangerouslySetInnerHTML:{__html:b.title}}),b.linked_events&&b.linked_events.length>0&&React.createElement("span",{className:"mayo-announcement-linked-events",style:{marginLeft:"8px",fontSize:"12px",opacity:.9}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"12px",marginRight:"4px",verticalAlign:"middle"}}),b.linked_events.map(function(e,t){var n,a,r,o=e.source&&"external"===e.source.type,c=e.unavailable;return React.createElement("span",{key:"".concat((null===(n=e.source)||void 0===n?void 0:n.type)||"local","-").concat((null===(a=e.source)||void 0===a?void 0:a.id)||"local","-").concat(e.id)},c?React.createElement("span",{style:{opacity:.7,fontStyle:"italic"}},e.title):React.createElement("a",{href:e.permalink,target:o?"_blank":"_self",rel:o?"noopener noreferrer":void 0,style:{color:"inherit",textDecoration:"underline"}},e.title,o&&(null===(r=e.source)||void 0===r?void 0:r.name)&&React.createElement("span",{style:{opacity:.8,marginLeft:"2px"}},"(",e.source.name,")")),t<b.linked_events.length-1&&", ")})),h&&React.createElement("span",{className:"mayo-announcement-counter"},o+1," / ",r.length))),h&&React.createElement("button",{className:"mayo-announcement-nav mayo-announcement-next",onClick:i,title:"Next"},React.createElement("span",{className:"dashicons dashicons-arrow-right-alt2"}))),React.createElement("button",{className:"mayo-announcement-close",onClick:l,title:"Dismiss"},React.createElement("span",{className:"dashicons dashicons-no-alt"})))},xe=function(t){var n=t.announcements,a=(t.timeFormat,t.onClose),r=t.backgroundColor,o=t.textColor,c={};return r&&(c.background=r),o&&(c.color=o),(0,e.useEffect)(function(){var e=function(e){"Escape"===e.key&&a()};return document.addEventListener("keydown",e),document.body.style.overflow="hidden",function(){document.removeEventListener("keydown",e),document.body.style.overflow=""}},[a]),0===n.length?null:React.createElement("div",{className:"mayo-announcement-modal-backdrop",onClick:function(e){e.target===e.currentTarget&&a()}},React.createElement("div",{className:"mayo-announcement-modal"},React.createElement("button",{className:"mayo-announcement-modal-close",onClick:a,title:"Close"},React.createElement("span",{className:"dashicons dashicons-no-alt"})),React.createElement("div",{className:"mayo-announcement-modal-header",style:c},React.createElement("span",{className:"dashicons dashicons-megaphone"}),React.createElement("h2",null,"Announcements")),React.createElement("div",{className:"mayo-announcement-modal-body"},React.createElement("ul",{className:"mayo-announcement-list"},n.map(function(e){return React.createElement("li",{key:e.id,className:"mayo-announcement-list-item"},React.createElement("div",{className:"mayo-announcement-list-header"},function(e){if(!e||"normal"===e)return null;var t={low:"#6c757d",high:"#ff9800",urgent:"#dc3545"};return React.createElement("span",{className:"mayo-announcement-priority",style:{backgroundColor:t[e]||t.normal,color:"#fff",padding:"2px 6px",borderRadius:"3px",fontSize:"10px",textTransform:"uppercase",marginRight:"8px"}},e)}(e.priority)),React.createElement("a",{href:e.link,className:"mayo-announcement-list-title",dangerouslySetInnerHTML:{__html:e.title}}),e.excerpt&&React.createElement("div",{className:"mayo-announcement-list-excerpt",dangerouslySetInnerHTML:{__html:e.excerpt.replace(/<[^>]+>/g,"").substring(0,150)+"..."}}),e.linked_events&&e.linked_events.length>0&&React.createElement("div",{className:"mayo-announcement-linked-events",style:{marginTop:"8px",fontSize:"12px",color:"#666"}},React.createElement("span",{className:"dashicons dashicons-calendar-alt",style:{fontSize:"14px",marginRight:"4px",verticalAlign:"middle"}}),React.createElement("span",{style:{marginRight:"4px"}},"Related:"),e.linked_events.map(function(t,n){var a,r,o,c,i=t.source&&"external"===t.source.type,l=t.unavailable;return React.createElement("span",{key:"".concat((null===(a=t.source)||void 0===a?void 0:a.type)||"local","-").concat((null===(r=t.source)||void 0===r?void 0:r.id)||"local","-").concat(t.id)},l?React.createElement("span",{style:{color:"#999",fontStyle:"italic"}},t.title,i&&(null===(o=t.source)||void 0===o?void 0:o.name)&&React.createElement("span",{style:{fontSize:"10px",marginLeft:"4px"}},"(",t.source.name,")")):React.createElement("a",{href:t.permalink,target:i?"_blank":"_self",rel:i?"noopener noreferrer":void 0,style:{color:"#0073aa",textDecoration:"none"}},t.title,i&&(null===(c=t.source)||void 0===c?void 0:c.name)&&React.createElement("span",{style:{fontSize:"10px",color:"#888",marginLeft:"4px"}},"(",t.source.name,")")),n<e.linked_events.length-1&&", ")})))}))),React.createElement("div",{className:"mayo-announcement-modal-footer"},React.createElement("button",{className:"mayo-announcement-dismiss-button",onClick:a},"Dismiss"))))},Ce=function(e){var t=e.count,n=e.onClick,a=e.backgroundColor,r=e.textColor,o={};return a&&(o.background=a),r&&(o.color=r),React.createElement("button",{className:"mayo-announcement-bell",onClick:n,title:"".concat(t," announcement").concat(1!==t?"s":""," - Click to view"),style:o},React.createElement("span",{className:"dashicons dashicons-bell"}),t>0&&React.createElement("span",{className:"mayo-announcement-bell-badge"},t>9?"9+":t))};function Pe(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return De(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(De(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,De(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,De(m,"constructor",s),De(s,"constructor",l),l.displayName="GeneratorFunction",De(s,r,"GeneratorFunction"),De(m),De(m,r,"Generator"),De(m,a,function(){return this}),De(m,"toString",function(){return"[object Generator]"}),(Pe=function(){return{w:o,m:d}})()}function De(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}De=function(e,t,n,a){function o(t,n){De(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},De(e,t,n,a)}function Fe(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function Ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Me(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Me(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const Le=function(t){var n=t.settings,a=void 0===n?{}:n,r=Ie((0,e.useState)([]),2),o=r[0],c=r[1],i=Ie((0,e.useState)(!0),2),l=i[0],s=i[1],u=Ie((0,e.useState)(!1),2),m=(u[0],u[1]),d=Ie((0,e.useState)(!1),2),f=d[0],v=d[1],y=Ie((0,e.useState)(0),2),p=y[0],g=y[1],h=a.mode||"banner",E=a.categories||"",_=a.categoryRelation||"OR",R=a.tags||"",w=a.priority||"",S=a.timeFormat||"12hour",N=a.backgroundColor||"",k=a.textColor||"",O=a.orderBy||"date",T=a.order||"",A=(0,e.useCallback)(function(e){var t=e.sort().join("-");return"mayo_announcement_dismissed_".concat(t)},[]),j=(0,e.useCallback)(function(e){if(0===e.length)return!1;var t=A(e),n=localStorage.getItem(t);if(!n)return!1;var a=parseInt(n,10);return Date.now()-a<864e5},[A]);(0,e.useEffect)(function(){var e=function(){var e,t=(e=Pe().m(function e(){var t,n,a,r,o;return Pe().w(function(e){for(;;)switch(e.p=e.n){case 0:return s(!0),e.p=1,t="/announcements?per_page=20",E&&(t+="&categories=".concat(encodeURIComponent(E))),_&&"OR"!==_&&(t+="&category_relation=".concat(encodeURIComponent(_))),R&&(t+="&tags=".concat(encodeURIComponent(R))),w&&(t+="&priority=".concat(encodeURIComponent(w))),O&&(t+="&orderby=".concat(encodeURIComponent(O))),T&&(t+="&order=".concat(encodeURIComponent(T))),e.n=2,b(t);case 2:n=e.v,a=Array.isArray(n)?n:n.announcements||[],c(a),r=a.map(function(e){return e.id}),j(r)&&(m(!0),v(!0)),e.n=4;break;case 3:e.p=3,o=e.v,console.error("Error fetching announcements:",o),c([]);case 4:return e.p=4,s(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Fe(o,a,r,c,i,"next",e)}function i(e){Fe(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[E,_,R,w,O,T,j]);var x=(0,e.useCallback)(function(){var e=o.map(function(e){return e.id}),t=A(e);localStorage.setItem(t,Date.now().toString()),m(!0),v(!0)},[o,A]),C=(0,e.useCallback)(function(){m(!1),v(!1);var e=o.map(function(e){return e.id}),t=A(e);localStorage.removeItem(t)},[o,A]),P=(0,e.useCallback)(function(){g(function(e){return 0===e?o.length-1:e-1})},[o.length]),D=(0,e.useCallback)(function(){g(function(e){return e>=o.length-1?0:e+1})},[o.length]);return(0,e.useEffect)(function(){o.length>0&&p>=o.length&&g(0)},[o.length,p]),l||0===o.length?null:f?React.createElement(Ce,{count:o.length,onClick:C,backgroundColor:N,textColor:k}):"modal"===h?React.createElement(xe,{announcements:o,timeFormat:S,onClose:x,backgroundColor:N,textColor:k}):React.createElement(je,{announcements:o,currentIndex:p,onPrev:P,onNext:D,onClose:x,backgroundColor:N,textColor:k})};function Ge(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return Be(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(Be(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Be(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,Be(m,"constructor",s),Be(s,"constructor",l),l.displayName="GeneratorFunction",Be(s,r,"GeneratorFunction"),Be(m),Be(m,r,"Generator"),Be(m,a,function(){return this}),Be(m,"toString",function(){return"[object Generator]"}),(Ge=function(){return{w:o,m:d}})()}function Be(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Be=function(e,t,n,a){function o(t,n){Be(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},Be(e,t,n,a)}function Ue(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function We(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ze(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const qe=function(){var t,n,a=We((0,e.useState)(null),2),r=a[0],o=a[1],c=We((0,e.useState)(!0),2),i=c[0],l=c[1],s=We((0,e.useState)(null),2),u=s[0],m=s[1],d=A().getServiceBodyName;if((0,e.useEffect)(function(){var e=function(){var e,t=(e=Ge().m(function e(){var t,n,a,r;return Ge().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,t=window.location.pathname.split("/"),n=t[t.length-2],e.n=1,b("/announcement-by-slug/".concat(n));case 1:if(!(a=e.v)){e.n=2;break}o(a),e.n=3;break;case 2:throw new Error("Announcement not found");case 3:e.n=5;break;case 4:e.p=4,r=e.v,console.error("Error fetching announcement:",r),m("Failed to load announcement");case 5:return e.p=5,l(!1),e.f(5);case 6:return e.a(2)}},e,null,[[0,4,5,6]])}),function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Ue(o,a,r,c,i,"next",e)}function i(e){Ue(o,a,r,c,i,"throw",e)}c(void 0)})});return function(){return t.apply(this,arguments)}}();e()},[]),i)return React.createElement("div",{className:"mayo-single-container"},React.createElement("div",{className:"mayo-loading"},"Loading announcement..."));if(u)return React.createElement("div",{className:"mayo-single-container"},React.createElement("div",{className:"mayo-error"},u));if(!r)return React.createElement("div",{className:"mayo-single-container"},React.createElement("div",{className:"mayo-error"},"Announcement not found"));var f={urgent:"#dc3545",high:"#ff9800",normal:"#0073aa",low:"#6c757d"},v=f[r.priority]||f.normal,y=function(e,t){if(!e)return null;var n=e;return t&&(n+=" at ".concat(function(e){if(!e)return"";try{var t=We(e.split(":"),2),n=t[0],a=t[1],r=parseInt(n,10),o=r>=12?"PM":"AM";return"".concat(r%12||12,":").concat(a," ").concat(o)}catch(t){return e}}(t))),n};return React.createElement("div",{className:"mayo-single-container"},React.createElement("article",{className:"mayo-single-announcement mayo-priority-".concat(r.priority||"normal")},React.createElement("header",{className:"mayo-single-announcement-header"},React.createElement("div",{className:"mayo-announcement-priority-bar",style:{backgroundColor:v}}),React.createElement("h1",{className:"mayo-single-announcement-title"},React.createElement("span",{dangerouslySetInnerHTML:{__html:r.title}})),r.priority&&"normal"!==r.priority&&React.createElement("span",{className:"mayo-priority-badge",style:{backgroundColor:v}},r.priority)),r.featured_image&&React.createElement("div",{className:"mayo-single-announcement-image"},React.createElement("a",{href:r.featured_image,target:"_blank",rel:"noopener noreferrer"},React.createElement("img",{src:r.featured_image,alt:r.title}))),React.createElement("div",{className:"mayo-single-announcement-body"},React.createElement("div",{dangerouslySetInnerHTML:{__html:r.content}})),r.linked_events&&r.linked_events.length>0&&React.createElement("div",{className:"mayo-single-announcement-events"},React.createElement("h3",null,React.createElement("span",{className:"dashicons dashicons-calendar-alt"}),"Related Events"),React.createElement("ul",null,r.linked_events.map(function(e){var t,n,a,r,o=e.source&&"external"===e.source.type,c=e.unavailable;return React.createElement("li",{key:"".concat((null===(t=e.source)||void 0===t?void 0:t.type)||"local","-").concat((null===(n=e.source)||void 0===n?void 0:n.id)||"local","-").concat(e.id)},c?React.createElement("span",{className:"mayo-event-unavailable"},e.title,o&&(null===(a=e.source)||void 0===a?void 0:a.name)&&React.createElement("span",{className:"mayo-event-source"},"(",e.source.name,")")):React.createElement("a",{href:e.permalink,target:o?"_blank":"_self",rel:o?"noopener noreferrer":void 0},React.createElement("span",{className:"mayo-event-title"},e.title),e.start_date&&React.createElement("span",{className:"mayo-event-date"},e.start_date),o&&(null===(r=e.source)||void 0===r?void 0:r.name)&&React.createElement("span",{className:"mayo-event-source-badge"},e.source.name)))}))),React.createElement("div",{className:"mayo-single-announcement-meta"},r.service_body&&React.createElement("div",{className:"mayo-announcement-service-body"},React.createElement("h3",null,"Service Body"),React.createElement("p",null,d(r.service_body))),(r.display_start_date||r.display_end_date)&&React.createElement("div",{className:"mayo-announcement-display-window"},React.createElement("h3",null,"Display Window"),r.display_start_date&&React.createElement("p",null,React.createElement("strong",null,"From:")," ",y(r.display_start_date,r.display_start_time)),r.display_end_date&&React.createElement("p",null,React.createElement("strong",null,"Until:")," ",y(r.display_end_date,r.display_end_time)))),React.createElement("div",{className:"mayo-single-announcement-taxonomies"},(null===(t=r.categories)||void 0===t?void 0:t.length)>0&&React.createElement("div",{className:"mayo-single-announcement-categories"},React.createElement("h3",null,"Categories"),r.categories.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})),(null===(n=r.tags)||void 0===n?void 0:n.length)>0&&React.createElement("div",{className:"mayo-single-announcement-tags"},React.createElement("h3",null,"Tags"),r.tags.map(function(e){return React.createElement("a",{key:e.id,href:e.link},e.name)})))))};function He(e){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}function Je(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return Ye(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(Ye(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Ye(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,Ye(m,"constructor",s),Ye(s,"constructor",l),l.displayName="GeneratorFunction",Ye(s,r,"GeneratorFunction"),Ye(m),Ye(m,r,"Generator"),Ye(m,a,function(){return this}),Ye(m,"toString",function(){return"[object Generator]"}),(Je=function(){return{w:o,m:d}})()}function Ye(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Ye=function(e,t,n,a){function o(t,n){Ye(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},Ye(e,t,n,a)}function Ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ve(Object(n),!0).forEach(function(t){Ze(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ve(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ze(e,t,n){return(t=function(e){var t=function(e){if("object"!=He(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=He(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==He(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ke(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function Xe(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){Ke(o,a,r,c,i,"next",e)}function i(e){Ke(o,a,r,c,i,"throw",e)}c(void 0)})}}function Qe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||tt(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function et(e){return function(e){if(Array.isArray(e))return nt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||tt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(e,t){if(e){if("string"==typeof e)return nt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?nt(e,t):void 0}}function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const at=function(){var t,n,a,r,o=document.getElementById("mayo-announcement-form"),c=null==o||null===(t=o.dataset)||void 0===t?void 0:t.settings,i=window[c]||{},l=(null==o||null===(n=o.dataset)||void 0===n?void 0:n.categories)||"",s=(0,e.useMemo)(function(){return l?l.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[l]),u=(0,e.useMemo)(function(){return s.filter(function(e){return!e.startsWith("-")})},[s]),m=(0,e.useMemo)(function(){return s.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[s]),d=(null==o||null===(a=o.dataset)||void 0===a?void 0:a.tags)||"",f=(0,e.useMemo)(function(){return d?d.split(",").map(function(e){return e.trim().toLowerCase()}):[]},[d]),v=(0,e.useMemo)(function(){return f.filter(function(e){return!e.startsWith("-")})},[f]),y=(0,e.useMemo)(function(){return f.filter(function(e){return e.startsWith("-")}).map(function(e){return e.substring(1)})},[f]),p=function(e){var t=document.createElement("textarea");return t.innerHTML=e,t.value},g=i.additionalRequiredFields?i.additionalRequiredFields.split(",").map(function(e){return e.trim()}):[],h=[].concat(["title","description","service_body","email","contact_name"],et(g)),E=!0===i.showFlyer||"true"===i.showFlyer,_=Qe((0,e.useState)({title:"",description:"",start_date:"",start_time:"",end_date:"",end_time:"",flyer:null,categories:[],tags:[],service_body:"",email:"",contact_name:""}),2),R=_[0],w=_[1],S=Qe((0,e.useState)(!1),2),N=S[0],k=S[1],O=Qe((0,e.useState)(null),2),T=O[0],j=O[1],x=Qe((0,e.useState)([]),2),C=x[0],P=x[1],D=Qe((0,e.useState)([]),2),F=D[0],I=D[1],M=Qe((0,e.useState)(null),2),L=M[0],G=(M[1],A().serviceBodies),B=Qe((0,e.useState)(null),2),U=B[0],W=B[1],z=Qe((0,e.useState)({default_service_bodies:""}),2),q=z[0],H=z[1],J=Qe((0,e.useState)({categories:[],tags:[],service_bodies:[]}),2),Y=J[0],V=J[1];(0,e.useEffect)(function(){var e=function(){var e=Xe(Je().m(function e(){var t,n,a,r,o,c,l,s;return Je().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([b("/settings"),b("/subscription-options")]);case 1:n=e.v,a=Qe(n,2),r=a[0],o=a[1],c={default_service_bodies:r.default_service_bodies||""},void 0!==i.defaultServiceBodies&&""!==i.defaultServiceBodies&&(c.default_service_bodies=i.defaultServiceBodies),H(c),V(o||{categories:[],tags:[],service_bodies:[]}),(l=null===(t=c.default_service_bodies)||void 0===t?void 0:t.split(",").map(function(e){return e.trim()}).filter(function(e){return e}))&&1===l.length&&w(function(e){return $e($e({},e),{},{service_body:l[0]})}),e.n=3;break;case 2:e.p=2,s=e.v,console.error("Error fetching settings:",s);case 3:return e.a(2)}},e,null,[[0,2]])}));return function(){return e.apply(this,arguments)}}();e()},[i]),(0,e.useEffect)(function(){var e=function(){var e=Xe(Je().m(function e(){var t,n,a,r,o,c,i,l,s,d,f;return Je().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,Promise.all([fetch("/wp-json/wp/v2/categories?hide_empty=false&per_page=100"),fetch("/wp-json/wp/v2/tags?hide_empty=false&per_page=100")]);case 1:if(t=e.v,n=Qe(t,2),a=n[0],r=n[1],a.ok&&r.ok){e.n=2;break}throw new Error("Failed to fetch taxonomies");case 2:return e.n=3,a.json();case 3:return o=e.v,e.n=4,r.json();case 4:c=e.v,i=Y.categories.map(function(e){return e.id}),l=Y.tags.map(function(e){return e.id}),s=o.filter(function(e){if(i.length>0&&!i.includes(e.id))return!1;var t=(e.slug||"").toLowerCase();return u.length>0?u.includes(t):!(m.length>0&&m.includes(t))}),d=c.filter(function(e){if(l.length>0&&!l.includes(e.id))return!1;var t=(e.slug||"").toLowerCase();return v.length>0?v.includes(t):!(y.length>0&&y.includes(t))}),P(Array.isArray(s)?s:[]),I(Array.isArray(d)?d:[]),e.n=6;break;case 5:e.p=5,f=e.v,console.error("Error fetching taxonomies:",f),P([]),I([]);case 6:return e.a(2)}},e,null,[[0,5]])}));return function(){return e.apply(this,arguments)}}();e()},[u,m,v,y,Y]);var $,Z,K=function(){var e=Xe(Je().m(function e(t){var n,a,r,o,c,i,l,s,u,m,d,f,v,y;return Je().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),k(!0),j(null),e.p=1,!R.flyer){e.n=2;break}if(o=["image/jpeg","image/png","image/gif"],c=R.flyer.name.split(".").pop().toLowerCase(),i=["jpg","jpeg","png","gif"],o.includes(R.flyer.type)&&i.includes(c)){e.n=2;break}throw new Error("You did not attach a valid image file. Please choose a valid image file (JPG, PNG, or GIF)");case 2:if(!((l=h.filter(function(e){return"flyer"===e?!R.flyer:!R[e]})).length>0)){e.n=3;break}throw new Error("Please fill in all required fields: ".concat(l.join(", ")));case 3:return s=new FormData,Object.keys(R).forEach(function(e){"flyer"===e&&R[e]instanceof File?s.append("flyer",R[e]):"categories"===e||"tags"===e?s.append(e,R[e].join(",")):null!=R[e]&&""!==R[e]&&s.append(e,R[e])}),u=(null===(n=window.mayoApiSettings)||void 0===n?void 0:n.nonce)||(null===(a=document.querySelector("#_wpnonce"))||void 0===a?void 0:a.value)||(null===(r=window.wpApiSettings)||void 0===r?void 0:r.nonce),e.n=4,b("/submit-announcement",{method:"POST",body:s,credentials:"same-origin",headers:{"X-WP-Nonce":u}});case 4:if(!(m=e.v).id&&!m.success){e.n=5;break}j({type:"success",text:"Announcement submitted successfully!"}),f=null===(d=q.default_service_bodies)||void 0===d?void 0:d.split(",").map(function(e){return e.trim()}).filter(function(e){return e}),v=f&&1===f.length?f[0]:"",w({title:"",description:"",start_date:"",start_time:"",end_date:"",end_time:"",flyer:null,categories:[],tags:[],service_body:v,email:"",contact_name:""}),W(null),e.n=6;break;case 5:throw new Error(m.message||"Failed to submit announcement");case 6:e.n=8;break;case 7:e.p=7,y=e.v,j({type:"error",text:y.message||"Error submitting form"});case 8:return e.p=8,k(!1),e.f(8);case 9:return e.a(2)}},e,null,[[1,7,8,9]])}));return function(t){return e.apply(this,arguments)}}(),X=function(e){var t=e.target,n=t.name,a=t.value,r=t.files;if(r&&r[0]){var o=r[0],c=o.name.split(".").pop().toLowerCase();if(!["image/jpeg","image/png","image/gif"].includes(o.type)||!["jpg","jpeg","png","gif"].includes(c))return j({type:"error",text:"The selected file is not a valid image. Please use a valid image file (JPG, PNG, or GIF)"}),e.target.value="",w(function(e){return $e($e({},e),{},{flyer:null})}),void W(null);var i=new FileReader;i.onload=function(t){var n=new Image;n.onload=function(){W("image"),w(function(e){return $e($e({},e),{},{flyer:o})}),j(null)},n.onerror=function(){j({type:"error",text:"The selected file is not a valid image. Please choose a valid image file (JPG, PNG, or GIF)"}),e.target.value="",w(function(e){return $e($e({},e),{},{flyer:null})}),W(null)},n.src=t.target.result},i.onerror=function(){j({type:"error",text:"Error reading the file"}),e.target.value="",w(function(e){return $e($e({},e),{},{flyer:null})}),W(null)},i.readAsDataURL(o)}else w(function(e){return $e($e({},e),{},Ze({},n,a))})},Q=function(e){return h.includes(e)};return L?React.createElement("div",{className:"mayo-error"},L):React.createElement("div",{className:"mayo-announcement-form"},React.createElement("form",{onSubmit:K},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"title"},"Announcement Title ",Q("title")&&"*"),React.createElement("input",{type:"text",id:"title",name:"title",value:R.title,onChange:X,required:Q("title")})),(!q.default_service_bodies||(null===(Z=q.default_service_bodies)||void 0===Z?void 0:Z.split(",").map(function(e){return e.trim()}).filter(function(e){return e})).length>1)&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"service_body"},"Service Body *"),React.createElement("select",{id:"service_body",name:"service_body",value:R.service_body,onChange:function(e){w(function(t){return $e($e({},t),{},{service_body:e.target.value})})},required:!0},React.createElement("option",{value:""},"Select a service body"),!(($=Y.service_bodies.map(function(e){return e.id.toString()})).length>0&&!$.includes("0"))&&(!q.default_service_bodies||q.default_service_bodies.includes("0"))&&React.createElement("option",{value:"0"},"Unaffiliated (0)"),function(){var e=G,t=Y.service_bodies.map(function(e){return e.id.toString()});if(t.length>0&&(e=e.filter(function(e){return t.includes(e.id.toString())})),q.default_service_bodies){var n=q.default_service_bodies.split(",").map(function(e){return e.trim()}).filter(function(e){return e});e=e.filter(function(e){return n.includes(e.id.toString())})}return e}().map(function(e){return React.createElement("option",{key:e.id,value:e.id},e.name," (",e.id,")")}))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"contact_name"},"Point of Contact Name (Private) *"),React.createElement("input",{type:"text",id:"contact_name",name:"contact_name",value:R.contact_name,onChange:X,required:!0,placeholder:"Your name (will not be displayed publicly)"})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"email"},"Point of Contact Email (Private) *"),React.createElement("input",{type:"email",id:"email",name:"email",value:R.email,onChange:X,required:!0,placeholder:"Your email address (will not be displayed publicly)"})),React.createElement("fieldset",{className:"mayo-display-window-fieldset"},React.createElement("legend",null,"Display Window"),React.createElement("p",{className:"mayo-fieldset-description"},"Control when this announcement is visible on the site."),React.createElement("div",{className:"mayo-datetime-group"},React.createElement("div",{className:"mayo-datetime-row"},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"start_date"},"Start Date ",Q("start_date")&&"*"),React.createElement("input",{type:"date",id:"start_date",name:"start_date",value:R.start_date,onChange:X,required:Q("start_date")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"start_time"},"Start Time ",Q("start_time")&&"*"),React.createElement("input",{type:"time",id:"start_time",name:"start_time",value:R.start_time,onChange:X,required:Q("start_time")}))),React.createElement("p",{className:"mayo-field-hint"},"Leave empty to start showing immediately"),React.createElement("div",{className:"mayo-datetime-row"},React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"end_date"},"End Date ",Q("end_date")&&"*"),React.createElement("input",{type:"date",id:"end_date",name:"end_date",value:R.end_date,onChange:X,required:Q("end_date")})),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"end_time"},"End Time ",Q("end_time")&&"*"),React.createElement("input",{type:"time",id:"end_time",name:"end_time",value:R.end_time,onChange:X,required:Q("end_time")}))),React.createElement("p",{className:"mayo-field-hint"},"Leave empty to show indefinitely"))),React.createElement("div",{className:"mayo-form-field"},React.createElement("label",{htmlFor:"description"},"Description ",Q("description")&&"*"),React.createElement("textarea",{id:"description",name:"description",value:R.description,onChange:X,required:Q("description"),rows:"6"})),E&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Image/Flyer ",Q("flyer")&&"*"),React.createElement("div",{className:"mayo-upload-section"},!U&&React.createElement(React.Fragment,null,React.createElement("input",{type:"file",id:"flyer-upload",name:"flyer",accept:"image/*",onChange:X,required:Q("flyer"),className:"mayo-file-input"}),React.createElement("label",{htmlFor:"flyer-upload",className:"mayo-upload-button"},"Upload Image"),React.createElement("p",{className:"mayo-upload-info"},"Supported file types: Images (.jpg, .jpeg, .png, .gif)",Q("flyer")&&" (Required)")),U&&React.createElement("div",{className:"mayo-upload-preview"},React.createElement("p",null,"Selected: ",(null===(r=R.flyer)||void 0===r?void 0:r.name)||"No file selected"),React.createElement("button",{type:"button",onClick:function(){w(function(e){return $e($e({},e),{},{flyer:null})}),W(null)},className:"mayo-clear-upload"},"Clear Upload")))),C.length>0&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Categories"),React.createElement("div",{className:"mayo-taxonomy-list"},C.map(function(e){return React.createElement("label",{key:null==e?void 0:e.id,className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:R.categories.includes(null==e?void 0:e.id),onChange:function(t){var n=t.target.checked?[].concat(et(R.categories),[null==e?void 0:e.id]):R.categories.filter(function(t){return t!==(null==e?void 0:e.id)});w($e($e({},R),{},{categories:n}))}}),null!=e&&e.name?p(e.name):"Unnamed Category")}))),F.length>0&&React.createElement("div",{className:"mayo-form-field"},React.createElement("label",null,"Tags"),React.createElement("div",{className:"mayo-taxonomy-list"},F.map(function(e){return React.createElement("label",{key:(null==e?void 0:e.id)||"default",className:"mayo-taxonomy-item"},React.createElement("input",{type:"checkbox",checked:R.tags.includes(null==e?void 0:e.name),onChange:function(t){var n=t.target.checked?[].concat(et(R.tags),[null==e?void 0:e.name]):R.tags.filter(function(t){return t!==(null==e?void 0:e.name)});w($e($e({},R),{},{tags:n}))}}),null!=e&&e.name?p(e.name):"Unnamed Tag")}))),React.createElement("button",{type:"submit",disabled:N,className:"mayo-submit-button"},N?"Submitting...":"Submit Announcement"),T&&React.createElement("div",{className:"mayo-message mayo-message-".concat(T.type)},"string"==typeof T.text?T.text:"An error occurred while submitting the form. Please try again.")))};function rt(e){return rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(e)}function ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ot(Object(n),!0).forEach(function(t){it(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ot(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function it(e,t,n){return(t=function(e){var t=function(e){if("object"!=rt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=rt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==rt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lt(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",r=n.toStringTag||"@@toStringTag";function o(n,a,r,o){var l=a&&a.prototype instanceof i?a:i,s=Object.create(l.prototype);return st(s,"_invoke",function(n,a,r){var o,i,l,s=0,u=r||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return o=t,i=0,l=e,d.n=n,c}};function f(n,a){for(i=n,l=a,t=0;!m&&s&&!r&&t<u.length;t++){var r,o=u[t],f=d.p,v=o[2];n>3?(r=v===a)&&(l=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=f&&((r=n<2&&f<o[1])?(i=0,d.v=a,d.n=o[1]):f<v&&(r=n<3||o[0]>a||a>v)&&(o[4]=n,o[5]=a,d.n=v,i=0))}if(r||n>1)return c;throw m=!0,a}return function(r,u,v){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,v),i=u,l=v;(t=i<2?e:l)||!m;){o||(i?i<3?(i>1&&(d.n=-1),f(i,l)):d.n=l:d.v=l);try{if(s=2,o){if(i||(r="next"),t=o[r]){if(!(t=t.call(o,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),i=1);o=e}else if((t=(m=d.n<0)?l:n.call(a,d))!==c)break}catch(t){o=e,i=1,l=t}finally{s=1}}return{value:t,done:m}}}(n,r,o),!0),s}var c={};function i(){}function l(){}function s(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(st(t={},a,function(){return this}),t),m=s.prototype=i.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,st(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return l.prototype=s,st(m,"constructor",s),st(s,"constructor",l),l.displayName="GeneratorFunction",st(s,r,"GeneratorFunction"),st(m),st(m,r,"Generator"),st(m,a,function(){return this}),st(m,"toString",function(){return"[object Generator]"}),(lt=function(){return{w:o,m:d}})()}function st(e,t,n,a){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}st=function(e,t,n,a){function o(t,n){st(e,t,function(e){return this._invoke(t,n,e)})}t?r?r(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n:(o("next",0),o("throw",1),o("return",2))},st(e,t,n,a)}function ut(e,t,n,a,r,o,c){try{var i=e[o](c),l=i.value}catch(e){return void n(e)}i.done?t(l):Promise.resolve(l).then(a,r)}function mt(e){return function(){var t=this,n=arguments;return new Promise(function(a,r){var o=e.apply(t,n);function c(e){ut(o,a,r,c,i,"next",e)}function i(e){ut(o,a,r,c,i,"throw",e)}c(void 0)})}}function dt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,c,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return i}}(e,t)||ft(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ft(e,t){if(e){if("string"==typeof e)return vt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vt(e,t):void 0}}function vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}const yt=function(){var t=dt((0,e.useState)(""),2),n=t[0],a=t[1],r=dt((0,e.useState)(!1),2),o=r[0],c=r[1],i=dt((0,e.useState)(!0),2),l=i[0],s=i[1],u=dt((0,e.useState)(null),2),m=u[0],d=u[1],f=dt((0,e.useState)({categories:[],tags:[],service_bodies:[]}),2),v=f[0],y=f[1],p=dt((0,e.useState)({categories:[],tags:[],service_bodies:[]}),2),g=p[0],h=p[1],E=A().getServiceBodyName;(0,e.useEffect)(function(){var e=function(){var e=mt(lt().m(function e(){var t,n;return lt().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,b("/subscription-options");case 1:(t=e.v)&&y({categories:t.categories||[],tags:t.tags||[],service_bodies:t.service_bodies||[]}),e.n=3;break;case 2:e.p=2,n=e.v,console.error("Failed to fetch subscription options:",n);case 3:return e.p=3,s(!1),e.f(3);case 4:return e.a(2)}},e,null,[[0,2,3,4]])}));return function(){return e.apply(this,arguments)}}();e()},[]);var _=function(){return g.categories.length>0||g.tags.length>0||g.service_bodies.length>0},R=function(){return v.categories.length>0||v.tags.length>0||v.service_bodies.length>0},w=function(e,t){h(function(n){var a,r=n[e]||[],o=r.includes(t)?r.filter(function(e){return e!==t}):[].concat(function(e){if(Array.isArray(e))return vt(e)}(a=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||ft(a)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[t]);return ct(ct({},n),{},it({},e,o))})},S=function(){var e=mt(lt().m(function e(t){var r,o,i;return lt().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t.preventDefault(),!R()||_()){e.n=1;break}return d({type:"error",text:"Please select at least one preference to subscribe."}),e.a(2);case 1:return c(!0),d(null),e.p=2,r={email:n},R()&&(r.preferences=g),e.n=3,b("/subscribe",{method:"POST",body:JSON.stringify(r)});case 3:(o=e.v).success?(d({type:"success",text:o.message}),a(""),h({categories:[],tags:[],service_bodies:[]})):d({type:"error",text:o.message||"An error occurred. Please try again."}),e.n=5;break;case 4:e.p=4,i=e.v,d({type:"error",text:i.message||"An error occurred. Please try again."});case 5:return e.p=5,c(!1),e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(t){return e.apply(this,arguments)}}();return l?React.createElement("div",{className:"mayo-subscribe-form"},React.createElement("p",null,"Loading...")):React.createElement("div",{className:"mayo-subscribe-form"},React.createElement("form",{onSubmit:S},React.createElement("div",{className:"mayo-subscribe-input-group"},React.createElement("input",{type:"email",value:n,onChange:function(e){return a(e.target.value)},placeholder:"Enter your email address",required:!0,disabled:o,className:"mayo-subscribe-email"})),R()&&React.createElement("div",{className:"mayo-subscribe-preferences"},React.createElement("p",{className:"mayo-subscribe-preferences-label"},"Select what you'd like to receive notifications about:"),v.categories.length>0&&React.createElement("div",{className:"mayo-subscribe-preference-group"},React.createElement("span",{className:"mayo-subscribe-preference-heading"},"Categories"),React.createElement("div",{className:"mayo-subscribe-checkboxes"},v.categories.map(function(e){return React.createElement("label",{key:e.id,className:"mayo-subscribe-checkbox"},React.createElement("input",{type:"checkbox",checked:g.categories.includes(e.id),onChange:function(){return w("categories",e.id)},disabled:o}),React.createElement("span",null,e.name))}))),v.tags.length>0&&React.createElement("div",{className:"mayo-subscribe-preference-group"},React.createElement("span",{className:"mayo-subscribe-preference-heading"},"Tags"),React.createElement("div",{className:"mayo-subscribe-checkboxes"},v.tags.map(function(e){return React.createElement("label",{key:e.id,className:"mayo-subscribe-checkbox"},React.createElement("input",{type:"checkbox",checked:g.tags.includes(e.id),onChange:function(){return w("tags",e.id)},disabled:o}),React.createElement("span",null,e.name))}))),v.service_bodies.length>0&&React.createElement("div",{className:"mayo-subscribe-preference-group"},React.createElement("span",{className:"mayo-subscribe-preference-heading"},"Service Bodies"),React.createElement("div",{className:"mayo-subscribe-checkboxes"},v.service_bodies.map(function(e){return React.createElement("label",{key:e.id,className:"mayo-subscribe-checkbox"},React.createElement("input",{type:"checkbox",checked:g.service_bodies.includes(e.id),onChange:function(){return w("service_bodies",e.id)},disabled:o}),React.createElement("span",null,E(e.id,e.source_id)||e.name||e.id))})))),React.createElement("button",{type:"submit",disabled:o||R()&&!_(),className:"mayo-subscribe-button"},o?"Subscribing...":"Subscribe"),m&&React.createElement("div",{className:"mayo-subscribe-message mayo-subscribe-message-".concat(m.type)},m.text)))};document.addEventListener("DOMContentLoaded",function(){var t=document.getElementById("mayo-event-form"),n=document.querySelectorAll('[id^="mayo-event-list-"]'),a=document.getElementById("mayo-details-root"),r=document.getElementById("mayo-archive-root"),o=document.getElementById("mayo-announcement-details-root"),c=function(t,n){if(n){var a=n.dataset.instance,r=window["mayoEventSettings_".concat(a)]||{};n.classList.contains("mayo-widget-list")?(0,e.render)(React.createElement(j,null,React.createElement(t,{widget:!0,settings:r})),n):(0,e.render)(React.createElement(j,null,React.createElement(t,{settings:r})),n)}};n.forEach(function(e){c(pe,e)}),c(H,t),c(Te,a),c(Re,r),c(qe,o),document.querySelectorAll(".mayo-announcement-container").forEach(function(t){var n=t.dataset.instance,a="mayoAnnouncementSettings_".concat(n),r=window[a]||{};(0,e.render)(React.createElement(j,null,React.createElement(Le,{settings:r})),t)}),document.querySelectorAll(".mayo-subscribe-container").forEach(function(t){(0,e.render)(React.createElement(j,null,React.createElement(yt,null)),t)});var i=document.getElementById("mayo-announcement-form");i&&(0,e.render)(React.createElement(j,null,React.createElement(at,null)),i)})})(); -
mayo-events-manager/trunk/build.txt
r3432200 r3436689 1 ce549248c274b634d76ec79bb9cf8628abf2b670 1 bb5913185a294559a58a37a05e01c001aa3d1f0f -
mayo-events-manager/trunk/includes/Frontend.php
r3432200 r3436689 81 81 'autoexpand' => 'false', 82 82 'categories' => '', // Comma-separated category slugs 83 'category_relation' => 'OR', // AND or OR - how to match multiple categories 83 84 'tags' => '', // Comma-separated tag slugs 84 85 'event_type' => '', // Single event type (Service, Activity) … … 102 103 'autoexpand' => $atts['autoexpand'] === 'true', 103 104 'categories' => $atts['categories'], 105 'categoryRelation' => strtoupper($atts['category_relation']), 104 106 'tags' => $atts['tags'], 105 107 'eventType' => $atts['event_type'], … … 126 128 'mode' => 'banner', // 'banner' or 'modal' 127 129 'categories' => '', // Comma-separated category slugs 130 'category_relation' => 'OR', // AND or OR - how to match multiple categories 128 131 'tags' => '', // Comma-separated tag slugs 129 132 'priority' => '', // Filter by priority (low/normal/high/urgent) … … 145 148 'mode' => $atts['mode'], 146 149 'categories' => $atts['categories'], 150 'categoryRelation' => strtoupper($atts['category_relation']), 147 151 'tags' => $atts['tags'], 148 152 'priority' => $atts['priority'], -
mayo-events-manager/trunk/includes/Rest.php
r3432200 r3436689 523 523 $relation = isset($params['relation']) ? sanitize_text_field(wp_unslash($params['relation'])) : 'AND'; 524 524 $categories = isset($params['categories']) ? sanitize_text_field(wp_unslash($params['categories'])) : ''; 525 $categoryRelation = isset($params['category_relation']) ? strtoupper(sanitize_text_field(wp_unslash($params['category_relation']))) : 'OR'; 525 526 $tags = isset($params['tags']) ? sanitize_text_field(wp_unslash($params['tags'])) : ''; 526 527 $timezone = isset($params['timezone']) ? urldecode(sanitize_text_field(wp_unslash($params['timezone']))) : wp_timezone_string(); … … 540 541 541 542 // 1. Get all non-recurring events (we'll filter them later based on archive mode) 542 $non_recurring_events = self::query_events($status, $eventType, $serviceBody, $relation, $categories, $ tags, null);543 $non_recurring_events = self::query_events($status, $eventType, $serviceBody, $relation, $categories, $categoryRelation, $tags, null); 543 544 544 545 $events = array_merge($events, $non_recurring_events); … … 587 588 588 589 // Merge in taxonomy args (handles both include and exclude with '-' prefix) 589 $taxonomy_args = self::build_taxonomy_args($categories, $ tags);590 $taxonomy_args = self::build_taxonomy_args($categories, $categoryRelation, $tags); 590 591 $args = array_merge($args, $taxonomy_args); 591 592 … … 736 737 * Helper method to build taxonomy query args for categories and tags 737 738 * Handles both inclusion and exclusion (items prefixed with '-') 739 * 740 * @param string $categories Comma-separated category slugs (prefix with '-' to exclude) 741 * @param string $categoryRelation 'AND' or 'OR' - how to match multiple categories 742 * @param string $tags Comma-separated tag slugs (prefix with '-' to exclude) 738 743 */ 739 private static function build_taxonomy_args($categories, $ tags) {744 private static function build_taxonomy_args($categories, $categoryRelation = 'OR', $tags = '') { 740 745 $cat_filter = self::parse_taxonomy_filter($categories); 741 746 $tag_filter = self::parse_taxonomy_filter($tags); … … 744 749 $tax_query = []; 745 750 746 // Handle category inclusion 751 // Handle category inclusion via tax_query (supports AND/OR relation) 747 752 if (!empty($cat_filter['include'])) { 748 $args['category_name'] = $cat_filter['include']; 753 $include_cat_slugs = array_map('trim', explode(',', $cat_filter['include'])); 754 $include_cat_ids = []; 755 foreach ($include_cat_slugs as $slug) { 756 $term = get_term_by('slug', $slug, 'category'); 757 if ($term) { 758 $include_cat_ids[] = $term->term_id; 759 } 760 } 761 if (!empty($include_cat_ids)) { 762 // 'IN' = posts with ANY of these categories (OR) 763 // 'AND' = posts with ALL of these categories (AND) 764 $operator = strtoupper($categoryRelation) === 'AND' ? 'AND' : 'IN'; 765 $tax_query[] = [ 766 'taxonomy' => 'category', 767 'field' => 'term_id', 768 'terms' => $include_cat_ids, 769 'operator' => $operator 770 ]; 771 } 749 772 } 750 773 … … 794 817 } 795 818 796 // Add tax_query if we have any exclusions819 // Add tax_query if we have any taxonomy conditions 797 820 if (!empty($tax_query)) { 798 821 $tax_query['relation'] = 'AND'; … … 806 829 * Helper method to query events with the given parameters 807 830 */ 808 private static function query_events($status, $eventType, $serviceBody, $relation, $categories, $ tags, $min_date = null) {831 private static function query_events($status, $eventType, $serviceBody, $relation, $categories, $categoryRelation, $tags, $min_date = null) { 809 832 $meta_query = []; 810 833 … … 851 874 852 875 // Merge in taxonomy args (handles both include and exclude with '-' prefix) 853 $taxonomy_args = self::build_taxonomy_args($categories, $ tags);876 $taxonomy_args = self::build_taxonomy_args($categories, $categoryRelation, $tags); 854 877 $args = array_merge($args, $taxonomy_args); 855 878 … … 1593 1616 $priority = isset($params['priority']) ? sanitize_text_field($params['priority']) : ''; 1594 1617 $categories = isset($params['categories']) ? sanitize_text_field($params['categories']) : ''; 1618 $categoryRelation = isset($params['category_relation']) ? strtoupper(sanitize_text_field($params['category_relation'])) : 'OR'; 1595 1619 $tags = isset($params['tags']) ? sanitize_text_field($params['tags']) : ''; 1596 1620 $linked_event = isset($params['linked_event']) ? intval($params['linked_event']) : 0; … … 1673 1697 1674 1698 // Handle taxonomy filters 1675 $taxonomy_args = self::build_taxonomy_args($categories, $ tags);1699 $taxonomy_args = self::build_taxonomy_args($categories, $categoryRelation, $tags); 1676 1700 $args = array_merge($args, $taxonomy_args); 1677 1701 -
mayo-events-manager/trunk/mayo-events-manager.php
r3432200 r3436689 4 4 * Plugin Name: Mayo Events Manager 5 5 * Description: A plugin for managing and displaying events. 6 * Version: 1.8. 16 * Version: 1.8.2 7 7 * Author: bmlt-enabled 8 8 * License: GPLv2 or later … … 21 21 } 22 22 23 define('MAYO_VERSION', '1.8. 1');23 define('MAYO_VERSION', '1.8.2'); 24 24 25 25 require_once __DIR__ . '/vendor/autoload.php'; -
mayo-events-manager/trunk/package.json
r3432200 r3436689 1 1 { 2 2 "name": "mayo", 3 "version": "1.8. 1",3 "version": "1.8.2", 4 4 "description": "", 5 5 "main": "index.js", -
mayo-events-manager/trunk/readme.txt
r3432200 r3436689 6 6 Requires at least: 6.7 7 7 Tested up to: 6.9 8 Stable tag: 1.8. 18 Stable tag: 1.8.2 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 187 187 188 188 == Changelog == 189 190 = 1.8.2 = 191 * Added category_relation parameter (AND/OR) for event list and announcement shortcodes to control multi-category filtering. 189 192 190 193 = 1.8.1 = -
mayo-events-manager/trunk/vendor/composer/installed.php
r3432200 r3436689 2 2 'root' => array( 3 3 'name' => 'bmltenabled/mayo', 4 'pretty_version' => '1.8. 1',5 'version' => '1.8. 1.0',6 'reference' => ' ce549248c274b634d76ec79bb9cf8628abf2b670',4 'pretty_version' => '1.8.2', 5 'version' => '1.8.2.0', 6 'reference' => 'bb5913185a294559a58a37a05e01c001aa3d1f0f', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'bmltenabled/mayo' => array( 14 'pretty_version' => '1.8. 1',15 'version' => '1.8. 1.0',16 'reference' => ' ce549248c274b634d76ec79bb9cf8628abf2b670',14 'pretty_version' => '1.8.2', 15 'version' => '1.8.2.0', 16 'reference' => 'bb5913185a294559a58a37a05e01c001aa3d1f0f', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.