From 97b49dbb5ee938ba63b00c35cb8100c0ec3931f4 Mon Sep 17 00:00:00 2001 From: Kyrch Date: Thu, 23 May 2024 17:22:01 -0300 Subject: [PATCH] feat: filament (#679) --- .env.example | 8 +- .env.example-sail | 6 +- app/Actions/Discord/DiscordThreadAction.php | 86 + .../Wiki/Anime/AttachAnimeImageAction.php | 26 + .../Wiki/Anime/AttachAnimeResourceAction.php | 26 + .../Wiki/Artist/AttachArtistImageAction.php | 26 + .../Artist/AttachArtistResourceAction.php | 26 + app/Actions/Models/Wiki/AttachImageAction.php | 102 + .../Models/Wiki/AttachResourceAction.php | 82 + .../Wiki/Song/AttachSongResourceAction.php | 26 + .../Wiki/Studio/AttachStudioImageAction.php | 26 + .../Studio/AttachStudioResourceAction.php | 26 + app/Actions/Models/Wiki/UploadImageAction.php | 52 + .../Filament/Enums/HasColorOrEmoji.php | 66 + app/Concerns/Filament/HasTabs.php | 31 + .../Admin/ReconcilesDumpRepositories.php | 2 +- .../Repositories/ReconcilesRepositories.php | 4 +- .../Wiki/ReconcilesAudioRepositories.php | 2 +- .../Wiki/ReconcilesVideoRepositories.php | 2 +- .../Video/ReconcilesScriptRepositories.php | 2 +- app/Contracts/Models/HasSubtitle.php | 18 + app/Enums/Auth/SpecialPermission.php | 2 + app/Enums/Models/Wiki/AnimeSeason.php | 32 + .../Actions/Discord/DiscordThreadAction.php | 51 + .../Actions/Models/AssignHashidsAction.php | 65 + .../Models/Auth/Permission/GiveRoleAction.php | 72 + .../Auth/Permission/RevokeRoleAction.php | 72 + .../Models/Auth/Role/GivePermissionAction.php | 72 + .../Auth/Role/RevokePermissionAction.php | 72 + .../Models/Auth/User/GivePermissionAction.php | 72 + .../Models/Auth/User/GiveRoleAction.php | 72 + .../Auth/User/RevokePermissionAction.php | 72 + .../Models/Auth/User/RevokeRoleAction.php | 72 + .../Wiki/Anime/AttachAnimeImageAction.php | 27 + .../Wiki/Anime/AttachAnimeResourceAction.php | 41 + .../Models/Wiki/Anime/BackfillAnimeAction.php | 225 ++ .../Wiki/Artist/AttachArtistImageAction.php | 27 + .../Artist/AttachArtistResourceAction.php | 41 + .../Actions/Models/Wiki/AttachImageAction.php | 62 + .../Models/Wiki/AttachResourceAction.php | 76 + .../AttachAudioToRelatedVideosAction.php | 52 + .../Wiki/Song/AttachSongResourceAction.php | 41 + .../Wiki/Studio/AttachStudioImageAction.php | 27 + .../Studio/AttachStudioResourceAction.php | 41 + .../Wiki/Studio/BackfillStudioAction.php | 142 + .../Models/Wiki/Video/BackfillAudioAction.php | 105 + .../Actions/Storage/Base/DeleteAction.php | 24 + .../Actions/Storage/Base/MoveAction.php | 68 + .../Actions/Storage/StorageAction.php | 56 + .../Storage/Wiki/Audio/DeleteAudioAction.php | 28 + .../Storage/Wiki/Audio/MoveAudioAction.php | 68 + .../Storage/Wiki/Video/DeleteVideoAction.php | 28 + .../Storage/Wiki/Video/MoveVideoAction.php | 68 + .../Wiki/Video/Script/DeleteScriptAction.php | 28 + .../Wiki/Video/Script/MoveScriptAction.php | 68 + .../Components/Columns/TextColumn.php | 58 + app/Filament/Components/Fields/Select.php | 56 + .../Components/Filters/DateFilter.php | 85 + .../Components/Filters/NumberFilter.php | 88 + .../Components/Filters/TextFilter.php | 56 + .../Components/Infolist/TextEntry.php | 56 + app/Filament/Dashboards/AdminDashboard.php | 70 + app/Filament/Dashboards/BaseDashboard.php | 33 + app/Filament/Dashboards/WikiDashboard.php | 61 + .../Discord/DiscordThreadHeaderAction.php | 50 + .../Models/AssignHashidsHeaderAction.php | 65 + .../Auth/Role/GivePermissionHeaderAction.php | 72 + .../Role/RevokePermissionHeaderAction.php | 72 + .../Auth/User/GivePermissionHeaderAction.php | 73 + .../Models/Auth/User/GiveRoleHeaderAction.php | 73 + .../User/RevokePermissionHeaderAction.php | 72 + .../Auth/User/RevokeRoleHeaderAction.php | 72 + .../Anime/AttachAnimeImageHeaderAction.php | 27 + .../Anime/AttachAnimeResourceHeaderAction.php | 41 + .../Wiki/Anime/BackfillAnimeHeaderAction.php | 226 ++ .../Artist/AttachArtistImageHeaderAction.php | 27 + .../AttachArtistResourceHeaderAction.php | 41 + .../Models/Wiki/AttachImageHeaderAction.php | 62 + .../Wiki/AttachResourceHeaderAction.php | 76 + ...AttachAudioToRelatedVideosHeaderAction.php | 53 + .../Song/AttachSongResourceHeaderAction.php | 41 + .../Studio/AttachStudioImageHeaderAction.php | 27 + .../AttachStudioResourceHeaderAction.php | 41 + .../Studio/BackfillStudioHeaderAction.php | 143 + .../Wiki/Video/BackfillAudioHeaderAction.php | 105 + .../Storage/Base/DeleteHeaderAction.php | 24 + .../Storage/Base/MoveHeaderAction.php | 68 + .../Storage/StorageHeaderAction.php | 57 + .../Wiki/Audio/DeleteAudioHeaderAction.php | 28 + .../Wiki/Audio/MoveAudioHeaderAction.php | 68 + .../Wiki/Video/DeleteVideoHeaderAction.php | 28 + .../Wiki/Video/MoveVideoHeaderAction.php | 68 + .../Video/Script/DeleteScriptHeaderAction.php | 28 + .../Video/Script/MoveScriptHeaderAction.php | 69 + .../Providers/GlobalSearchScoutProvider.php | 63 + app/Filament/Resources/Admin/Announcement.php | 259 ++ .../Announcement/Pages/CreateAnnouncement.php | 16 + .../Announcement/Pages/EditAnnouncement.php | 31 + .../Announcement/Pages/ListAnnouncements.php | 31 + .../Announcement/Pages/ViewAnnouncement.php | 31 + app/Filament/Resources/Admin/Dump.php | 297 ++ .../Resources/Admin/Dump/Pages/CreateDump.php | 16 + .../Resources/Admin/Dump/Pages/EditDump.php | 31 + .../Resources/Admin/Dump/Pages/ListDumps.php | 31 + .../Resources/Admin/Dump/Pages/ViewDump.php | 31 + app/Filament/Resources/Admin/Feature.php | 271 ++ .../Admin/Feature/Pages/CreateFeature.php | 16 + .../Admin/Feature/Pages/EditFeature.php | 31 + .../Admin/Feature/Pages/ListFeatures.php | 31 + .../Admin/Feature/Pages/ViewFeature.php | 31 + .../Resources/Admin/FeaturedTheme.php | 395 +++ .../Pages/CreateFeaturedTheme.php | 16 + .../FeaturedTheme/Pages/EditFeaturedTheme.php | 31 + .../Pages/ListFeaturedThemes.php | 31 + .../FeaturedTheme/Pages/ViewFeaturedTheme.php | 31 + app/Filament/Resources/Auth/Permission.php | 276 ++ .../Permission/Pages/CreatePermission.php | 16 + .../Auth/Permission/Pages/EditPermission.php | 31 + .../Auth/Permission/Pages/ListPermissions.php | 31 + .../Auth/Permission/Pages/ViewPermission.php | 31 + .../RolePermissionRelationManager.php | 119 + .../UserPermissionRelationManager.php | 119 + app/Filament/Resources/Auth/Role.php | 337 ++ .../Resources/Auth/Role/Pages/CreateRole.php | 16 + .../Resources/Auth/Role/Pages/EditRole.php | 44 + .../Resources/Auth/Role/Pages/ListRoles.php | 31 + .../Resources/Auth/Role/Pages/ViewRole.php | 31 + .../PermissionRoleRelationManager.php | 121 + .../UserRoleRelationManager.php | 121 + app/Filament/Resources/Auth/User.php | 316 ++ .../Resources/Auth/User/Pages/CreateUser.php | 16 + .../Resources/Auth/User/Pages/EditUser.php | 54 + .../Resources/Auth/User/Pages/ListUsers.php | 31 + .../Resources/Auth/User/Pages/ViewUser.php | 31 + .../PermissionUserRelationManager.php | 121 + .../PlaylistUserRelationManager.php | 119 + .../RoleUserRelationManager.php | 121 + .../Resources/Base/BaseCreateResource.php | 15 + .../Resources/Base/BaseEditResource.php | 34 + .../Resources/Base/BaseListResources.php | 28 + .../Resources/Base/BaseViewResource.php | 37 + .../Resources/BaseRelationManager.php | 129 + app/Filament/Resources/BaseResource.php | 184 + app/Filament/Resources/Document/Page.php | 302 ++ .../Document/Page/Pages/CreatePage.php | 16 + .../Document/Page/Pages/EditPage.php | 31 + .../Document/Page/Pages/ListPages.php | 31 + .../Document/Page/Pages/ViewPage.php | 31 + app/Filament/Resources/List/Playlist.php | 364 ++ .../List/Playlist/Pages/CreatePlaylist.php | 16 + .../List/Playlist/Pages/EditPlaylist.php | 39 + .../List/Playlist/Pages/ListPlaylists.php | 50 + .../List/Playlist/Pages/ViewPlaylist.php | 31 + .../ImagePlaylistRelationManager.php | 122 + .../TrackPlaylistRelationManager.php | 122 + .../Resources/List/Playlist/Track.php | 319 ++ .../List/Playlist/Track/Pages/CreateTrack.php | 16 + .../List/Playlist/Track/Pages/EditTrack.php | 39 + .../List/Playlist/Track/Pages/ListTracks.php | 31 + .../List/Playlist/Track/Pages/ViewTrack.php | 31 + app/Filament/Resources/Wiki/Anime.php | 497 +++ .../Wiki/Anime/Pages/CreateAnime.php | 16 + .../Resources/Wiki/Anime/Pages/EditAnime.php | 108 + .../Resources/Wiki/Anime/Pages/ListAnimes.php | 91 + .../Resources/Wiki/Anime/Pages/ViewAnime.php | 31 + .../ImageAnimeRelationManager.php | 122 + .../ResourceAnimeRelationManager.php | 122 + .../SeriesAnimeRelationManager.php | 122 + .../StudioAnimeRelationManager.php | 122 + .../SynonymAnimeRelationManager.php | 122 + .../ThemeAnimeRelationManager.php | 122 + app/Filament/Resources/Wiki/Anime/Synonym.php | 299 ++ .../Anime/Synonym/Pages/CreateSynonym.php | 16 + .../Wiki/Anime/Synonym/Pages/EditSynonym.php | 31 + .../Wiki/Anime/Synonym/Pages/ListSynonyms.php | 50 + .../Wiki/Anime/Synonym/Pages/ViewSynonym.php | 31 + app/Filament/Resources/Wiki/Anime/Theme.php | 432 +++ .../Resources/Wiki/Anime/Theme/Entry.php | 425 +++ .../Anime/Theme/Entry/Pages/CreateEntry.php | 16 + .../Anime/Theme/Entry/Pages/EditEntry.php | 31 + .../Anime/Theme/Entry/Pages/ListEntries.php | 50 + .../Anime/Theme/Entry/Pages/ViewEntry.php | 31 + .../VideoEntryRelationManager.php | 123 + .../Wiki/Anime/Theme/Pages/CreateTheme.php | 16 + .../Wiki/Anime/Theme/Pages/EditTheme.php | 31 + .../Wiki/Anime/Theme/Pages/ListThemes.php | 50 + .../Wiki/Anime/Theme/Pages/ViewTheme.php | 31 + .../EntryThemeRelationManager.php | 122 + app/Filament/Resources/Wiki/Artist.php | 372 +++ .../Wiki/Artist/Pages/CreateArtist.php | 16 + .../Wiki/Artist/Pages/EditArtist.php | 75 + .../Wiki/Artist/Pages/ListArtists.php | 89 + .../Wiki/Artist/Pages/ViewArtist.php | 31 + .../GroupArtistRelationManager.php | 121 + .../ImageArtistRelationManager.php | 122 + .../MemberArtistRelationManager.php | 121 + .../ResourceArtistRelationManager.php | 122 + .../SongArtistRelationManager.php | 122 + app/Filament/Resources/Wiki/Audio.php | 344 ++ .../Wiki/Audio/Pages/CreateAudio.php | 16 + .../Resources/Wiki/Audio/Pages/EditAudio.php | 57 + .../Resources/Wiki/Audio/Pages/ListAudios.php | 48 + .../Resources/Wiki/Audio/Pages/ViewAudio.php | 31 + .../VideoAudioRelationManager.php | 123 + .../Resources/Wiki/ExternalResource.php | 331 ++ .../Pages/CreateExternalResource.php | 16 + .../Pages/EditExternalResource.php | 31 + .../Pages/ListExternalResources.php | 48 + .../Pages/ViewExternalResource.php | 31 + .../AnimeResourceRelationManager.php | 122 + .../ArtistResourceRelationManager.php | 122 + .../SongResourceRelationManager.php | 122 + .../StudioResourceRelationManager.php | 122 + app/Filament/Resources/Wiki/Group.php | 293 ++ .../Wiki/Group/Pages/CreateGroup.php | 16 + .../Resources/Wiki/Group/Pages/EditGroup.php | 31 + .../Resources/Wiki/Group/Pages/ListGroups.php | 31 + .../Resources/Wiki/Group/Pages/ViewGroup.php | 31 + .../ThemeGroupRelationManager.php | 122 + app/Filament/Resources/Wiki/Image.php | 311 ++ .../Wiki/Image/Pages/CreateImage.php | 16 + .../Resources/Wiki/Image/Pages/EditImage.php | 31 + .../Resources/Wiki/Image/Pages/ListImages.php | 48 + .../Resources/Wiki/Image/Pages/ViewImage.php | 31 + .../AnimeImageRelationManager.php | 122 + .../ArtistImageRelationManager.php | 122 + .../PlaylistImageRelationManager.php | 122 + .../StudioImageRelationManager.php | 122 + app/Filament/Resources/Wiki/Series.php | 309 ++ .../Wiki/Series/Pages/CreateSeries.php | 16 + .../Wiki/Series/Pages/EditSeries.php | 31 + .../Wiki/Series/Pages/ListSeries.php | 50 + .../Wiki/Series/Pages/ViewSeries.php | 31 + .../AnimeSeriesRelationManager.php | 122 + app/Filament/Resources/Wiki/Song.php | 328 ++ .../Resources/Wiki/Song/Pages/CreateSong.php | 31 + .../Resources/Wiki/Song/Pages/EditSong.php | 55 + .../Resources/Wiki/Song/Pages/ListSongs.php | 79 + .../Resources/Wiki/Song/Pages/ViewSong.php | 31 + .../ArtistSongRelationManager.php | 122 + .../ResourceSongRelationManager.php | 122 + .../ThemeSongRelationManager.php | 122 + app/Filament/Resources/Wiki/Studio.php | 343 ++ .../Wiki/Studio/Pages/CreateStudio.php | 16 + .../Wiki/Studio/Pages/EditStudio.php | 77 + .../Wiki/Studio/Pages/ListStudios.php | 81 + .../Wiki/Studio/Pages/ViewStudio.php | 31 + .../AnimeStudioRelationManager.php | 122 + .../ImageStudioRelationManager.php | 122 + .../ResourceStudioRelationManager.php | 122 + app/Filament/Resources/Wiki/Video.php | 456 +++ .../Wiki/Video/Pages/CreateVideo.php | 16 + .../Resources/Wiki/Video/Pages/EditVideo.php | 57 + .../Resources/Wiki/Video/Pages/ListVideos.php | 75 + .../Resources/Wiki/Video/Pages/ViewVideo.php | 31 + .../EntryVideoRelationManager.php | 122 + .../ScriptVideoRelationManager.php | 118 + .../TrackVideoRelationManager.php | 122 + app/Filament/Resources/Wiki/Video/Script.php | 287 ++ .../Wiki/Video/Script/Pages/CreateScript.php | 16 + .../Wiki/Video/Script/Pages/EditScript.php | 50 + .../Wiki/Video/Script/Pages/ListScripts.php | 31 + .../Wiki/Video/Script/Pages/ViewScript.php | 31 + .../Wiki/Image/UploadImageTableAction.php | 79 + .../Repositories/ReconcileTableAction.php | 48 + .../Admin/Dump/ReconcileDumpTableAction.php | 42 + .../Storage/ReconcileStorageTableAction.php | 64 + .../Wiki/Audio/ReconcileAudioTableAction.php | 28 + .../Wiki/Video/ReconcileVideoTableAction.php | 28 + .../Script/ReconcileScriptTableAction.php | 28 + .../Storage/Admin/DumpDocumentTableAction.php | 25 + .../Storage/Admin/DumpTableAction.php | 178 + .../Storage/Admin/DumpWikiTableAction.php | 25 + .../Storage/Admin/PruneDumpTableAction.php | 29 + .../Storage/Base/PruneTableAction.php | 44 + .../Storage/Base/UploadTableAction.php | 64 + .../Storage/StorageTableAction.php | 53 + .../Wiki/Audio/UploadAudioTableAction.php | 87 + .../Video/Script/UploadScriptTableAction.php | 90 + .../Wiki/Video/UploadVideoTableAction.php | 218 ++ app/Filament/Tabs/Anime/AnimeImageTab.php | 61 + app/Filament/Tabs/Anime/AnimeResourceTab.php | 61 + .../Tabs/Anime/AnimeStreamingResourceTab.php | 89 + .../Tabs/Anime/Image/AnimeCoverLargeTab.php | 34 + .../Tabs/Anime/Image/AnimeCoverSmallTab.php | 34 + .../Anime/Resource/AnimeAnidbResourceTab.php | 34 + .../Resource/AnimeAnilistResourceTab.php | 34 + .../Anime/Resource/AnimeAnnResourceTab.php | 34 + .../Anime/Resource/AnimeKitsuResourceTab.php | 34 + .../Anime/Resource/AnimeMalResourceTab.php | 34 + .../Resource/AnimeOfficialSiteResourceTab.php | 34 + .../Anime/Resource/AnimePlanetResourceTab.php | 34 + .../Resource/AnimeTwitterResourceTab.php | 34 + .../Resource/AnimeYoutubeResourceTab.php | 34 + .../Tabs/Anime/Studio/AnimeStudioTab.php | 58 + app/Filament/Tabs/Artist/ArtistImageTab.php | 61 + .../Tabs/Artist/ArtistResourceTab.php | 61 + .../Tabs/Artist/Image/ArtistCoverLargeTab.php | 34 + .../Tabs/Artist/Image/ArtistCoverSmallTab.php | 34 + .../Resource/ArtistAnidbResourceTab.php | 34 + .../Resource/ArtistAnilistResourceTab.php | 34 + .../Resource/ArtistAnimePlanetResourceTab.php | 34 + .../Artist/Resource/ArtistAnnResourceTab.php | 34 + .../Artist/Resource/ArtistMalResourceTab.php | 34 + .../ArtistOfficialSiteResourceTab.php | 34 + .../Resource/ArtistSpotifyResourceTab.php | 34 + .../Resource/ArtistTwitterResourceTab.php | 34 + .../Resource/ArtistYoutubeResourceTab.php | 34 + .../Tabs/Artist/Song/ArtistSongTab.php | 58 + app/Filament/Tabs/Audio/AudioVideoTab.php | 60 + app/Filament/Tabs/BaseTab.php | 66 + .../ExternalResourceUnlinkedTab.php | 67 + app/Filament/Tabs/Image/ImageUnlinkedTab.php | 72 + .../Resource/SongAmazonMusicResourceTab.php | 36 + .../Song/Resource/SongAnidbResourceTab.php | 36 + .../Resource/SongAppleMusicResourceTab.php | 36 + .../Song/Resource/SongSpotifyResourceTab.php | 36 + .../Resource/SongYoutubeMusicResourceTab.php | 36 + .../Song/Resource/SongYoutubeResourceTab.php | 36 + app/Filament/Tabs/Song/SongArtistTab.php | 60 + app/Filament/Tabs/Song/SongResourceTab.php | 61 + .../Tabs/Studio/Image/StudioCoverLargeTab.php | 34 + .../Tabs/Studio/Image/StudioCoverSmallTab.php | 34 + .../Resource/StudioAnidbResourceTab.php | 34 + .../Resource/StudioAnilistResourceTab.php | 34 + .../Resource/StudioAnimePlanetResourceTab.php | 34 + .../Studio/Resource/StudioAnnResourceTab.php | 34 + .../Studio/Resource/StudioMalResourceTab.php | 34 + app/Filament/Tabs/Studio/StudioImageTab.php | 61 + .../Tabs/Studio/StudioResourceTab.php | 61 + .../Tabs/Studio/StudioUnlinkedTab.php | 60 + app/Filament/Tabs/Video/VideoAudioTab.php | 64 + .../Tabs/Video/VideoResolutionTab.php | 58 + app/Filament/Tabs/Video/VideoScriptTab.php | 64 + app/Filament/Tabs/Video/VideoSourceTab.php | 64 + app/Filament/Tabs/Video/VideoUnlinkedTab.php | 64 + app/Filament/Widgets/Auth/UserChart.php | 78 + app/Filament/Widgets/BaseChartWidget.php | 59 + app/Filament/Widgets/BaseStatsWidget.php | 14 + app/Filament/Widgets/List/PlaylistChart.php | 78 + .../Widgets/List/PlaylistTrackChart.php | 78 + .../Widgets/Wiki/Anime/AnimeChart.php | 78 + .../Widgets/Wiki/Artist/ArtistChart.php | 78 + .../Widgets/Wiki/Series/SeriesChart.php | 78 + .../Widgets/Wiki/Video/VideoChart.php | 78 + app/Models/Admin/Announcement.php | 12 +- app/Models/Admin/Dump.php | 12 +- app/Models/Admin/Feature.php | 12 +- app/Models/Admin/FeaturedTheme.php | 14 +- app/Models/Auth/User.php | 40 +- app/Models/BaseModel.php | 3 +- app/Models/Document/Page.php | 12 +- app/Models/List/Playlist.php | 12 +- app/Models/List/Playlist/PlaylistTrack.php | 14 +- app/Models/Wiki/Anime.php | 12 +- app/Models/Wiki/Anime/AnimeSynonym.php | 12 +- app/Models/Wiki/Anime/AnimeTheme.php | 18 +- .../Wiki/Anime/Theme/AnimeThemeEntry.php | 18 +- app/Models/Wiki/Artist.php | 12 +- app/Models/Wiki/Audio.php | 12 +- app/Models/Wiki/ExternalResource.php | 12 +- app/Models/Wiki/Group.php | 14 +- app/Models/Wiki/Image.php | 12 +- app/Models/Wiki/Series.php | 12 +- app/Models/Wiki/Song.php | 14 +- app/Models/Wiki/Studio.php | 12 +- app/Models/Wiki/Video.php | 12 +- app/Models/Wiki/Video/VideoScript.php | 12 +- app/Pivots/List/PlaylistImage.php | 2 +- app/Pivots/Wiki/AnimeImage.php | 2 +- app/Pivots/Wiki/AnimeResource.php | 2 +- app/Pivots/Wiki/AnimeSeries.php | 2 +- app/Pivots/Wiki/AnimeStudio.php | 2 +- app/Pivots/Wiki/AnimeThemeEntryVideo.php | 2 +- app/Pivots/Wiki/ArtistImage.php | 2 +- app/Pivots/Wiki/ArtistMember.php | 2 +- app/Pivots/Wiki/ArtistResource.php | 2 +- app/Pivots/Wiki/ArtistSong.php | 2 +- app/Pivots/Wiki/SongResource.php | 2 +- app/Pivots/Wiki/StudioImage.php | 2 +- app/Pivots/Wiki/StudioResource.php | 2 +- app/Policies/Admin/AnnouncementPolicy.php | 11 + app/Policies/Admin/DumpPolicy.php | 11 + app/Policies/Admin/FeaturePolicy.php | 3 +- app/Policies/Admin/FeaturedThemePolicy.php | 14 +- app/Policies/Auth/PermissionPolicy.php | 11 + app/Policies/Auth/RolePolicy.php | 11 + app/Policies/Document/PagePolicy.php | 11 + .../List/Playlist/PlaylistTrackPolicy.php | 13 + app/Policies/List/PlaylistPolicy.php | 31 +- .../Wiki/Anime/AnimeSynonymPolicy.php | 11 + app/Policies/Wiki/Anime/AnimeThemePolicy.php | 11 + .../Anime/Theme/AnimeThemeEntryPolicy.php | 11 + app/Policies/Wiki/AnimePolicy.php | 11 + app/Policies/Wiki/ArtistPolicy.php | 11 + app/Policies/Wiki/AudioPolicy.php | 11 + app/Policies/Wiki/ExternalResourcePolicy.php | 11 + app/Policies/Wiki/ImagePolicy.php | 11 + app/Policies/Wiki/SeriesPolicy.php | 11 + app/Policies/Wiki/SongPolicy.php | 11 + app/Policies/Wiki/StudioPolicy.php | 11 + app/Policies/Wiki/Video/VideoScriptPolicy.php | 11 + app/Policies/Wiki/VideoPolicy.php | 11 + app/Providers/FilamentPanelProvider.php | 62 + app/Rules/Wiki/Submission/SubmissionRule.php | 49 +- composer.json | 7 +- composer.lock | 2974 ++++++++++++++--- config/app.php | 1 + config/filament.php | 101 + config/livewire.php | 161 + database/factories/Auth/UserFactory.php | 3 +- ...4_11_024316_create_notifications_table.php | 35 + .../seeders/Auth/Role/DeveloperRoleSeeder.php | 8 +- .../seeders/Auth/Role/EncoderRoleSeeder.php | 8 +- .../seeders/Auth/Role/PatronRoleSeeder.php | 1 + .../Auth/Role/WikiEditorRoleSeeder.php | 8 +- .../Auth/Role/WikiViewerRoleSeeder.php | 8 +- lang/en/filament.php | 1007 ++++++ phpstan.neon | 3 + public/css/filament/filament/app.css | 1 + public/css/filament/forms/forms.css | 49 + public/css/filament/support/support.css | 1 + public/js/app/components/apexcharts.js | 709 ++++ public/js/filament/filament/app.js | 1 + public/js/filament/filament/echo.js | 13 + .../filament/forms/components/color-picker.js | 1 + .../forms/components/date-time-picker.js | 1 + .../filament/forms/components/file-upload.js | 123 + .../js/filament/forms/components/key-value.js | 1 + .../forms/components/markdown-editor.js | 51 + .../filament/forms/components/rich-editor.js | 143 + public/js/filament/forms/components/select.js | 6 + .../filament/forms/components/tags-input.js | 1 + .../js/filament/forms/components/textarea.js | 1 + .../filament/notifications/notifications.js | 1 + public/js/filament/support/async-alpine.js | 1 + public/js/filament/support/support.js | 46 + public/js/filament/tables/components/table.js | 1 + .../js/filament/widgets/components/chart.js | 37 + .../components/stats-overview/stat/chart.js | 29 + .../filament/components/select.blade.php | 17 + .../Storage/Admin/DumpReconcileTest.php | 4 - .../Storage/Wiki/AudioReconcileTest.php | 4 - .../Wiki/Video/ScriptReconcileTest.php | 4 - .../Storage/Wiki/VideoReconcileTest.php | 4 - .../Storage/Admin/DocumentDumpTest.php | 4 - .../Commands/Storage/Admin/DumpPruneTest.php | 4 - .../Commands/Storage/Admin/WikiDumpTest.php | 4 - tests/Unit/Models/Admin/AnnouncementTest.php | 12 + tests/Unit/Models/Admin/DumpTest.php | 12 + tests/Unit/Models/Admin/FeatureTest.php | 12 + tests/Unit/Models/Admin/FeaturedThemeTest.php | 14 + tests/Unit/Models/Auth/UserTest.php | 12 + tests/Unit/Models/Document/PageTest.php | 12 + tests/Unit/Models/List/Playlist/TrackTest.php | 17 +- tests/Unit/Models/List/PlaylistTest.php | 16 +- .../Models/Wiki/Anime/AnimeSynonymTest.php | 14 + .../Unit/Models/Wiki/Anime/AnimeThemeTest.php | 14 + .../Wiki/Anime/Theme/AnimeThemeEntryTest.php | 14 + tests/Unit/Models/Wiki/AnimeTest.php | 12 + tests/Unit/Models/Wiki/ArtistTest.php | 12 + tests/Unit/Models/Wiki/AudioTest.php | 12 + .../Unit/Models/Wiki/ExternalResourceTest.php | 12 + tests/Unit/Models/Wiki/GroupTest.php | 36 +- tests/Unit/Models/Wiki/ImageTest.php | 12 + tests/Unit/Models/Wiki/SeriesTest.php | 12 + tests/Unit/Models/Wiki/SongTest.php | 14 + tests/Unit/Models/Wiki/StudioTest.php | 12 + tests/Unit/Models/Wiki/Video/ScriptTest.php | 14 +- tests/Unit/Models/Wiki/VideoTest.php | 12 + 470 files changed, 32491 insertions(+), 683 deletions(-) create mode 100644 app/Actions/Discord/DiscordThreadAction.php create mode 100644 app/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php create mode 100644 app/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php create mode 100644 app/Actions/Models/Wiki/Artist/AttachArtistImageAction.php create mode 100644 app/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php create mode 100644 app/Actions/Models/Wiki/AttachImageAction.php create mode 100644 app/Actions/Models/Wiki/AttachResourceAction.php create mode 100644 app/Actions/Models/Wiki/Song/AttachSongResourceAction.php create mode 100644 app/Actions/Models/Wiki/Studio/AttachStudioImageAction.php create mode 100644 app/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php create mode 100644 app/Actions/Models/Wiki/UploadImageAction.php create mode 100644 app/Concerns/Filament/Enums/HasColorOrEmoji.php create mode 100644 app/Concerns/Filament/HasTabs.php create mode 100644 app/Contracts/Models/HasSubtitle.php create mode 100644 app/Filament/Actions/Discord/DiscordThreadAction.php create mode 100644 app/Filament/Actions/Models/AssignHashidsAction.php create mode 100644 app/Filament/Actions/Models/Auth/Permission/GiveRoleAction.php create mode 100644 app/Filament/Actions/Models/Auth/Permission/RevokeRoleAction.php create mode 100644 app/Filament/Actions/Models/Auth/Role/GivePermissionAction.php create mode 100644 app/Filament/Actions/Models/Auth/Role/RevokePermissionAction.php create mode 100644 app/Filament/Actions/Models/Auth/User/GivePermissionAction.php create mode 100644 app/Filament/Actions/Models/Auth/User/GiveRoleAction.php create mode 100644 app/Filament/Actions/Models/Auth/User/RevokePermissionAction.php create mode 100644 app/Filament/Actions/Models/Auth/User/RevokeRoleAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Artist/AttachArtistImageAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php create mode 100644 app/Filament/Actions/Models/Wiki/AttachImageAction.php create mode 100644 app/Filament/Actions/Models/Wiki/AttachResourceAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Audio/AttachAudioToRelatedVideosAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Song/AttachSongResourceAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Studio/AttachStudioImageAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php create mode 100644 app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php create mode 100644 app/Filament/Actions/Storage/Base/DeleteAction.php create mode 100644 app/Filament/Actions/Storage/Base/MoveAction.php create mode 100644 app/Filament/Actions/Storage/StorageAction.php create mode 100644 app/Filament/Actions/Storage/Wiki/Audio/DeleteAudioAction.php create mode 100644 app/Filament/Actions/Storage/Wiki/Audio/MoveAudioAction.php create mode 100644 app/Filament/Actions/Storage/Wiki/Video/DeleteVideoAction.php create mode 100644 app/Filament/Actions/Storage/Wiki/Video/MoveVideoAction.php create mode 100644 app/Filament/Actions/Storage/Wiki/Video/Script/DeleteScriptAction.php create mode 100644 app/Filament/Actions/Storage/Wiki/Video/Script/MoveScriptAction.php create mode 100644 app/Filament/Components/Columns/TextColumn.php create mode 100644 app/Filament/Components/Fields/Select.php create mode 100644 app/Filament/Components/Filters/DateFilter.php create mode 100644 app/Filament/Components/Filters/NumberFilter.php create mode 100644 app/Filament/Components/Filters/TextFilter.php create mode 100644 app/Filament/Components/Infolist/TextEntry.php create mode 100644 app/Filament/Dashboards/AdminDashboard.php create mode 100644 app/Filament/Dashboards/BaseDashboard.php create mode 100644 app/Filament/Dashboards/WikiDashboard.php create mode 100644 app/Filament/HeaderActions/Discord/DiscordThreadHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/AssignHashidsHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Auth/Role/GivePermissionHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Auth/Role/RevokePermissionHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Auth/User/GivePermissionHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Auth/User/GiveRoleHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Auth/User/RevokePermissionHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Auth/User/RevokeRoleHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeImageHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeResourceHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Anime/BackfillAnimeHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistImageHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistResourceHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/AttachImageHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/AttachResourceHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Audio/AttachAudioToRelatedVideosHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Song/AttachSongResourceHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioImageHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioResourceHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Studio/BackfillStudioHeaderAction.php create mode 100644 app/Filament/HeaderActions/Models/Wiki/Video/BackfillAudioHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Base/DeleteHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Base/MoveHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/StorageHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Wiki/Audio/DeleteAudioHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Wiki/Audio/MoveAudioHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Wiki/Video/DeleteVideoHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Wiki/Video/MoveVideoHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Wiki/Video/Script/DeleteScriptHeaderAction.php create mode 100644 app/Filament/HeaderActions/Storage/Wiki/Video/Script/MoveScriptHeaderAction.php create mode 100644 app/Filament/Providers/GlobalSearchScoutProvider.php create mode 100644 app/Filament/Resources/Admin/Announcement.php create mode 100644 app/Filament/Resources/Admin/Announcement/Pages/CreateAnnouncement.php create mode 100644 app/Filament/Resources/Admin/Announcement/Pages/EditAnnouncement.php create mode 100644 app/Filament/Resources/Admin/Announcement/Pages/ListAnnouncements.php create mode 100644 app/Filament/Resources/Admin/Announcement/Pages/ViewAnnouncement.php create mode 100644 app/Filament/Resources/Admin/Dump.php create mode 100644 app/Filament/Resources/Admin/Dump/Pages/CreateDump.php create mode 100644 app/Filament/Resources/Admin/Dump/Pages/EditDump.php create mode 100644 app/Filament/Resources/Admin/Dump/Pages/ListDumps.php create mode 100644 app/Filament/Resources/Admin/Dump/Pages/ViewDump.php create mode 100644 app/Filament/Resources/Admin/Feature.php create mode 100644 app/Filament/Resources/Admin/Feature/Pages/CreateFeature.php create mode 100644 app/Filament/Resources/Admin/Feature/Pages/EditFeature.php create mode 100644 app/Filament/Resources/Admin/Feature/Pages/ListFeatures.php create mode 100644 app/Filament/Resources/Admin/Feature/Pages/ViewFeature.php create mode 100644 app/Filament/Resources/Admin/FeaturedTheme.php create mode 100644 app/Filament/Resources/Admin/FeaturedTheme/Pages/CreateFeaturedTheme.php create mode 100644 app/Filament/Resources/Admin/FeaturedTheme/Pages/EditFeaturedTheme.php create mode 100644 app/Filament/Resources/Admin/FeaturedTheme/Pages/ListFeaturedThemes.php create mode 100644 app/Filament/Resources/Admin/FeaturedTheme/Pages/ViewFeaturedTheme.php create mode 100644 app/Filament/Resources/Auth/Permission.php create mode 100644 app/Filament/Resources/Auth/Permission/Pages/CreatePermission.php create mode 100644 app/Filament/Resources/Auth/Permission/Pages/EditPermission.php create mode 100644 app/Filament/Resources/Auth/Permission/Pages/ListPermissions.php create mode 100644 app/Filament/Resources/Auth/Permission/Pages/ViewPermission.php create mode 100644 app/Filament/Resources/Auth/Permission/RelationManagers/RolePermissionRelationManager.php create mode 100644 app/Filament/Resources/Auth/Permission/RelationManagers/UserPermissionRelationManager.php create mode 100644 app/Filament/Resources/Auth/Role.php create mode 100644 app/Filament/Resources/Auth/Role/Pages/CreateRole.php create mode 100644 app/Filament/Resources/Auth/Role/Pages/EditRole.php create mode 100644 app/Filament/Resources/Auth/Role/Pages/ListRoles.php create mode 100644 app/Filament/Resources/Auth/Role/Pages/ViewRole.php create mode 100644 app/Filament/Resources/Auth/Role/RelationManagers/PermissionRoleRelationManager.php create mode 100644 app/Filament/Resources/Auth/Role/RelationManagers/UserRoleRelationManager.php create mode 100644 app/Filament/Resources/Auth/User.php create mode 100644 app/Filament/Resources/Auth/User/Pages/CreateUser.php create mode 100644 app/Filament/Resources/Auth/User/Pages/EditUser.php create mode 100644 app/Filament/Resources/Auth/User/Pages/ListUsers.php create mode 100644 app/Filament/Resources/Auth/User/Pages/ViewUser.php create mode 100644 app/Filament/Resources/Auth/User/RelationManagers/PermissionUserRelationManager.php create mode 100644 app/Filament/Resources/Auth/User/RelationManagers/PlaylistUserRelationManager.php create mode 100644 app/Filament/Resources/Auth/User/RelationManagers/RoleUserRelationManager.php create mode 100644 app/Filament/Resources/Base/BaseCreateResource.php create mode 100644 app/Filament/Resources/Base/BaseEditResource.php create mode 100644 app/Filament/Resources/Base/BaseListResources.php create mode 100644 app/Filament/Resources/Base/BaseViewResource.php create mode 100644 app/Filament/Resources/BaseRelationManager.php create mode 100644 app/Filament/Resources/BaseResource.php create mode 100644 app/Filament/Resources/Document/Page.php create mode 100644 app/Filament/Resources/Document/Page/Pages/CreatePage.php create mode 100644 app/Filament/Resources/Document/Page/Pages/EditPage.php create mode 100644 app/Filament/Resources/Document/Page/Pages/ListPages.php create mode 100644 app/Filament/Resources/Document/Page/Pages/ViewPage.php create mode 100644 app/Filament/Resources/List/Playlist.php create mode 100644 app/Filament/Resources/List/Playlist/Pages/CreatePlaylist.php create mode 100644 app/Filament/Resources/List/Playlist/Pages/EditPlaylist.php create mode 100644 app/Filament/Resources/List/Playlist/Pages/ListPlaylists.php create mode 100644 app/Filament/Resources/List/Playlist/Pages/ViewPlaylist.php create mode 100644 app/Filament/Resources/List/Playlist/RelationManagers/ImagePlaylistRelationManager.php create mode 100644 app/Filament/Resources/List/Playlist/RelationManagers/TrackPlaylistRelationManager.php create mode 100644 app/Filament/Resources/List/Playlist/Track.php create mode 100644 app/Filament/Resources/List/Playlist/Track/Pages/CreateTrack.php create mode 100644 app/Filament/Resources/List/Playlist/Track/Pages/EditTrack.php create mode 100644 app/Filament/Resources/List/Playlist/Track/Pages/ListTracks.php create mode 100644 app/Filament/Resources/List/Playlist/Track/Pages/ViewTrack.php create mode 100644 app/Filament/Resources/Wiki/Anime.php create mode 100644 app/Filament/Resources/Wiki/Anime/Pages/CreateAnime.php create mode 100644 app/Filament/Resources/Wiki/Anime/Pages/EditAnime.php create mode 100644 app/Filament/Resources/Wiki/Anime/Pages/ListAnimes.php create mode 100644 app/Filament/Resources/Wiki/Anime/Pages/ViewAnime.php create mode 100644 app/Filament/Resources/Wiki/Anime/RelationManagers/ImageAnimeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/RelationManagers/ResourceAnimeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/RelationManagers/SeriesAnimeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/RelationManagers/StudioAnimeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/RelationManagers/SynonymAnimeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/RelationManagers/ThemeAnimeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/Synonym.php create mode 100644 app/Filament/Resources/Wiki/Anime/Synonym/Pages/CreateSynonym.php create mode 100644 app/Filament/Resources/Wiki/Anime/Synonym/Pages/EditSynonym.php create mode 100644 app/Filament/Resources/Wiki/Anime/Synonym/Pages/ListSynonyms.php create mode 100644 app/Filament/Resources/Wiki/Anime/Synonym/Pages/ViewSynonym.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Entry.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/CreateEntry.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/EditEntry.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/ListEntries.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/ViewEntry.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Entry/RelationManagers/VideoEntryRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Pages/CreateTheme.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Pages/EditTheme.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Pages/ListThemes.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/Pages/ViewTheme.php create mode 100644 app/Filament/Resources/Wiki/Anime/Theme/RelationManagers/EntryThemeRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Artist.php create mode 100644 app/Filament/Resources/Wiki/Artist/Pages/CreateArtist.php create mode 100644 app/Filament/Resources/Wiki/Artist/Pages/EditArtist.php create mode 100644 app/Filament/Resources/Wiki/Artist/Pages/ListArtists.php create mode 100644 app/Filament/Resources/Wiki/Artist/Pages/ViewArtist.php create mode 100644 app/Filament/Resources/Wiki/Artist/RelationManagers/GroupArtistRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Artist/RelationManagers/ImageArtistRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Artist/RelationManagers/MemberArtistRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Artist/RelationManagers/ResourceArtistRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Artist/RelationManagers/SongArtistRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Audio.php create mode 100644 app/Filament/Resources/Wiki/Audio/Pages/CreateAudio.php create mode 100644 app/Filament/Resources/Wiki/Audio/Pages/EditAudio.php create mode 100644 app/Filament/Resources/Wiki/Audio/Pages/ListAudios.php create mode 100644 app/Filament/Resources/Wiki/Audio/Pages/ViewAudio.php create mode 100644 app/Filament/Resources/Wiki/Audio/RelationManagers/VideoAudioRelationManager.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/Pages/CreateExternalResource.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/Pages/EditExternalResource.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/Pages/ListExternalResources.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/Pages/ViewExternalResource.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/RelationManagers/AnimeResourceRelationManager.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/RelationManagers/ArtistResourceRelationManager.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/RelationManagers/SongResourceRelationManager.php create mode 100644 app/Filament/Resources/Wiki/ExternalResource/RelationManagers/StudioResourceRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Group.php create mode 100644 app/Filament/Resources/Wiki/Group/Pages/CreateGroup.php create mode 100644 app/Filament/Resources/Wiki/Group/Pages/EditGroup.php create mode 100644 app/Filament/Resources/Wiki/Group/Pages/ListGroups.php create mode 100644 app/Filament/Resources/Wiki/Group/Pages/ViewGroup.php create mode 100644 app/Filament/Resources/Wiki/Group/RelationManagers/ThemeGroupRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Image.php create mode 100644 app/Filament/Resources/Wiki/Image/Pages/CreateImage.php create mode 100644 app/Filament/Resources/Wiki/Image/Pages/EditImage.php create mode 100644 app/Filament/Resources/Wiki/Image/Pages/ListImages.php create mode 100644 app/Filament/Resources/Wiki/Image/Pages/ViewImage.php create mode 100644 app/Filament/Resources/Wiki/Image/RelationManagers/AnimeImageRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Image/RelationManagers/ArtistImageRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Image/RelationManagers/PlaylistImageRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Image/RelationManagers/StudioImageRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Series.php create mode 100644 app/Filament/Resources/Wiki/Series/Pages/CreateSeries.php create mode 100644 app/Filament/Resources/Wiki/Series/Pages/EditSeries.php create mode 100644 app/Filament/Resources/Wiki/Series/Pages/ListSeries.php create mode 100644 app/Filament/Resources/Wiki/Series/Pages/ViewSeries.php create mode 100644 app/Filament/Resources/Wiki/Series/RelationManagers/AnimeSeriesRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Song.php create mode 100644 app/Filament/Resources/Wiki/Song/Pages/CreateSong.php create mode 100644 app/Filament/Resources/Wiki/Song/Pages/EditSong.php create mode 100644 app/Filament/Resources/Wiki/Song/Pages/ListSongs.php create mode 100644 app/Filament/Resources/Wiki/Song/Pages/ViewSong.php create mode 100644 app/Filament/Resources/Wiki/Song/RelationManagers/ArtistSongRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Song/RelationManagers/ResourceSongRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Song/RelationManagers/ThemeSongRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Studio.php create mode 100644 app/Filament/Resources/Wiki/Studio/Pages/CreateStudio.php create mode 100644 app/Filament/Resources/Wiki/Studio/Pages/EditStudio.php create mode 100644 app/Filament/Resources/Wiki/Studio/Pages/ListStudios.php create mode 100644 app/Filament/Resources/Wiki/Studio/Pages/ViewStudio.php create mode 100644 app/Filament/Resources/Wiki/Studio/RelationManagers/AnimeStudioRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Studio/RelationManagers/ImageStudioRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Studio/RelationManagers/ResourceStudioRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Video.php create mode 100644 app/Filament/Resources/Wiki/Video/Pages/CreateVideo.php create mode 100644 app/Filament/Resources/Wiki/Video/Pages/EditVideo.php create mode 100644 app/Filament/Resources/Wiki/Video/Pages/ListVideos.php create mode 100644 app/Filament/Resources/Wiki/Video/Pages/ViewVideo.php create mode 100644 app/Filament/Resources/Wiki/Video/RelationManagers/EntryVideoRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Video/RelationManagers/ScriptVideoRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Video/RelationManagers/TrackVideoRelationManager.php create mode 100644 app/Filament/Resources/Wiki/Video/Script.php create mode 100644 app/Filament/Resources/Wiki/Video/Script/Pages/CreateScript.php create mode 100644 app/Filament/Resources/Wiki/Video/Script/Pages/EditScript.php create mode 100644 app/Filament/Resources/Wiki/Video/Script/Pages/ListScripts.php create mode 100644 app/Filament/Resources/Wiki/Video/Script/Pages/ViewScript.php create mode 100644 app/Filament/TableActions/Models/Wiki/Image/UploadImageTableAction.php create mode 100644 app/Filament/TableActions/Repositories/ReconcileTableAction.php create mode 100644 app/Filament/TableActions/Repositories/Storage/Admin/Dump/ReconcileDumpTableAction.php create mode 100644 app/Filament/TableActions/Repositories/Storage/ReconcileStorageTableAction.php create mode 100644 app/Filament/TableActions/Repositories/Storage/Wiki/Audio/ReconcileAudioTableAction.php create mode 100644 app/Filament/TableActions/Repositories/Storage/Wiki/Video/ReconcileVideoTableAction.php create mode 100644 app/Filament/TableActions/Repositories/Storage/Wiki/Video/Script/ReconcileScriptTableAction.php create mode 100644 app/Filament/TableActions/Storage/Admin/DumpDocumentTableAction.php create mode 100644 app/Filament/TableActions/Storage/Admin/DumpTableAction.php create mode 100644 app/Filament/TableActions/Storage/Admin/DumpWikiTableAction.php create mode 100644 app/Filament/TableActions/Storage/Admin/PruneDumpTableAction.php create mode 100644 app/Filament/TableActions/Storage/Base/PruneTableAction.php create mode 100644 app/Filament/TableActions/Storage/Base/UploadTableAction.php create mode 100644 app/Filament/TableActions/Storage/StorageTableAction.php create mode 100644 app/Filament/TableActions/Storage/Wiki/Audio/UploadAudioTableAction.php create mode 100644 app/Filament/TableActions/Storage/Wiki/Video/Script/UploadScriptTableAction.php create mode 100644 app/Filament/TableActions/Storage/Wiki/Video/UploadVideoTableAction.php create mode 100644 app/Filament/Tabs/Anime/AnimeImageTab.php create mode 100644 app/Filament/Tabs/Anime/AnimeResourceTab.php create mode 100644 app/Filament/Tabs/Anime/AnimeStreamingResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Image/AnimeCoverLargeTab.php create mode 100644 app/Filament/Tabs/Anime/Image/AnimeCoverSmallTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeAnidbResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeAnilistResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeAnnResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeKitsuResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeMalResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeOfficialSiteResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimePlanetResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeTwitterResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Resource/AnimeYoutubeResourceTab.php create mode 100644 app/Filament/Tabs/Anime/Studio/AnimeStudioTab.php create mode 100644 app/Filament/Tabs/Artist/ArtistImageTab.php create mode 100644 app/Filament/Tabs/Artist/ArtistResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Image/ArtistCoverLargeTab.php create mode 100644 app/Filament/Tabs/Artist/Image/ArtistCoverSmallTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistAnidbResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistAnilistResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistAnimePlanetResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistAnnResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistMalResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistOfficialSiteResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistSpotifyResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistTwitterResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Resource/ArtistYoutubeResourceTab.php create mode 100644 app/Filament/Tabs/Artist/Song/ArtistSongTab.php create mode 100644 app/Filament/Tabs/Audio/AudioVideoTab.php create mode 100644 app/Filament/Tabs/BaseTab.php create mode 100644 app/Filament/Tabs/ExternalResource/ExternalResourceUnlinkedTab.php create mode 100644 app/Filament/Tabs/Image/ImageUnlinkedTab.php create mode 100644 app/Filament/Tabs/Song/Resource/SongAmazonMusicResourceTab.php create mode 100644 app/Filament/Tabs/Song/Resource/SongAnidbResourceTab.php create mode 100644 app/Filament/Tabs/Song/Resource/SongAppleMusicResourceTab.php create mode 100644 app/Filament/Tabs/Song/Resource/SongSpotifyResourceTab.php create mode 100644 app/Filament/Tabs/Song/Resource/SongYoutubeMusicResourceTab.php create mode 100644 app/Filament/Tabs/Song/Resource/SongYoutubeResourceTab.php create mode 100644 app/Filament/Tabs/Song/SongArtistTab.php create mode 100644 app/Filament/Tabs/Song/SongResourceTab.php create mode 100644 app/Filament/Tabs/Studio/Image/StudioCoverLargeTab.php create mode 100644 app/Filament/Tabs/Studio/Image/StudioCoverSmallTab.php create mode 100644 app/Filament/Tabs/Studio/Resource/StudioAnidbResourceTab.php create mode 100644 app/Filament/Tabs/Studio/Resource/StudioAnilistResourceTab.php create mode 100644 app/Filament/Tabs/Studio/Resource/StudioAnimePlanetResourceTab.php create mode 100644 app/Filament/Tabs/Studio/Resource/StudioAnnResourceTab.php create mode 100644 app/Filament/Tabs/Studio/Resource/StudioMalResourceTab.php create mode 100644 app/Filament/Tabs/Studio/StudioImageTab.php create mode 100644 app/Filament/Tabs/Studio/StudioResourceTab.php create mode 100644 app/Filament/Tabs/Studio/StudioUnlinkedTab.php create mode 100644 app/Filament/Tabs/Video/VideoAudioTab.php create mode 100644 app/Filament/Tabs/Video/VideoResolutionTab.php create mode 100644 app/Filament/Tabs/Video/VideoScriptTab.php create mode 100644 app/Filament/Tabs/Video/VideoSourceTab.php create mode 100644 app/Filament/Tabs/Video/VideoUnlinkedTab.php create mode 100644 app/Filament/Widgets/Auth/UserChart.php create mode 100644 app/Filament/Widgets/BaseChartWidget.php create mode 100644 app/Filament/Widgets/BaseStatsWidget.php create mode 100644 app/Filament/Widgets/List/PlaylistChart.php create mode 100644 app/Filament/Widgets/List/PlaylistTrackChart.php create mode 100644 app/Filament/Widgets/Wiki/Anime/AnimeChart.php create mode 100644 app/Filament/Widgets/Wiki/Artist/ArtistChart.php create mode 100644 app/Filament/Widgets/Wiki/Series/SeriesChart.php create mode 100644 app/Filament/Widgets/Wiki/Video/VideoChart.php create mode 100644 app/Providers/FilamentPanelProvider.php create mode 100644 config/filament.php create mode 100644 config/livewire.php create mode 100644 database/migrations/2024_04_11_024316_create_notifications_table.php create mode 100644 lang/en/filament.php create mode 100644 public/css/filament/filament/app.css create mode 100644 public/css/filament/forms/forms.css create mode 100644 public/css/filament/support/support.css create mode 100644 public/js/app/components/apexcharts.js create mode 100644 public/js/filament/filament/app.js create mode 100644 public/js/filament/filament/echo.js create mode 100644 public/js/filament/forms/components/color-picker.js create mode 100644 public/js/filament/forms/components/date-time-picker.js create mode 100644 public/js/filament/forms/components/file-upload.js create mode 100644 public/js/filament/forms/components/key-value.js create mode 100644 public/js/filament/forms/components/markdown-editor.js create mode 100644 public/js/filament/forms/components/rich-editor.js create mode 100644 public/js/filament/forms/components/select.js create mode 100644 public/js/filament/forms/components/tags-input.js create mode 100644 public/js/filament/forms/components/textarea.js create mode 100644 public/js/filament/notifications/notifications.js create mode 100644 public/js/filament/support/async-alpine.js create mode 100644 public/js/filament/support/support.js create mode 100644 public/js/filament/tables/components/table.js create mode 100644 public/js/filament/widgets/components/chart.js create mode 100644 public/js/filament/widgets/components/stats-overview/stat/chart.js create mode 100644 resources/views/filament/components/select.blade.php diff --git a/.env.example b/.env.example index 7ed3193d6..b90dc4f79 100644 --- a/.env.example +++ b/.env.example @@ -82,7 +82,7 @@ REDIS_CACHE_DB=1 DUMP_DISK=dumps DUMP_DISK_ROOT= DUMP_URL=http://localhost -DUMP_PATH= +DUMP_PATH=/dump # elastic client ELASTIC_CONNECTION=default @@ -98,6 +98,10 @@ ELASTIC_MIGRATIONS_TABLE=elastic_migrations FFMPEG_BINARIES= FFPROBE_BINARIES= +# filament +FILAMENT_DOMAIN_NAME= +FILAMENT_PATH=/admin + # filesystems FILESYSTEM_DISK=local @@ -211,7 +215,7 @@ NOVA_DOMAIN_NAME=null NOVA_GUARD=null NOVA_LICENSE_KEY= NOVA_PASSWORDS=null -NOVA_PATH=/admin +NOVA_PATH=/nova # pennant PENNANT_STORE=database diff --git a/.env.example-sail b/.env.example-sail index aef8678b9..28fbe520e 100644 --- a/.env.example-sail +++ b/.env.example-sail @@ -83,7 +83,7 @@ REDIS_CACHE_DB=1 DUMP_DISK=dumps DUMP_DISK_ROOT= DUMP_URL=http://localhost -DUMP_PATH= +DUMP_PATH=/dump # elastic client ELASTIC_CONNECTION=default @@ -99,6 +99,10 @@ ELASTIC_MIGRATIONS_TABLE=elastic_migrations FFMPEG_BINARIES= FFPROBE_BINARIES= +# filament +FILAMENT_DOMAIN_NAME= +FILAMENT_PATH=/admin + # filesystems FILESYSTEM_DISK=local diff --git a/app/Actions/Discord/DiscordThreadAction.php b/app/Actions/Discord/DiscordThreadAction.php new file mode 100644 index 000000000..f7ce15c1e --- /dev/null +++ b/app/Actions/Discord/DiscordThreadAction.php @@ -0,0 +1,86 @@ +images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_LARGE)->first()->path; + + $animepage = json_decode(file_get_contents(base_path('composer.json')), true)['homepage'].'anime/'; + $description = '**Synopsis:** '.strip_tags($anime->synopsis)."\n\n".'**Link:** '.$animepage.$anime->slug; + + Http::withToken(Config::get('services.discord.token'), 'Bot') + ->asMultipart() + ->attach('file', file_get_contents($imageDisk->url($imagePath)), 'image.jpg') + ->post("https://discord.com/api/v10/channels/{$this->getDiscordChannel()}/threads", [ + 'payload_json' => json_encode([ + 'name' => $name, + 'applied_tags' => $this->getAppliedTags($anime->season->value), + 'message' => [ + 'embeds' => [ + [ + 'color' => EmbedColor::PURPLE->value, + 'title' => $anime->name, + 'description' => $description, + ] + ], + ] + ]) + ])->throw(); + } + + /** + * Get Discord forum channel the thread will be created to. + * + * @return string + */ + protected function getDiscordChannel(): string + { + return Config::get(ServiceConstants::SUBMISSIONS_DISCORD_CHANNEL_QUALIFIED); + } + + /** + * Get the IDs of the tags applied to the thread. + * + * @param int $season + * @return array + */ + protected function getAppliedTags(int $season): array + { + return match ($season) { + AnimeSeason::WINTER->value => [Config::get('services.discord.submissions_forum_tags.winter')], + AnimeSeason::SPRING->value => [Config::get('services.discord.submissions_forum_tags.spring')], + AnimeSeason::SUMMER->value => [Config::get('services.discord.submissions_forum_tags.summer')], + AnimeSeason::FALL->value => [Config::get('services.discord.submissions_forum_tags.fall')], + default => [], + }; + } +} \ No newline at end of file diff --git a/app/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php b/app/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php new file mode 100644 index 000000000..36a0a9f31 --- /dev/null +++ b/app/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php @@ -0,0 +1,26 @@ +anime(); + } +} diff --git a/app/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php b/app/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php new file mode 100644 index 000000000..841cceefa --- /dev/null +++ b/app/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php @@ -0,0 +1,26 @@ +anime(); + } +} diff --git a/app/Actions/Models/Wiki/Artist/AttachArtistImageAction.php b/app/Actions/Models/Wiki/Artist/AttachArtistImageAction.php new file mode 100644 index 000000000..24523efe1 --- /dev/null +++ b/app/Actions/Models/Wiki/Artist/AttachArtistImageAction.php @@ -0,0 +1,26 @@ +artists(); + } +} diff --git a/app/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php b/app/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php new file mode 100644 index 000000000..a19e5d8af --- /dev/null +++ b/app/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php @@ -0,0 +1,26 @@ +artists(); + } +} diff --git a/app/Actions/Models/Wiki/AttachImageAction.php b/app/Actions/Models/Wiki/AttachImageAction.php new file mode 100644 index 000000000..42e22a536 --- /dev/null +++ b/app/Actions/Models/Wiki/AttachImageAction.php @@ -0,0 +1,102 @@ +createImages($fields, $model); + + foreach ($images as $image) { + $relation = $this->relation($image); + + $relation->attach($model); + } + } + + /** + * Create the images. + * + * @param array $fields + * @param BaseModel $model + * @return Image[] + */ + protected function createImages(array $fields, BaseModel $model): array + { + $images = []; + + foreach ($this->facets as $facet) { + $image = Arr::get($fields, $facet->name); + + if (empty($image)) continue; + + /** @var \Illuminate\Filesystem\FilesystemAdapter */ + $fs = Storage::disk(Config::get('image.disk')); + + $fsFile = $fs->putFile($this->path($facet, $model), $image); + + $image = Image::query()->create([ + Image::ATTRIBUTE_FACET => $facet->value, + Image::ATTRIBUTE_PATH => $fsFile, + ]); + + $images[] = $image; + } + + return $images; + } + + /** + * Path to storage image in filesystem. + * + * @param ImageFacet $facet + * @param BaseModel $model + * @return string + */ + protected function path(ImageFacet $facet, BaseModel $model): string + { + return Str::of(Str::kebab(class_basename($model))) + ->append(DIRECTORY_SEPARATOR) + ->append(Str::kebab($facet->localize())) + ->__toString(); + } + + /** + * Get the relation to the action models. + * + * @param Image $image + * @return BelongsToMany + */ + abstract protected function relation(Image $image): BelongsToMany; +} diff --git a/app/Actions/Models/Wiki/AttachResourceAction.php b/app/Actions/Models/Wiki/AttachResourceAction.php new file mode 100644 index 000000000..9b8a2fea5 --- /dev/null +++ b/app/Actions/Models/Wiki/AttachResourceAction.php @@ -0,0 +1,82 @@ +getOrCreateResource($data); + + foreach ($resources as $resource) { + $relation = $this->relation($resource); + + $relation->attach($model); + } + } + + /** + * Get or Create Resource from link field. + * + * @param array $data + * @return ExternalResource[] + */ + protected function getOrCreateResource(array $data): array + { + $resources = []; + + foreach ($this->sites as $resourceSite) { + $link = Arr::get($data, $resourceSite->name); + + if (empty($link)) continue; + + $resource = ExternalResource::query() + ->where(ExternalResource::ATTRIBUTE_LINK, $link) + ->first(); + + if ($resource === null) { + $resource = ExternalResource::query()->create([ + ExternalResource::ATTRIBUTE_EXTERNAL_ID => ResourceSite::parseIdFromLink($link), + ExternalResource::ATTRIBUTE_LINK => $link, + ExternalResource::ATTRIBUTE_SITE => $resourceSite->value, + ]); + } + + $resources[] = $resource; + } + + return $resources; + } + + /** + * Get the relation to the action models. + * + * @param ExternalResource $resource + * @return BelongsToMany + */ + abstract protected function relation(ExternalResource $resource): BelongsToMany; +} diff --git a/app/Actions/Models/Wiki/Song/AttachSongResourceAction.php b/app/Actions/Models/Wiki/Song/AttachSongResourceAction.php new file mode 100644 index 000000000..c5a857b31 --- /dev/null +++ b/app/Actions/Models/Wiki/Song/AttachSongResourceAction.php @@ -0,0 +1,26 @@ +songs(); + } +} diff --git a/app/Actions/Models/Wiki/Studio/AttachStudioImageAction.php b/app/Actions/Models/Wiki/Studio/AttachStudioImageAction.php new file mode 100644 index 000000000..7ee3c9ec5 --- /dev/null +++ b/app/Actions/Models/Wiki/Studio/AttachStudioImageAction.php @@ -0,0 +1,26 @@ +studios(); + } +} diff --git a/app/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php b/app/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php new file mode 100644 index 000000000..b89b5efb5 --- /dev/null +++ b/app/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php @@ -0,0 +1,26 @@ +studios(); + } +} diff --git a/app/Actions/Models/Wiki/UploadImageAction.php b/app/Actions/Models/Wiki/UploadImageAction.php new file mode 100644 index 000000000..dfd4239ef --- /dev/null +++ b/app/Actions/Models/Wiki/UploadImageAction.php @@ -0,0 +1,52 @@ +putFile($this->path($facet), $image); + + Image::query()->create([ + Image::ATTRIBUTE_FACET => $facet->value, + Image::ATTRIBUTE_PATH => $fsFile, + ]); + } + + /** + * Path to storage image in filesystem. + * + * @param ImageFacet $facet + * @return string + */ + protected function path(ImageFacet $facet): string + { + return Str::of(Str::kebab($facet->localize())) + ->__toString(); + } +} diff --git a/app/Concerns/Filament/Enums/HasColorOrEmoji.php b/app/Concerns/Filament/Enums/HasColorOrEmoji.php new file mode 100644 index 000000000..0a156764a --- /dev/null +++ b/app/Concerns/Filament/Enums/HasColorOrEmoji.php @@ -0,0 +1,66 @@ +value] = $case->localizeStyled($hasColor, $hasEmoji, $locale); + } + + return $selectArray; + } + + /** + * Localize the enum, but styled. + * + * @param bool|null $hasColor + * @param bool|null $hasEmoji + * @param string|null $locale + * @return string + */ + public function localizeStyled(?bool $hasColor = true, ?bool $hasEmoji = true, ?string $locale = null): string + { + $localizedName = $this->getLocalizedName($locale) ?? $this->getPrettyName(); + + $name = Str::of(''); + + if ($hasColor) { + $color = $this->getColor(); + $name = $name->append("

"); + } + + if ($hasEmoji) { + $emoji = $this->getEmoji(); + $name = $name->append("$emoji "); + } + + $name = $name->append($localizedName); + + if ($hasColor) { + $name = $name->append('

'); + } + + return $name->__toString(); + } +} \ No newline at end of file diff --git a/app/Concerns/Filament/HasTabs.php b/app/Concerns/Filament/HasTabs.php new file mode 100644 index 000000000..5783f4a7a --- /dev/null +++ b/app/Concerns/Filament/HasTabs.php @@ -0,0 +1,31 @@ +[] $tabClasses + * @return array + */ + public function toArray(array $tabClasses): array + { + $tabs = []; + + foreach ($tabClasses as $class) { + if ((new $class)->shouldBeHidden()) continue; + $tabs[$class::getKey()] = $class::make(); + } + + return $tabs; + } +} diff --git a/app/Concerns/Repositories/Admin/ReconcilesDumpRepositories.php b/app/Concerns/Repositories/Admin/ReconcilesDumpRepositories.php index 77ec92c80..51b647556 100644 --- a/app/Concerns/Repositories/Admin/ReconcilesDumpRepositories.php +++ b/app/Concerns/Repositories/Admin/ReconcilesDumpRepositories.php @@ -43,7 +43,7 @@ trait ReconcilesDumpRepositories * * @return ReconcileRepositoriesAction */ - protected function action(): ReconcileRepositoriesAction + protected function reconcileAction(): ReconcileRepositoriesAction { return new ReconcileDumpRepositoriesAction(); } diff --git a/app/Concerns/Repositories/ReconcilesRepositories.php b/app/Concerns/Repositories/ReconcilesRepositories.php index e81a6ad5b..078882e75 100644 --- a/app/Concerns/Repositories/ReconcilesRepositories.php +++ b/app/Concerns/Repositories/ReconcilesRepositories.php @@ -43,7 +43,7 @@ trait ReconcilesRepositories $this->handleFilters($sourceRepository, $destinationRepository, $data); - $action = $this->action(); + $action = $this->reconcileAction(); return $action->reconcileRepositories($sourceRepository, $destinationRepository); } @@ -53,7 +53,7 @@ trait ReconcilesRepositories * * @return ReconcileRepositoriesAction */ - abstract protected function action(): ReconcileRepositoriesAction; + abstract protected function reconcileAction(): ReconcileRepositoriesAction; /** * Get source repository. diff --git a/app/Concerns/Repositories/Wiki/ReconcilesAudioRepositories.php b/app/Concerns/Repositories/Wiki/ReconcilesAudioRepositories.php index 805fd95f6..a21f4d654 100644 --- a/app/Concerns/Repositories/Wiki/ReconcilesAudioRepositories.php +++ b/app/Concerns/Repositories/Wiki/ReconcilesAudioRepositories.php @@ -43,7 +43,7 @@ trait ReconcilesAudioRepositories * * @return ReconcileRepositoriesAction */ - protected function action(): ReconcileRepositoriesAction + protected function reconcileAction(): ReconcileRepositoriesAction { return new ReconcileAudioRepositoriesAction(); } diff --git a/app/Concerns/Repositories/Wiki/ReconcilesVideoRepositories.php b/app/Concerns/Repositories/Wiki/ReconcilesVideoRepositories.php index ff9bf7a72..1fc86e47b 100644 --- a/app/Concerns/Repositories/Wiki/ReconcilesVideoRepositories.php +++ b/app/Concerns/Repositories/Wiki/ReconcilesVideoRepositories.php @@ -43,7 +43,7 @@ trait ReconcilesVideoRepositories * * @return ReconcileRepositoriesAction */ - protected function action(): ReconcileRepositoriesAction + protected function reconcileAction(): ReconcileRepositoriesAction { return new ReconcileVideoRepositoriesAction(); } diff --git a/app/Concerns/Repositories/Wiki/Video/ReconcilesScriptRepositories.php b/app/Concerns/Repositories/Wiki/Video/ReconcilesScriptRepositories.php index 10dac8fc3..1a7a32cc7 100644 --- a/app/Concerns/Repositories/Wiki/Video/ReconcilesScriptRepositories.php +++ b/app/Concerns/Repositories/Wiki/Video/ReconcilesScriptRepositories.php @@ -43,7 +43,7 @@ trait ReconcilesScriptRepositories * * @return ReconcileRepositoriesAction */ - protected function action(): ReconcileRepositoriesAction + protected function reconcileAction(): ReconcileRepositoriesAction { return new ReconcileScriptRepositoriesAction(); } diff --git a/app/Contracts/Models/HasSubtitle.php b/app/Contracts/Models/HasSubtitle.php new file mode 100644 index 000000000..b4208fc95 --- /dev/null +++ b/app/Contracts/Models/HasSubtitle.php @@ -0,0 +1,18 @@ + '153, 204, 255', + static::SPRING => '255, 192, 203', + static::SUMMER => '255, 153, 51', + static::FALL => '204, 102, 0', + }; + } + + /** + * Get the unicode emoji for the enum. + * + * @return string + */ + public function getEmoji(): string + { + return match ($this) { + static::WINTER => "\u{2744}", + static::SPRING => "\u{1F33C}", + static::SUMMER => "\u{2600}", + static::FALL => "\u{1F342}", + }; + } } diff --git a/app/Filament/Actions/Discord/DiscordThreadAction.php b/app/Filament/Actions/Discord/DiscordThreadAction.php new file mode 100644 index 000000000..585bc441a --- /dev/null +++ b/app/Filament/Actions/Discord/DiscordThreadAction.php @@ -0,0 +1,51 @@ +fillForm(fn (Anime $record): array => ['name' => $record->getName()]); + + $this->action(fn (Anime $record, array $data) => (new DiscordThreadActionAction())->handle($record, $data)); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + */ + public function getForm(Form $form): Form + { + return $form + ->schema([ + TextInput::make('name') + ->label(__('filament.actions.discord.thread.name')) + ->helperText(__('filament.actions.discord.thread.help')) + ->required() + ->maxlength(100) + ->rules(['required', 'max:100']), + ]); + } +} diff --git a/app/Filament/Actions/Models/AssignHashidsAction.php b/app/Filament/Actions/Models/AssignHashidsAction.php new file mode 100644 index 000000000..c14d4a77f --- /dev/null +++ b/app/Filament/Actions/Models/AssignHashidsAction.php @@ -0,0 +1,65 @@ +action(fn (BaseModel $record) => $this->handle($record)); + } + + /** + * Perform the action on the given models. + * + * @param BaseModel $model + * @return void + * + * @noinspection PhpUnusedParameterInspection + */ + public function handle(BaseModel $model): void + { + $action = new AssignHashids(); + + if ($model instanceof HasHashids) { + try { + $action->assign($model, $this->connection); + } catch (Exception $e) { + //$this->markAsFailed($model, $e); + } + } + } + + /** + * Set the connection. + * + * @param string|null $connection + * @return static + */ + public function setConnection(?string $connection): static + { + $this->connection = $connection; + + return $this; + } +} diff --git a/app/Filament/Actions/Models/Auth/Permission/GiveRoleAction.php b/app/Filament/Actions/Models/Auth/Permission/GiveRoleAction.php new file mode 100644 index 000000000..bbb6c780d --- /dev/null +++ b/app/Filament/Actions/Models/Auth/Permission/GiveRoleAction.php @@ -0,0 +1,72 @@ +action(fn (Permission $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Permission $permission + * @param array $data + * @return void + */ + public function handle(Permission $permission, array $data): void + { + $role = Role::findById(intval(Arr::get($data, self::FIELD_ROLE))); + + $permission->assignRole($role); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $roles = Role::all([Role::ATTRIBUTE_ID, Role::ATTRIBUTE_NAME]) + ->keyBy(Role::ATTRIBUTE_ID) + ->map(fn (Role $role) => $role->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_ROLE) + ->label(__('filament.resources.singularLabel.role')) + ->searchable() + ->required() + ->options($roles) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/Permission/RevokeRoleAction.php b/app/Filament/Actions/Models/Auth/Permission/RevokeRoleAction.php new file mode 100644 index 000000000..be5f26017 --- /dev/null +++ b/app/Filament/Actions/Models/Auth/Permission/RevokeRoleAction.php @@ -0,0 +1,72 @@ +action(fn (Permission $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Permission $permission + * @param array $data + * @return void + */ + public function handle(Permission $permission, array $data): void + { + $role = Role::findById(intval(Arr::get($data, self::FIELD_ROLE))); + + $permission->removeRole($role); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $roles = Role::all([Role::ATTRIBUTE_ID, Role::ATTRIBUTE_NAME]) + ->keyBy(Role::ATTRIBUTE_ID) + ->map(fn (Role $role) => $role->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_ROLE) + ->label(__('filament.resources.singularLabel.role')) + ->searchable() + ->required() + ->options($roles) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/Role/GivePermissionAction.php b/app/Filament/Actions/Models/Auth/Role/GivePermissionAction.php new file mode 100644 index 000000000..7b3fab22c --- /dev/null +++ b/app/Filament/Actions/Models/Auth/Role/GivePermissionAction.php @@ -0,0 +1,72 @@ +action(fn (Role $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param Role $role + * @param array $data + * @return void + */ + public function handle(Role $role, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $role->givePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/Role/RevokePermissionAction.php b/app/Filament/Actions/Models/Auth/Role/RevokePermissionAction.php new file mode 100644 index 000000000..b3c29563f --- /dev/null +++ b/app/Filament/Actions/Models/Auth/Role/RevokePermissionAction.php @@ -0,0 +1,72 @@ +action(fn (Role $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param Role $role + * @param array $data + * @return void + */ + public function handle(Role $role, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $role->revokePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/User/GivePermissionAction.php b/app/Filament/Actions/Models/Auth/User/GivePermissionAction.php new file mode 100644 index 000000000..f9168ecea --- /dev/null +++ b/app/Filament/Actions/Models/Auth/User/GivePermissionAction.php @@ -0,0 +1,72 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $user->givePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/User/GiveRoleAction.php b/app/Filament/Actions/Models/Auth/User/GiveRoleAction.php new file mode 100644 index 000000000..73ff83390 --- /dev/null +++ b/app/Filament/Actions/Models/Auth/User/GiveRoleAction.php @@ -0,0 +1,72 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $role = Role::findById(intval(Arr::get($data, self::FIELD_ROLE))); + + $user->assignRole($role); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $roles = Role::all([Role::ATTRIBUTE_ID, Role::ATTRIBUTE_NAME]) + ->keyBy(Role::ATTRIBUTE_ID) + ->map(fn (Role $role) => $role->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_ROLE) + ->label(__('filament.resources.singularLabel.role')) + ->searchable() + ->required() + ->options($roles) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/User/RevokePermissionAction.php b/app/Filament/Actions/Models/Auth/User/RevokePermissionAction.php new file mode 100644 index 000000000..b046220c1 --- /dev/null +++ b/app/Filament/Actions/Models/Auth/User/RevokePermissionAction.php @@ -0,0 +1,72 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $user->revokePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Auth/User/RevokeRoleAction.php b/app/Filament/Actions/Models/Auth/User/RevokeRoleAction.php new file mode 100644 index 000000000..49a8e9f8f --- /dev/null +++ b/app/Filament/Actions/Models/Auth/User/RevokeRoleAction.php @@ -0,0 +1,72 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $role = Role::findById(intval(Arr::get($data, self::FIELD_ROLE))); + + $user->removeRole($role); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $roles = Role::all([Role::ATTRIBUTE_ID, Role::ATTRIBUTE_NAME]) + ->keyBy(Role::ATTRIBUTE_ID) + ->map(fn (Role $role) => $role->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_ROLE) + ->label(__('filament.resources.singularLabel.role')) + ->searchable() + ->required() + ->options($roles) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php b/app/Filament/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php new file mode 100644 index 000000000..e5ad4b001 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Anime/AttachAnimeImageAction.php @@ -0,0 +1,27 @@ +action(fn (Anime $record, array $data) => (new AttachAnimeImageActionAction($this->facets))->handle($record, $data)); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php b/app/Filament/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php new file mode 100644 index 000000000..ebf2ebe82 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Anime/AttachAnimeResourceAction.php @@ -0,0 +1,41 @@ +action(fn (Anime $record, array $data) => (new AttachAnimeResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new AnimeResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php b/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php new file mode 100644 index 000000000..01ea58d53 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Anime/BackfillAnimeAction.php @@ -0,0 +1,225 @@ +action(fn (Anime $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Anime $anime + * @param array $fields + * @return void + */ + public function handle(Anime $anime, array $fields): void + { + if ($anime->resources()->doesntExist()) { + $this->fail(__('filament.actions.anime.backfill.message.resource_required_failure')); + return; + } + + $actions = $this->getActions($fields, $anime); + + try { + foreach ($actions as $action) { + $result = $action->handle(); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + NotificationAction::make('mark-as-read') + ->button() + ->markAsRead(), + ]) + ->sendToDatabase(auth()->user()); + } + } + } catch (Exception $e) { + $this->fail($e); + } finally { + // Try not to upset third-party APIs + Sleep::for(rand(3, 5))->second(); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form|null + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): ?Form + { + $anime = $this->getRecord(); + + return $form + ->schema([ + Section::make(__('filament.actions.anime.backfill.fields.resources.name')) + ->schema([ + Checkbox::make(self::BACKFILL_KITSU_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.kitsu.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.kitsu.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::KITSU->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_ANILIST_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.anilist.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.anilist.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::ANILIST->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_MAL_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.mal.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.mal.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::MAL->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_ANIDB_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.anidb.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.anidb.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::ANIDB->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_ANN_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.ann.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.ann.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::ANN->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_OTHER_RESOURCES) + ->label(__('filament.actions.anime.backfill.fields.resources.external_links.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.external_links.help')) + ->default(fn () => $anime instanceof Anime), + ]), + + Section::make(__('filament.actions.anime.backfill.fields.images.name')) + ->schema([ + Checkbox::make(self::BACKFILL_LARGE_COVER) + ->label(__('filament.actions.anime.backfill.fields.images.large_cover.name')) + ->helperText(__('filament.actions.anime.backfill.fields.images.large_cover.help')) + ->default(fn () => $anime instanceof Anime && $anime->images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_LARGE->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_SMALL_COVER) + ->label(__('filament.actions.anime.backfill.fields.images.small_cover.name')) + ->helperText(__('filament.actions.anime.backfill.fields.images.small_cover.help')) + ->default(fn () => $anime instanceof Anime && $anime->images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_SMALL->value)->doesntExist()), + ]), + + Section::make(__('filament.actions.anime.backfill.fields.studios.name')) + ->schema([ + Checkbox::make(self::BACKFILL_STUDIOS) + ->label(__('filament.actions.anime.backfill.fields.studios.anime.name')) + ->helperText(__('filament.actions.anime.backfill.fields.studios.anime.help')) + ->default(fn () => $anime instanceof Anime && $anime->studios()->doesntExist()), + ]), + + Section::make(__('filament.actions.anime.backfill.fields.synonyms.name')) + ->schema([ + Checkbox::make(self::BACKFILL_STUDIOS) + ->label(__('filament.actions.anime.backfill.fields.synonyms.name')) + ->helperText(__('filament.actions.anime.backfill.fields.synonyms.help')) + ->default(fn () => $anime instanceof Anime && $anime->animesynonyms()->count() === 0), + ]), + ]); + } + + /** + * Get the selected actions for backfilling anime. + * + * @param array $fields + * @param Anime $anime + * @return BackfillAction[] + */ + protected function getActions(array $fields, Anime $anime): array + { + $actions = []; + + foreach ($this->getActionMapping($anime) as $field => $action) { + if (Arr::get($fields, $field) === true) { + $actions[] = $action; + } + } + + return $actions; + } + + /** + * Get the mapping of actions to their form fields. + * + * @param Anime $anime + * @return array + */ + protected function getActionMapping(Anime $anime): array + { + return [ + self::BACKFILL_KITSU_RESOURCE => new BackfillKitsuResourceAction($anime), + self::BACKFILL_ANILIST_RESOURCE => new BackfillAnilistResourceAction($anime), + self::BACKFILL_MAL_RESOURCE => new BackfillMalResourceAction($anime), + self::BACKFILL_ANIDB_RESOURCE => new BackfillAnidbResourceAction($anime), + self::BACKFILL_ANN_RESOURCE => new BackfillAnnResourceAction($anime), + self::BACKFILL_OTHER_RESOURCES => new BackfillAnimeOtherResourcesAction($anime), + self::BACKFILL_LARGE_COVER => new BackfillLargeCoverImageAction($anime), + self::BACKFILL_SMALL_COVER => new BackfillSmallCoverImageAction($anime), + self::BACKFILL_STUDIOS => new BackfillAnimeStudiosAction($anime), + self::BACKFILL_SYNONYMS => new BackfillAnimeSynonymsAction($anime), + ]; + } +} diff --git a/app/Filament/Actions/Models/Wiki/Artist/AttachArtistImageAction.php b/app/Filament/Actions/Models/Wiki/Artist/AttachArtistImageAction.php new file mode 100644 index 000000000..db05578b1 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Artist/AttachArtistImageAction.php @@ -0,0 +1,27 @@ +action(fn (Artist $record, array $data) => (new AttachArtistImageActionAction($this->facets))->handle($record, $data)); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php b/app/Filament/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php new file mode 100644 index 000000000..54c23c63a --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Artist/AttachArtistResourceAction.php @@ -0,0 +1,41 @@ +action(fn (Artist $record, array $data) => (new AttachArtistResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new ArtistResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/Actions/Models/Wiki/AttachImageAction.php b/app/Filament/Actions/Models/Wiki/AttachImageAction.php new file mode 100644 index 000000000..e6cdbda6d --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/AttachImageAction.php @@ -0,0 +1,62 @@ +getRecord(); + + if ($model instanceof Anime || $model instanceof Artist || $model instanceof Studio) { + foreach ($this->facets as $facet) { + $images = $model->images(); + if ($images->where(Image::ATTRIBUTE_FACET, $facet->value)->exists()) continue; + + $fields[] = FileUpload::make($facet->name) + ->label($facet->localize()) + ->image() + ->storeFiles(false); + } + } + + return $form + ->schema($fields); + } + + /** + * Get the facets available for the action. + * + * @param ImageFacet[] $facets + * @return static + */ + public function facets(array $facets): static + { + $this->facets = $facets; + + return $this; + } +} diff --git a/app/Filament/Actions/Models/Wiki/AttachResourceAction.php b/app/Filament/Actions/Models/Wiki/AttachResourceAction.php new file mode 100644 index 000000000..971e74b2d --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/AttachResourceAction.php @@ -0,0 +1,76 @@ +getRecord(); + + foreach ($this->sites as $resourceSite) { + if ($model instanceof Anime || $model instanceof Artist || $model instanceof Song || $model instanceof Studio) { + $resources = $model->resources(); + if ($resources->where(ExternalResource::ATTRIBUTE_SITE, $resourceSite->value)->exists()) continue; + } + + $resourceSiteLower = strtolower($resourceSite->name); + + $fields[] = TextInput::make($resourceSite->name) + ->label($resourceSite->localize()) + ->helperText(__("filament.actions.models.wiki.attach_resource.fields.{$resourceSiteLower}.help")) + ->url() + ->maxLength(192) + ->rules(['max:192', $this->getFormatRule($resourceSite)]); + } + + return $form + ->schema($fields); + } + + /** + * Get the sites available for the action. + * + * @param ResourceSite[] $sites + * @return static + */ + public function sites($sites): static + { + $this->sites = $sites; + + return $this; + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + abstract protected function getFormatRule(ResourceSite $site): ValidationRule; +} diff --git a/app/Filament/Actions/Models/Wiki/Audio/AttachAudioToRelatedVideosAction.php b/app/Filament/Actions/Models/Wiki/Audio/AttachAudioToRelatedVideosAction.php new file mode 100644 index 000000000..96c1ab7be --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Audio/AttachAudioToRelatedVideosAction.php @@ -0,0 +1,52 @@ +action(fn (Audio $record) => $this->handle($record)); + } + + /** + * Perform the action on the given models. + * + * @param Audio $audio + * @return void + */ + public function handle(Audio $audio): void + { + $video = $audio->videos()->first(); + + $video->animethemeentries()->each(function (AnimeThemeEntry $firstEntry) use ($audio) { + $theme = $firstEntry->animetheme()->first(); + + $theme->animethemeentries()->each(function (AnimeThemeEntry $entry) use ($audio) { + $entry->videos()->each(function (Video $video) use ($audio) { + Log::info("Associating Audio '{$audio->filename}' with Video '{$video->filename}'"); + $video->audio()->associate($audio)->save(); + }); + }); + }); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Song/AttachSongResourceAction.php b/app/Filament/Actions/Models/Wiki/Song/AttachSongResourceAction.php new file mode 100644 index 000000000..85fb403b9 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Song/AttachSongResourceAction.php @@ -0,0 +1,41 @@ +action(fn (Song $record, array $data) => (new AttachSongResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new SongResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Studio/AttachStudioImageAction.php b/app/Filament/Actions/Models/Wiki/Studio/AttachStudioImageAction.php new file mode 100644 index 000000000..11f5b44b6 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Studio/AttachStudioImageAction.php @@ -0,0 +1,27 @@ +action(fn (Studio $record, array $data) => (new AttachStudioImageActionAction($this->facets))->handle($record, $data)); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php b/app/Filament/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php new file mode 100644 index 000000000..75bc6b6eb --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Studio/AttachStudioResourceAction.php @@ -0,0 +1,41 @@ +action(fn (Studio $record, array $data) => (new AttachStudioResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new StudioResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php b/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php new file mode 100644 index 000000000..42df6432b --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Studio/BackfillStudioAction.php @@ -0,0 +1,142 @@ +action(fn (Studio $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Studio $studio + * @param array $fields + * @return void + */ + public function handle(Studio $studio, array $fields): void + { + if ($studio->resources()->doesntExist()) { + //$this->markAsFailed($studio, __('filament.actions.studio.backfill.message.resource_required_failure')); + return; + } + + $actions = $this->getActions($fields, $studio); + + try { + foreach ($actions as $action) { + $result = $action->handle(); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + NotificationAction::make('mark-as-read') + ->button() + ->markAsRead(), + ]) + ->sendToDatabase(auth()->user()); + } + } + } catch (Exception $e) { + //$this->markAsFailed($studio, $e); + } finally { + // Try not to upset third-party APIs + Sleep::for(rand(3, 5))->second(); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $studio = $this->getRecord(); + + return $form + ->schema([ + Section::make(__('filament.actions.studio.backfill.fields.images.name')) + ->schema([ + Checkbox::make(self::BACKFILL_LARGE_COVER) + ->label(__('filament.actions.studio.backfill.fields.images.large_cover.name')) + ->helperText(__('filament.actions.studio.backfill.fields.images.large_cover.help')) + ->default(fn () => $studio instanceof Studio && $studio->images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_LARGE->value)->doesntExist()), + ]), + ]); + } + + /** + * Get the selected actions for backfilling studios. + * + * @param array $fields + * @param Studio $studio + * @return BackfillAction[] + */ + protected function getActions(array $fields, Studio $studio): array + { + $actions = []; + + foreach ($this->getActionMapping($studio) as $field => $action) { + if (Arr::get($fields, $field) === true) { + $actions[] = $action; + } + } + + return $actions; + } + + /** + * Get the mapping of actions to their form fields. + * + * @param Studio $studio + * @return array + */ + protected function getActionMapping(Studio $studio): array + { + return [ + self::BACKFILL_LARGE_COVER => new BackfillLargeCoverImageAction($studio), + ]; + } +} diff --git a/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php b/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php new file mode 100644 index 000000000..941c69158 --- /dev/null +++ b/app/Filament/Actions/Models/Wiki/Video/BackfillAudioAction.php @@ -0,0 +1,105 @@ +action(fn (Video $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Video $video + * @param array $data + * @return void + */ + public function handle(Video $video, array $data): void + { + $deriveSourceVideo = DeriveSourceVideo::from(intval(Arr::get($data, self::DERIVE_SOURCE_VIDEO))); + $overwriteAudio = OverwriteAudio::from(intval(Arr::get($data, self::OVERWRITE_AUDIO))); + + $action = new BackfillAudio($video, $deriveSourceVideo, $overwriteAudio); + + try { + $result = $action->handle(); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + NotificationAction::make('mark-as-read') + ->button() + ->markAsRead(), + ]) + ->sendToDatabase(auth()->user()); + } + } catch (Exception $e) { + //$this->markAsFailed($video, $e); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + return $form + ->schema([ + Select::make(self::DERIVE_SOURCE_VIDEO) + ->label(__('filament.actions.video.backfill.fields.derive_source.name')) + ->options(DeriveSourceVideo::asSelectArray()) + ->rules(['required', new Enum(DeriveSourceVideo::class)]) + ->default(DeriveSourceVideo::YES->value) + ->helperText(__('filament.actions.video.backfill.fields.derive_source.help')), + + Select::make(self::OVERWRITE_AUDIO) + ->label(__('filament.actions.video.backfill.fields.overwrite.name')) + ->options(OverwriteAudio::asSelectArray()) + ->rules(['required', new Enum(OverwriteAudio::class)]) + ->default(OverwriteAudio::NO->value) + ->helperText(__('filament.actions.video.backfill.fields.overwrite.help')), + ]); + } +} diff --git a/app/Filament/Actions/Storage/Base/DeleteAction.php b/app/Filament/Actions/Storage/Base/DeleteAction.php new file mode 100644 index 000000000..18fc71979 --- /dev/null +++ b/app/Filament/Actions/Storage/Base/DeleteAction.php @@ -0,0 +1,24 @@ +defaultPath(); + + $fs = Storage::disk($this->disk()); + + return $form + ->schema([ + TextInput::make('path') + ->label(__('filament.actions.storage.move.fields.path.name')) + ->helperText(__('filament.actions.storage.move.fields.path.help')) + ->required() + ->rules(['required', 'string', 'doesnt_start_with:/', "ends_with:{$this->allowedFileExtension()}", new StorageFileDirectoryExistsRule($fs)]) + ->default(fn () => $defaultPath), + ]); + } + + /** + * Get the underlying storage action. + * + * @param BaseModel $model + * @param array $fields + * @return BaseMoveAction + */ + abstract protected function storageAction(BaseModel $model, array $fields): BaseMoveAction; + + /** + * Resolve the default value for the path field. + * + * @return string|null + */ + abstract protected function defaultPath(): ?string; + + /** + * The file extension that the path must end with. + * + * @return string + */ + abstract protected function allowedFileExtension(): string; +} diff --git a/app/Filament/Actions/Storage/StorageAction.php b/app/Filament/Actions/Storage/StorageAction.php new file mode 100644 index 000000000..90ba1eeb9 --- /dev/null +++ b/app/Filament/Actions/Storage/StorageAction.php @@ -0,0 +1,56 @@ +action(fn (BaseModel $record, array $data) => $this->handle($record, $data)); + } + + /** + * Get the underlying storage action. + * + * @param BaseModel $model + * @param array $fields + * @return BaseStorageAction + */ + abstract protected function storageAction(BaseModel $model, array $fields): BaseStorageAction; + + /** + * Perform the action on the given models. + * + * @param BaseModel $model + * @param array $fields + * @return void + */ + public function handle(BaseModel $model, array $fields): void + { + $action = $this->storageAction($model, $fields); + + $storageResults = $action->handle(); + + $storageResults->toLog(); + + $action->then($storageResults); + + $actionResult = $storageResults->toActionResult(); + } +} diff --git a/app/Filament/Actions/Storage/Wiki/Audio/DeleteAudioAction.php b/app/Filament/Actions/Storage/Wiki/Audio/DeleteAudioAction.php new file mode 100644 index 000000000..6710a5ab7 --- /dev/null +++ b/app/Filament/Actions/Storage/Wiki/Audio/DeleteAudioAction.php @@ -0,0 +1,28 @@ +getRecord(); + + return $audio instanceof Audio + ? $audio->path + : null; + } + + /** + * The file extension that the path must end with. + * + * @return string + */ + protected function allowedFileExtension(): string + { + return '.ogg'; + } +} diff --git a/app/Filament/Actions/Storage/Wiki/Video/DeleteVideoAction.php b/app/Filament/Actions/Storage/Wiki/Video/DeleteVideoAction.php new file mode 100644 index 000000000..d258a7f1e --- /dev/null +++ b/app/Filament/Actions/Storage/Wiki/Video/DeleteVideoAction.php @@ -0,0 +1,28 @@ +getRecord(); + + return $video instanceof Video + ? $video->path + : null; + } + + /** + * The file extension that the path must end with. + * + * @return string + */ + protected function allowedFileExtension(): string + { + return '.webm'; + } +} diff --git a/app/Filament/Actions/Storage/Wiki/Video/Script/DeleteScriptAction.php b/app/Filament/Actions/Storage/Wiki/Video/Script/DeleteScriptAction.php new file mode 100644 index 000000000..b0cb83179 --- /dev/null +++ b/app/Filament/Actions/Storage/Wiki/Video/Script/DeleteScriptAction.php @@ -0,0 +1,28 @@ +getRecord(); + + return $script instanceof VideoScript + ? $script->path + : null; + } + + /** + * The file extension that the path must end with. + * + * @return string + */ + protected function allowedFileExtension(): string + { + return '.txt'; + } +} diff --git a/app/Filament/Components/Columns/TextColumn.php b/app/Filament/Components/Columns/TextColumn.php new file mode 100644 index 000000000..b498162dd --- /dev/null +++ b/app/Filament/Components/Columns/TextColumn.php @@ -0,0 +1,58 @@ + $resourceRelated + * @param string $relation + * @param bool|null $shouldUseName + * @return static + */ + public function urlToRelated(string $resourceRelated, string $relation, ?bool $shouldUseName = false): static + { + return $this + ->weight(FontWeight::SemiBold) + ->html() + ->hiddenOn(BaseRelationManager::class) + ->url(function (BaseModel $record) use ($resourceRelated, $relation, $shouldUseName) { + foreach (explode('.', $relation) as $element) { + $record = $record->$element; + } + + $this->formatStateUsing(function ($state) use ($shouldUseName, $record) { + $name = $shouldUseName ? $record->getName() : $state; + return "

{$name}

"; + }); + + return $record !== null ? (new $resourceRelated)::getUrl('edit', ['record' => $record]) : null; + }); + } + + /** + * Make the column copyable. + * + * @param bool $condition + * @return static + */ + public function copyableWithMessage(bool $condition = true): static + { + return $this + ->copyable($condition) + ->copyMessage(__('filament.actions.base.copied')); + } +} \ No newline at end of file diff --git a/app/Filament/Components/Fields/Select.php b/app/Filament/Components/Fields/Select.php new file mode 100644 index 000000000..a0ec563d3 --- /dev/null +++ b/app/Filament/Components/Fields/Select.php @@ -0,0 +1,56 @@ + $model + * @param string|null $loadRelation + * @return static + */ + public function useScout(string $model, ?string $loadRelation = null): static + { + if (in_array(Searchable::class, class_uses_recursive($model))) { + return $this + ->allowHtml() + ->searchable() + ->getSearchResultsUsing(function (string $search) use ($model, $loadRelation) { + return (new $model)::search($search) + ->get() + ->load($loadRelation ?? []) + ->mapWithKeys(fn (BaseModel $model) => [$model->getKey() => static::getSearchLabelWithBlade($model)]) + ->toArray(); + }); + } + + return $this->searchable(); + } + + /** + * Use the blade to make the results. + * + * @param BaseModel|User $model + * @return string + */ + public static function getSearchLabelWithBlade(BaseModel|User $model): string + { + return view('filament.components.select') + ->with('name', $model->getName()) + ->with('subtitle', $model->getSubtitle()) + ->with('image', $model instanceof User ? $model->getFilamentAvatarUrl() : null) + ->render(); + } +} \ No newline at end of file diff --git a/app/Filament/Components/Filters/DateFilter.php b/app/Filament/Components/Filters/DateFilter.php new file mode 100644 index 000000000..2fb6f8eb9 --- /dev/null +++ b/app/Filament/Components/Filters/DateFilter.php @@ -0,0 +1,85 @@ +attribute = $attribute; + + return $this; + } + + /** + * Get the label for the filters. + * + * @param string $fromLabel + * @param string $toLabel + * @return static + */ + public function labels(string $fromLabel, string $toLabel): static + { + $this->fromLabel = $fromLabel; + $this->toLabel = $toLabel; + + return $this; + } + + /** + * Get the form for the filter. + * + * @return array + */ + public function getFormSchema(): array + { + return [ + DatePicker::make($this->attribute.'_'.'from') + ->label($this->fromLabel), + + DatePicker::make($this->attribute.'_'.'to') + ->label($this->toLabel), + ]; + } + + /** + * Apply the query used to the filter. + * + * @param Builder $query + * @param array $data + * @return Builder + */ + public function applyToBaseQuery(Builder $query, array $data = []): Builder + { + return $query + ->when( + Arr::get($data, $this->attribute.'_'.'from'), + fn (Builder $query, $date): Builder => $query->whereDate($this->attribute, ComparisonOperator::GTE->value, $date), + ) + ->when( + Arr::get($data, $this->attribute.'_'.'to'), + fn (Builder $query, $date): Builder => $query->whereDate($this->attribute, ComparisonOperator::LTE->value, $date), + ); + } +} \ No newline at end of file diff --git a/app/Filament/Components/Filters/NumberFilter.php b/app/Filament/Components/Filters/NumberFilter.php new file mode 100644 index 000000000..3ae19217d --- /dev/null +++ b/app/Filament/Components/Filters/NumberFilter.php @@ -0,0 +1,88 @@ +attribute = $attribute; + + return $this; + } + + /** + * Get the label for the filters. + * + * @param string $fromLabel + * @param string $toLabel + * + * @return static + */ + public function labels(string $fromLabel, string $toLabel): static + { + $this->fromLabel = $fromLabel; + $this->toLabel = $toLabel; + + return $this; + } + + /** + * Get the form for the filter. + * + * @return array + */ + public function getFormSchema(): array + { + return [ + TextInput::make($this->attribute.'_'.'from') + ->label($this->fromLabel) + ->integer(), + + TextInput::make($this->attribute.'_'.'to') + ->label($this->toLabel) + ->integer(), + ]; + } + + /** + * Apply the query used to the filter. + * + * @param Builder $query + * @param array $data + * @return Builder + */ + public function applyToBaseQuery(Builder $query, array $data = []): Builder + { + return $query + ->when( + Arr::get($data, $this->attribute.'_'.'from'), + fn (Builder $query, $value): Builder => $query->where($this->attribute, ComparisonOperator::GTE->value, $value), + ) + ->when( + Arr::get($data, $this->attribute.'_'.'to'), + fn (Builder $query, $value): Builder => $query->where($this->attribute, ComparisonOperator::LTE->value, $value), + ); + } +} \ No newline at end of file diff --git a/app/Filament/Components/Filters/TextFilter.php b/app/Filament/Components/Filters/TextFilter.php new file mode 100644 index 000000000..0848a8977 --- /dev/null +++ b/app/Filament/Components/Filters/TextFilter.php @@ -0,0 +1,56 @@ +attribute = $attribute; + + return $this; + } + + /** + * Get the form for the filter. + * + * @return array + */ + public function getFormSchema(): array + { + return [ + TextInput::make($this->attribute) + ->label($this->label), + ]; + } + + /** + * Apply the query used to the filter. + * + * @param Builder $query + * @param array $data + * @return Builder + */ + public function applyToBaseQuery(Builder $query, array $data = []): Builder + { + return $query->where($this->attribute, Arr::get($data, $this->attribute)); + } +} \ No newline at end of file diff --git a/app/Filament/Components/Infolist/TextEntry.php b/app/Filament/Components/Infolist/TextEntry.php new file mode 100644 index 000000000..d8db596f4 --- /dev/null +++ b/app/Filament/Components/Infolist/TextEntry.php @@ -0,0 +1,56 @@ +|string $resourceRelated + * @param string $relation + * @param bool|null $shouldUseName + * @return static + */ + public function urlToRelated(string $resourceRelated, string $relation, ?bool $shouldUseName = false): static + { + return $this + ->weight(FontWeight::SemiBold) + ->html() + ->url(function (BaseModel $record) use ($resourceRelated, $relation, $shouldUseName) { + foreach (explode('.', $relation) as $element) { + $record = $record->$element; + } + + $this->formatStateUsing(function ($state) use ($shouldUseName, $record) { + $name = $shouldUseName ? $record->getName() : $state; + return "

{$name}

"; + }); + + return $record !== null ? (new $resourceRelated)::getUrl('edit', ['record' => $record]) : null; + }); + } + + /** + * Make the entry copyable. + * + * @param bool $condition + * @return static + */ + public function copyableWithMessage(bool $condition = true): static + { + return $this + ->copyable($condition) + ->copyMessage(__('filament.actions.base.copied')); + } +} \ No newline at end of file diff --git a/app/Filament/Dashboards/AdminDashboard.php b/app/Filament/Dashboards/AdminDashboard.php new file mode 100644 index 000000000..427b68395 --- /dev/null +++ b/app/Filament/Dashboards/AdminDashboard.php @@ -0,0 +1,70 @@ +user()->id)->hasRole('Admin'); + } + + /** + * Get the displayed label for the dashboard. + * + * @return string + */ + public static function getNavigationLabel(): string + { + return __('filament.dashboards.label.admin'); + } + + /** + * Get the icon for the dashboard. + * + * @return string + */ + public static function getNavigationIcon(): string + { + return __('filament.dashboards.icon.admin');; + } + + /** + * Get the widgets available for the dashboard. + * + * @return class-string[] + */ + public function getWidgets(): array + { + return [ + UserChart::class, + PlaylistChart::class, + PlaylistTrackChart::class, + ]; + } +} \ No newline at end of file diff --git a/app/Filament/Dashboards/BaseDashboard.php b/app/Filament/Dashboards/BaseDashboard.php new file mode 100644 index 000000000..5c2abf2a0 --- /dev/null +++ b/app/Filament/Dashboards/BaseDashboard.php @@ -0,0 +1,33 @@ +fillForm(fn (Anime $record): array => ['name' => $record->getName()]); + + $this->action(fn (Anime $record, array $data) => (new DiscordThreadActionAction())->handle($record, $data)); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + */ + public function getForm(Form $form): Form + { + return $form + ->schema([ + TextInput::make('name') + ->label(__('filament.actions.discord.thread.name')) + ->helperText(__('filament.actions.discord.thread.help')) + ->required() + ->maxlength(100) + ->rules(['required', 'max:100']), + ]); + } +} \ No newline at end of file diff --git a/app/Filament/HeaderActions/Models/AssignHashidsHeaderAction.php b/app/Filament/HeaderActions/Models/AssignHashidsHeaderAction.php new file mode 100644 index 000000000..55a47eaee --- /dev/null +++ b/app/Filament/HeaderActions/Models/AssignHashidsHeaderAction.php @@ -0,0 +1,65 @@ +action(fn (BaseModel $record) => $this->handle($record)); + } + + /** + * Perform the action on the given models. + * + * @param BaseModel $model + * @return void + * + * @noinspection PhpUnusedParameterInspection + */ + public function handle(BaseModel $model): void + { + $action = new AssignHashids(); + + if ($model instanceof HasHashids) { + try { + $action->assign($model, $this->connection); + } catch (Exception $e) { + //$this->markAsFailed($model, $e); + } + } + } + + /** + * Set the connection. + * + * @param string|null $connection + * @return static + */ + public function setConnection(?string $connection): static + { + $this->connection = $connection; + + return $this; + } +} diff --git a/app/Filament/HeaderActions/Models/Auth/Role/GivePermissionHeaderAction.php b/app/Filament/HeaderActions/Models/Auth/Role/GivePermissionHeaderAction.php new file mode 100644 index 000000000..589f966c3 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Auth/Role/GivePermissionHeaderAction.php @@ -0,0 +1,72 @@ +action(fn (Role $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param Role $role + * @param array $data + * @return void + */ + public function handle(Role $role, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $role->givePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/HeaderActions/Models/Auth/Role/RevokePermissionHeaderAction.php b/app/Filament/HeaderActions/Models/Auth/Role/RevokePermissionHeaderAction.php new file mode 100644 index 000000000..696f447c5 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Auth/Role/RevokePermissionHeaderAction.php @@ -0,0 +1,72 @@ +action(fn (Role $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param Role $role + * @param array $data + * @return void + */ + public function handle(Role $role, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $role->revokePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/HeaderActions/Models/Auth/User/GivePermissionHeaderAction.php b/app/Filament/HeaderActions/Models/Auth/User/GivePermissionHeaderAction.php new file mode 100644 index 000000000..93d013fe8 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Auth/User/GivePermissionHeaderAction.php @@ -0,0 +1,73 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $user->givePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/HeaderActions/Models/Auth/User/GiveRoleHeaderAction.php b/app/Filament/HeaderActions/Models/Auth/User/GiveRoleHeaderAction.php new file mode 100644 index 000000000..d57e8e2ad --- /dev/null +++ b/app/Filament/HeaderActions/Models/Auth/User/GiveRoleHeaderAction.php @@ -0,0 +1,73 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $role = Role::findById(intval(Arr::get($data, self::FIELD_ROLE))); + + $user->assignRole($role); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $roles = Role::all([Role::ATTRIBUTE_ID, Role::ATTRIBUTE_NAME]) + ->keyBy(Role::ATTRIBUTE_ID) + ->map(fn (Role $role) => $role->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_ROLE) + ->label(__('filament.resources.singularLabel.role')) + ->searchable() + ->required() + ->options($roles) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/HeaderActions/Models/Auth/User/RevokePermissionHeaderAction.php b/app/Filament/HeaderActions/Models/Auth/User/RevokePermissionHeaderAction.php new file mode 100644 index 000000000..8c9d76fa2 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Auth/User/RevokePermissionHeaderAction.php @@ -0,0 +1,72 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given model. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $permission = Permission::findById(intval(Arr::get($data, self::FIELD_PERMISSION))); + + $user->revokePermissionTo($permission); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $permissions = Permission::all([Permission::ATTRIBUTE_ID, Permission::ATTRIBUTE_NAME]) + ->keyBy(Permission::ATTRIBUTE_ID) + ->map(fn (Permission $permission) => $permission->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_PERMISSION) + ->label(__('filament.resources.singularLabel.permission')) + ->searchable() + ->required() + ->options($permissions) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/HeaderActions/Models/Auth/User/RevokeRoleHeaderAction.php b/app/Filament/HeaderActions/Models/Auth/User/RevokeRoleHeaderAction.php new file mode 100644 index 000000000..0a76e87a3 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Auth/User/RevokeRoleHeaderAction.php @@ -0,0 +1,72 @@ +action(fn (User $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param User $user + * @param array $data + * @return void + */ + public function handle(User $user, array $data): void + { + $role = Role::findById(intval(Arr::get($data, self::FIELD_ROLE))); + + $user->removeRole($role); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $roles = Role::all([Role::ATTRIBUTE_ID, Role::ATTRIBUTE_NAME]) + ->keyBy(Role::ATTRIBUTE_ID) + ->map(fn (Role $role) => $role->name) + ->toArray(); + + return $form + ->schema([ + Select::make(self::FIELD_ROLE) + ->label(__('filament.resources.singularLabel.role')) + ->searchable() + ->required() + ->options($roles) + ->rules('required'), + ]); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeImageHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeImageHeaderAction.php new file mode 100644 index 000000000..7a3051d78 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeImageHeaderAction.php @@ -0,0 +1,27 @@ +action(fn (Anime $record, array $data) => (new AttachAnimeImageActionAction($this->facets))->handle($record, $data)); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeResourceHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeResourceHeaderAction.php new file mode 100644 index 000000000..87571fc02 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Anime/AttachAnimeResourceHeaderAction.php @@ -0,0 +1,41 @@ +action(fn (Anime $record, array $data) => (new AttachAnimeResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new AnimeResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Anime/BackfillAnimeHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Anime/BackfillAnimeHeaderAction.php new file mode 100644 index 000000000..7ab00d9c2 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Anime/BackfillAnimeHeaderAction.php @@ -0,0 +1,226 @@ +action(fn (Anime $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Anime $anime + * @param array $fields + * @return void + */ + public function handle(Anime $anime, array $fields): void + { + if ($anime->resources()->doesntExist()) { + $this->fail(__('filament.actions.anime.backfill.message.resource_required_failure')); + return; + } + + $actions = $this->getActions($fields, $anime); + + try { + foreach ($actions as $action) { + $result = $action->handle(); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + NotificationAction::make('mark-as-read') + ->button() + ->markAsRead(), + ]) + ->sendToDatabase(auth()->user()); + } + } + } catch (Exception $e) { + $this->fail($e); + } finally { + // Try not to upset third-party APIs + Sleep::for(rand(3, 5))->second(); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form|null + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): ?Form + { + $anime = $this->getRecord(); + + return $form + ->schema([ + Section::make(__('filament.actions.anime.backfill.fields.resources.name')) + ->schema([ + Checkbox::make(self::BACKFILL_KITSU_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.kitsu.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.kitsu.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::KITSU->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_ANILIST_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.anilist.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.anilist.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::ANILIST->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_MAL_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.mal.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.mal.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::MAL->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_ANIDB_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.anidb.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.anidb.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::ANIDB->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_ANN_RESOURCE) + ->label(__('filament.actions.anime.backfill.fields.resources.ann.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.ann.help')) + ->default(fn () => $anime instanceof Anime && $anime->resources()->where(ExternalResource::ATTRIBUTE_SITE, ResourceSite::ANN->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_OTHER_RESOURCES) + ->label(__('filament.actions.anime.backfill.fields.resources.external_links.name')) + ->helperText(__('filament.actions.anime.backfill.fields.resources.external_links.help')) + ->default(fn () => $anime instanceof Anime), + ]), + + Section::make(__('filament.actions.anime.backfill.fields.images.name')) + ->schema([ + Checkbox::make(self::BACKFILL_LARGE_COVER) + ->label(__('filament.actions.anime.backfill.fields.images.large_cover.name')) + ->helperText(__('filament.actions.anime.backfill.fields.images.large_cover.help')) + ->default(fn () => $anime instanceof Anime && $anime->images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_LARGE->value)->doesntExist()), + + Checkbox::make(self::BACKFILL_SMALL_COVER) + ->label(__('filament.actions.anime.backfill.fields.images.small_cover.name')) + ->helperText(__('filament.actions.anime.backfill.fields.images.small_cover.help')) + ->default(fn () => $anime instanceof Anime && $anime->images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_SMALL->value)->doesntExist()), + ]), + + Section::make(__('filament.actions.anime.backfill.fields.studios.name')) + ->schema([ + Checkbox::make(self::BACKFILL_STUDIOS) + ->label(__('filament.actions.anime.backfill.fields.studios.anime.name')) + ->helperText(__('filament.actions.anime.backfill.fields.studios.anime.help')) + ->default(fn () => $anime instanceof Anime && $anime->studios()->doesntExist()), + ]), + + Section::make(__('filament.actions.anime.backfill.fields.synonyms.name')) + ->schema([ + Checkbox::make(self::BACKFILL_STUDIOS) + ->label(__('filament.actions.anime.backfill.fields.synonyms.name')) + ->helperText(__('filament.actions.anime.backfill.fields.synonyms.help')) + ->default(fn () => $anime instanceof Anime && $anime->animesynonyms()->count() === 0), + ]), + ]); + } + + /** + * Get the selected actions for backfilling anime. + * + * @param array $fields + * @param Anime $anime + * @return BackfillAction[] + */ + protected function getActions(array $fields, Anime $anime): array + { + $actions = []; + + foreach ($this->getActionMapping($anime) as $field => $action) { + if (Arr::get($fields, $field) === true) { + $actions[] = $action; + } + } + + return $actions; + } + + /** + * Get the mapping of actions to their form fields. + * + * @param Anime $anime + * @return array + */ + protected function getActionMapping(Anime $anime): array + { + return [ + self::BACKFILL_KITSU_RESOURCE => new BackfillKitsuResourceAction($anime), + self::BACKFILL_ANILIST_RESOURCE => new BackfillAnilistResourceAction($anime), + self::BACKFILL_MAL_RESOURCE => new BackfillMalResourceAction($anime), + self::BACKFILL_ANIDB_RESOURCE => new BackfillAnidbResourceAction($anime), + self::BACKFILL_ANN_RESOURCE => new BackfillAnnResourceAction($anime), + self::BACKFILL_OTHER_RESOURCES => new BackfillAnimeOtherResourcesAction($anime), + self::BACKFILL_LARGE_COVER => new BackfillLargeCoverImageAction($anime), + self::BACKFILL_SMALL_COVER => new BackfillSmallCoverImageAction($anime), + self::BACKFILL_STUDIOS => new BackfillAnimeStudiosAction($anime), + self::BACKFILL_SYNONYMS => new BackfillAnimeSynonymsAction($anime), + ]; + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistImageHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistImageHeaderAction.php new file mode 100644 index 000000000..c17f6794b --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistImageHeaderAction.php @@ -0,0 +1,27 @@ +action(fn (Artist $record, array $data) => (new AttachArtistImageActionAction($this->facets))->handle($record, $data)); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistResourceHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistResourceHeaderAction.php new file mode 100644 index 000000000..51500118a --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Artist/AttachArtistResourceHeaderAction.php @@ -0,0 +1,41 @@ +action(fn (Artist $record, array $data) => (new AttachArtistResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new ArtistResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/AttachImageHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/AttachImageHeaderAction.php new file mode 100644 index 000000000..b38405ae0 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/AttachImageHeaderAction.php @@ -0,0 +1,62 @@ +getRecord(); + + if ($model instanceof Anime || $model instanceof Artist || $model instanceof Studio) { + foreach ($this->facets as $facet) { + $images = $model->images(); + if ($images->where(Image::ATTRIBUTE_FACET, $facet->value)->exists()) continue; + + $fields[] = FileUpload::make($facet->name) + ->label($facet->localize()) + ->image() + ->storeFiles(false); + } + } + + return $form + ->schema($fields); + } + + /** + * Get the facets available for the action. + * + * @param ImageFacet[] $facets + * @return static + */ + public function facets(array $facets): static + { + $this->facets = $facets; + + return $this; + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/AttachResourceHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/AttachResourceHeaderAction.php new file mode 100644 index 000000000..f156e54bf --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/AttachResourceHeaderAction.php @@ -0,0 +1,76 @@ +getRecord(); + + foreach ($this->sites as $resourceSite) { + if ($model instanceof Anime || $model instanceof Artist || $model instanceof Song || $model instanceof Studio) { + $resources = $model->resources(); + if ($resources->where(ExternalResource::ATTRIBUTE_SITE, $resourceSite->value)->exists()) continue; + } + + $resourceSiteLower = strtolower($resourceSite->name); + + $fields[] = TextInput::make($resourceSite->name) + ->label($resourceSite->localize()) + ->helperText(__("filament.actions.models.wiki.attach_resource.fields.{$resourceSiteLower}.help")) + ->url() + ->maxLength(192) + ->rules(['max:192', $this->getFormatRule($resourceSite)]); + } + + return $form + ->schema($fields); + } + + /** + * Get the sites available for the action. + * + * @param ResourceSite[] $sites + * @return static + */ + public function sites($sites): static + { + $this->sites = $sites; + + return $this; + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + abstract protected function getFormatRule(ResourceSite $site): ValidationRule; +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Audio/AttachAudioToRelatedVideosHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Audio/AttachAudioToRelatedVideosHeaderAction.php new file mode 100644 index 000000000..a603baf13 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Audio/AttachAudioToRelatedVideosHeaderAction.php @@ -0,0 +1,53 @@ +action(fn (Audio $record) => $this->handle($record)); + } + + /** + * Perform the action on the given models. + * + * @param Audio $audio + * @return void + */ + public function handle(Audio $audio): void + { + $video = $audio->videos()->first(); + + $video->animethemeentries()->each(function (AnimeThemeEntry $firstEntry) use ($audio) { + $theme = $firstEntry->animetheme()->first(); + + $theme->animethemeentries()->each(function (AnimeThemeEntry $entry) use ($audio) { + $entry->videos()->each(function (Video $video) use ($audio) { + Log::info("Associating Audio '{$audio->filename}' with Video '{$video->filename}'"); + $video->audio()->associate($audio)->save(); + }); + }); + }); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Song/AttachSongResourceHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Song/AttachSongResourceHeaderAction.php new file mode 100644 index 000000000..e6e9d4f69 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Song/AttachSongResourceHeaderAction.php @@ -0,0 +1,41 @@ +action(fn (Song $record, array $data) => (new AttachSongResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new SongResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioImageHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioImageHeaderAction.php new file mode 100644 index 000000000..ad3beb19d --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioImageHeaderAction.php @@ -0,0 +1,27 @@ +action(fn (Studio $record, array $data) => (new AttachStudioImageActionAction($this->facets))->handle($record, $data)); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioResourceHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioResourceHeaderAction.php new file mode 100644 index 000000000..9cba1d697 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Studio/AttachStudioResourceHeaderAction.php @@ -0,0 +1,41 @@ +action(fn (Studio $record, array $data) => (new AttachStudioResourceActionAction($this->sites))->handle($record, $data)); + } + + /** + * Get the format validation rule. + * + * @param ResourceSite $site + * @return ValidationRule + */ + protected function getFormatRule(ResourceSite $site): ValidationRule + { + return new StudioResourceLinkFormatRule($site); + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Studio/BackfillStudioHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Studio/BackfillStudioHeaderAction.php new file mode 100644 index 000000000..7508d1953 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Studio/BackfillStudioHeaderAction.php @@ -0,0 +1,143 @@ +action(fn (Studio $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Studio $studio + * @param array $fields + * @return void + */ + public function handle(Studio $studio, array $fields): void + { + if ($studio->resources()->doesntExist()) { + //$this->markAsFailed($studio, __('filament.actions.studio.backfill.message.resource_required_failure')); + return; + } + + $actions = $this->getActions($fields, $studio); + + try { + foreach ($actions as $action) { + $result = $action->handle(); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + NotificationAction::make('mark-as-read') + ->button() + ->markAsRead(), + ]) + ->sendToDatabase(auth()->user()); + } + } + } catch (Exception $e) { + //$this->markAsFailed($studio, $e); + } finally { + // Try not to upset third-party APIs + Sleep::for(rand(3, 5))->second(); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $studio = $this->getRecord(); + + return $form + ->schema([ + Section::make(__('filament.actions.studio.backfill.fields.images.name')) + ->schema([ + Checkbox::make(self::BACKFILL_LARGE_COVER) + ->label(__('filament.actions.studio.backfill.fields.images.large_cover.name')) + ->helperText(__('filament.actions.studio.backfill.fields.images.large_cover.help')) + ->default(fn () => $studio instanceof Studio && $studio->images()->where(Image::ATTRIBUTE_FACET, ImageFacet::COVER_LARGE->value)->doesntExist()), + ]), + ]); + } + + /** + * Get the selected actions for backfilling studios. + * + * @param array $fields + * @param Studio $studio + * @return BackfillAction[] + */ + protected function getActions(array $fields, Studio $studio): array + { + $actions = []; + + foreach ($this->getActionMapping($studio) as $field => $action) { + if (Arr::get($fields, $field) === true) { + $actions[] = $action; + } + } + + return $actions; + } + + /** + * Get the mapping of actions to their form fields. + * + * @param Studio $studio + * @return array + */ + protected function getActionMapping(Studio $studio): array + { + return [ + self::BACKFILL_LARGE_COVER => new BackfillLargeCoverImageAction($studio), + ]; + } +} diff --git a/app/Filament/HeaderActions/Models/Wiki/Video/BackfillAudioHeaderAction.php b/app/Filament/HeaderActions/Models/Wiki/Video/BackfillAudioHeaderAction.php new file mode 100644 index 000000000..6f1aa20c5 --- /dev/null +++ b/app/Filament/HeaderActions/Models/Wiki/Video/BackfillAudioHeaderAction.php @@ -0,0 +1,105 @@ +action(fn (Video $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param Video $video + * @param array $data + * @return void + */ + public function handle(Video $video, array $data): void + { + $deriveSourceVideo = DeriveSourceVideo::from(intval(Arr::get($data, self::DERIVE_SOURCE_VIDEO))); + $overwriteAudio = OverwriteAudio::from(intval(Arr::get($data, self::OVERWRITE_AUDIO))); + + $action = new BackfillAudio($video, $deriveSourceVideo, $overwriteAudio); + + try { + $result = $action->handle(); + if ($result->hasFailed()) { + Notification::make() + ->body($result->getMessage()) + ->warning() + ->actions([ + NotificationAction::make('mark-as-read') + ->button() + ->markAsRead(), + ]) + ->sendToDatabase(auth()->user()); + } + } catch (Exception $e) { + //$this->markAsFailed($video, $e); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + return $form + ->schema([ + Select::make(self::DERIVE_SOURCE_VIDEO) + ->label(__('filament.actions.video.backfill.fields.derive_source.name')) + ->options(DeriveSourceVideo::asSelectArray()) + ->rules(['required', new Enum(DeriveSourceVideo::class)]) + ->default(DeriveSourceVideo::YES->value) + ->helperText(__('filament.actions.video.backfill.fields.derive_source.help')), + + Select::make(self::OVERWRITE_AUDIO) + ->label(__('filament.actions.video.backfill.fields.overwrite.name')) + ->options(OverwriteAudio::asSelectArray()) + ->rules(['required', new Enum(OverwriteAudio::class)]) + ->default(OverwriteAudio::NO->value) + ->helperText(__('filament.actions.video.backfill.fields.overwrite.help')), + ]); + } +} diff --git a/app/Filament/HeaderActions/Storage/Base/DeleteHeaderAction.php b/app/Filament/HeaderActions/Storage/Base/DeleteHeaderAction.php new file mode 100644 index 000000000..243f3b0e1 --- /dev/null +++ b/app/Filament/HeaderActions/Storage/Base/DeleteHeaderAction.php @@ -0,0 +1,24 @@ +defaultPath(); + + $fs = Storage::disk($this->disk()); + + return $form + ->schema([ + TextInput::make('path') + ->label(__('filament.actions.storage.move.fields.path.name')) + ->helperText(__('filament.actions.storage.move.fields.path.help')) + ->required() + ->rules(['required', 'string', 'doesnt_start_with:/', "ends_with:{$this->allowedFileExtension()}", new StorageFileDirectoryExistsRule($fs)]) + ->default(fn () => $defaultPath), + ]); + } + + /** + * Get the underlying storage action. + * + * @param BaseModel $model + * @param array $fields + * @return BaseMoveAction + */ + abstract protected function storageAction(BaseModel $model, array $fields): BaseMoveAction; + + /** + * Resolve the default value for the path field. + * + * @return string|null + */ + abstract protected function defaultPath(): ?string; + + /** + * The file extension that the path must end with. + * + * @return string + */ + abstract protected function allowedFileExtension(): string; +} diff --git a/app/Filament/HeaderActions/Storage/StorageHeaderAction.php b/app/Filament/HeaderActions/Storage/StorageHeaderAction.php new file mode 100644 index 000000000..7cd17613d --- /dev/null +++ b/app/Filament/HeaderActions/Storage/StorageHeaderAction.php @@ -0,0 +1,57 @@ +action(fn (BaseModel $record, array $data) => $this->handle($record, $data)); + } + + /** + * Get the underlying storage action. + * + * @param BaseModel $model + * @param array $fields + * @return BaseStorageAction + */ + abstract protected function storageAction(BaseModel $model, array $fields): BaseStorageAction; + + /** + * Perform the action on the given models. + * + * @param BaseModel $model + * @param array $fields + * @return void + */ + public function handle(BaseModel $model, array $fields): void + { + $action = $this->storageAction($model, $fields); + + $storageResults = $action->handle(); + + $storageResults->toLog(); + + $action->then($storageResults); + + $actionResult = $storageResults->toActionResult(); + } +} diff --git a/app/Filament/HeaderActions/Storage/Wiki/Audio/DeleteAudioHeaderAction.php b/app/Filament/HeaderActions/Storage/Wiki/Audio/DeleteAudioHeaderAction.php new file mode 100644 index 000000000..02c0ad453 --- /dev/null +++ b/app/Filament/HeaderActions/Storage/Wiki/Audio/DeleteAudioHeaderAction.php @@ -0,0 +1,28 @@ +getRecord(); + + return $audio instanceof Audio + ? $audio->path + : null; + } + + /** + * The file extension that the path must end with. + * + * @return string + */ + protected function allowedFileExtension(): string + { + return '.ogg'; + } +} diff --git a/app/Filament/HeaderActions/Storage/Wiki/Video/DeleteVideoHeaderAction.php b/app/Filament/HeaderActions/Storage/Wiki/Video/DeleteVideoHeaderAction.php new file mode 100644 index 000000000..5710c4190 --- /dev/null +++ b/app/Filament/HeaderActions/Storage/Wiki/Video/DeleteVideoHeaderAction.php @@ -0,0 +1,28 @@ +getRecord(); + + return $video instanceof Video + ? $video->path + : null; + } + + /** + * The file extension that the path must end with. + * + * @return string + */ + protected function allowedFileExtension(): string + { + return '.webm'; + } +} diff --git a/app/Filament/HeaderActions/Storage/Wiki/Video/Script/DeleteScriptHeaderAction.php b/app/Filament/HeaderActions/Storage/Wiki/Video/Script/DeleteScriptHeaderAction.php new file mode 100644 index 000000000..75aeac956 --- /dev/null +++ b/app/Filament/HeaderActions/Storage/Wiki/Video/Script/DeleteScriptHeaderAction.php @@ -0,0 +1,28 @@ +getRecord(); + + return $script instanceof VideoScript + ? $script->path + : null; + } + + /** + * The file extension that the path must end with. + * + * @return string + */ + protected function allowedFileExtension(): string + { + return '.txt'; + } +} diff --git a/app/Filament/Providers/GlobalSearchScoutProvider.php b/app/Filament/Providers/GlobalSearchScoutProvider.php new file mode 100644 index 000000000..53a0aacba --- /dev/null +++ b/app/Filament/Providers/GlobalSearchScoutProvider.php @@ -0,0 +1,63 @@ +get() + ->map(function (BaseModel $record) use ($resource): ?GlobalSearchResult { + $url = $resource::getGlobalSearchResultUrl($record); + + if (blank($url)) { + return null; + } + + return new GlobalSearchResult( + title: $resource::getGlobalSearchResultTitle($record), + url: $url, + details: $resource::getGlobalSearchResultDetails($record), + actions: $resource::getGlobalSearchResultActions($record), + ); + }) + ->filter(); + + if (!$resourceResults->count()) { + continue; + } + + $builder->category($resource::getPluralModelLabel(), $resourceResults); + } + + return $builder; + } +} \ No newline at end of file diff --git a/app/Filament/Resources/Admin/Announcement.php b/app/Filament/Resources/Admin/Announcement.php new file mode 100644 index 000000000..d122201fc --- /dev/null +++ b/app/Filament/Resources/Admin/Announcement.php @@ -0,0 +1,259 @@ +schema([ + MarkdownEditor::make(AnnouncementModel::ATTRIBUTE_CONTENT) + ->label(__('filament.fields.announcement.content')) + ->required() + ->rules(['required', 'max:65535']) + ->maxLength(65535), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(AnnouncementModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(AnnouncementModel::ATTRIBUTE_CONTENT) + ->label(__('filament.fields.announcement.content')) + ->sortable() + ->searchable() + ->copyableWithMessage(), + ]) + ->defaultSort(AnnouncementModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(AnnouncementModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(AnnouncementModel::ATTRIBUTE_CONTENT) + ->label(__('filament.fields.announcement.content')) + ->markdown() + ->columnSpanFull() + ->copyableWithMessage(), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListAnnouncements::route('/'), + 'create' => CreateAnnouncement::route('/create'), + 'view' => ViewAnnouncement::route('/{record:announcement_id}'), + 'edit' => EditAnnouncement::route('/{record:announcement_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Admin/Announcement/Pages/CreateAnnouncement.php b/app/Filament/Resources/Admin/Announcement/Pages/CreateAnnouncement.php new file mode 100644 index 000000000..c25ad87bb --- /dev/null +++ b/app/Filament/Resources/Admin/Announcement/Pages/CreateAnnouncement.php @@ -0,0 +1,16 @@ +schema([ + TextInput::make(DumpModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.dump.path')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']) + ->hiddenOn(['create', 'edit']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(DumpModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(DumpModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.dump.path')) + ->sortable() + ->searchable() + ->copyableWithMessage(), + ]) + ->defaultSort(DumpModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()) + ->headerActions(static::getHeaderActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(DumpModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(DumpModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.dump.path')) + ->copyableWithMessage(), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return [ + ActionGroup::make([ + DumpWikiTableAction::make('dump-wiki') + ->label(__('filament.actions.dump.dump.name.wiki')) + ->requiresConfirmation() + ->authorize('create', DumpModel::class), + + DumpDocumentTableAction::make('dump-document') + ->label(__('filament.actions.dump.dump.name.document')) + ->requiresConfirmation() + ->authorize('create', DumpModel::class), + + PruneDumpTableAction::make('prune-dump') + ->label(__('filament.actions.dump.prune.name')) + ->requiresConfirmation(), + + ReconcileDumpTableAction::make('reconcile-dump') + ->label(__('filament.actions.repositories.name', ['label' => __('filament.resources.label.dumps')])) + ->requiresConfirmation() + ->authorize('create', DumpModel::class), + ]), + ]; + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListDumps::route('/'), + 'create' => CreateDump::route('/create'), + 'view' => ViewDump::route('/{record:dump_id}'), + 'edit' => EditDump::route('/{record:dump_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Admin/Dump/Pages/CreateDump.php b/app/Filament/Resources/Admin/Dump/Pages/CreateDump.php new file mode 100644 index 000000000..f0eaf6252 --- /dev/null +++ b/app/Filament/Resources/Admin/Dump/Pages/CreateDump.php @@ -0,0 +1,16 @@ +schema([ + TextInput::make(FeatureModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.feature.key.name')) + ->helperText(__('filament.fields.feature.key.help')) + ->readOnly() + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + + TextInput::make(FeatureModel::ATTRIBUTE_VALUE) + ->label(__('filament.fields.feature.value.name')) + ->helperText(__('filament.fields.feature.value.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(FeatureModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(FeatureModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.feature.key.name')) + ->sortable() + ->copyableWithMessage(), + + TextColumn::make(FeatureModel::ATTRIBUTE_VALUE) + ->label(__('filament.fields.feature.value.name')) + ->sortable() + ->copyableWithMessage(), + ]) + ->defaultSort(FeatureModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(FeatureModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(FeatureModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.feature.key.name')) + ->copyableWithMessage(), + + TextEntry::make(FeatureModel::ATTRIBUTE_VALUE) + ->label(__('filament.fields.feature.value.name')) + ->copyableWithMessage(), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListFeatures::route('/'), + 'create' => CreateFeature::route('/create'), + 'view' => ViewFeature::route('/{record:feature_id}'), + 'edit' => EditFeature::route('/{record:feature_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Admin/Feature/Pages/CreateFeature.php b/app/Filament/Resources/Admin/Feature/Pages/CreateFeature.php new file mode 100644 index 000000000..4b0caa2ea --- /dev/null +++ b/app/Filament/Resources/Admin/Feature/Pages/CreateFeature.php @@ -0,0 +1,16 @@ +schema([ + DatePicker::make(FeaturedThemeModel::ATTRIBUTE_START_AT) + ->label(__('filament.fields.featured_theme.start_at.name')) + ->helperText(__('filament.fields.featured_theme.start_at.help')) + ->required() + ->rules([ + 'required', + Str::of('date_format:') + ->append(implode(',', $allowedDateFormats)) + ->__toString(), + Str::of('before:') + ->append(FeaturedThemeModel::ATTRIBUTE_END_AT) + ->__toString(), + ]), + + DatePicker::make(FeaturedThemeModel::ATTRIBUTE_END_AT) + ->label(__('filament.fields.featured_theme.end_at.name')) + ->helperText(__('filament.fields.featured_theme.end_at.help')) + ->required() + ->rules([ + 'required', + Str::of('date_format:') + ->append(implode(',', $allowedDateFormats)) + ->__toString(), + Str::of('after:') + ->append(FeaturedThemeModel::ATTRIBUTE_START_AT) + ->__toString(), + ]), + + Select::make(FeaturedThemeModel::ATTRIBUTE_ENTRY) + ->label(__('filament.resources.singularLabel.anime_theme_entry')) + ->relationship(FeaturedThemeModel::RELATION_ENTRY, EntryModel::ATTRIBUTE_ID) + ->live(true) + ->useScout(EntryModel::class, EntryModel::RELATION_ANIME_SHALLOW) + ->rules([ + fn (Get $get) => function () use ($get) { + return [ + Rule::when( + ! empty($get(FeaturedThemeModel::RELATION_ENTRY)) && ! empty($get(FeaturedThemeModel::RELATION_VIDEO)), + [ + Rule::exists(AnimeThemeEntryVideo::class, AnimeThemeEntryVideo::ATTRIBUTE_ENTRY) + ->where(AnimeThemeEntryVideo::ATTRIBUTE_VIDEO, $get(FeaturedThemeModel::RELATION_VIDEO)), + ] + )]; + } + ]), + + Select::make(FeaturedThemeModel::ATTRIBUTE_VIDEO) + ->label(__('filament.resources.singularLabel.video')) + ->relationship(FeaturedThemeModel::RELATION_VIDEO, Video::ATTRIBUTE_FILENAME) + ->rules([ + fn (Get $get) => function () use ($get) { + return [ + Rule::when( + ! empty($get(FeaturedThemeModel::RELATION_ENTRY)) && ! empty($get(FeaturedThemeModel::RELATION_VIDEO)), + [ + Rule::exists(AnimeThemeEntryVideo::class, AnimeThemeEntryVideo::ATTRIBUTE_VIDEO) + ->where(AnimeThemeEntryVideo::ATTRIBUTE_ENTRY, $get(FeaturedThemeModel::RELATION_ENTRY)), + ] + )]; + } + ]) + ->options(function (Get $get) { + return Video::query() + ->whereHas(Video::RELATION_ANIMETHEMEENTRIES, function ($query) use ($get) { + $query->where(EntryModel::TABLE.'.'.EntryModel::ATTRIBUTE_ID, $get(FeaturedThemeModel::ATTRIBUTE_ENTRY)); + }) + ->get() + ->mapWithKeys(fn (Video $video) => [$video->getKey() => $video->getName()]) + ->toArray(); + }), + + Select::make(FeaturedThemeModel::ATTRIBUTE_USER) + ->label(__('filament.resources.singularLabel.user')) + ->relationship(FeaturedThemeModel::RELATION_USER, User::ATTRIBUTE_NAME) + ->allowHtml() + ->searchable() + ->getSearchResultsUsing(function (string $search) { + return User::query() + ->where(User::ATTRIBUTE_NAME, ComparisonOperator::LIKE->value, "%$search%") + ->get() + ->mapWithKeys(fn (User $model) => [$model->getKey() => Select::getSearchLabelWithBlade($model)]) + ->toArray(); + }), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(FeaturedThemeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(FeaturedThemeModel::ATTRIBUTE_START_AT) + ->label(__('filament.fields.featured_theme.start_at.name')) + ->sortable() + ->date() + ->toggleable(), + + TextColumn::make(FeaturedThemeModel::ATTRIBUTE_END_AT) + ->label(__('filament.fields.featured_theme.end_at.name')) + ->sortable() + ->date() + ->toggleable(), + + TextColumn::make(FeaturedThemeModel::RELATION_VIDEO.'.'.Video::ATTRIBUTE_FILENAME) + ->label(__('filament.resources.singularLabel.video')) + ->toggleable() + ->placeholder('-') + ->urlToRelated(VideoResource::class, FeaturedThemeModel::RELATION_VIDEO), + + TextColumn::make(FeaturedThemeModel::RELATION_ENTRY.'.'.EntryModel::ATTRIBUTE_ID) + ->label(__('filament.resources.singularLabel.anime_theme_entry')) + ->toggleable() + ->placeholder('-') + ->formatStateUsing(fn (string $state) => EntryModel::find(intval($state))->load(EntryModel::RELATION_ANIME_SHALLOW)->getName()) + ->urlToRelated(EntryResource::class, FeaturedThemeModel::RELATION_ENTRY), + + TextColumn::make(FeaturedThemeModel::RELATION_USER.'.'.User::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.user')) + ->toggleable() + ->placeholder('-') + ->urlToRelated(UserResource::class, FeaturedThemeModel::RELATION_USER), + ]) + ->defaultSort(FeaturedThemeModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(FeaturedThemeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(FeaturedThemeModel::ATTRIBUTE_START_AT) + ->label(__('filament.fields.featured_theme.start_at.name')) + ->date(), + + TextEntry::make(FeaturedThemeModel::ATTRIBUTE_END_AT) + ->label(__('filament.fields.featured_theme.end_at.name')) + ->date(), + + TextEntry::make(FeaturedThemeModel::RELATION_VIDEO.'.'.Video::ATTRIBUTE_FILENAME) + ->label(__('filament.resources.singularLabel.video')) + ->placeholder('-') + ->urlToRelated(VideoResource::class, FeaturedThemeModel::RELATION_VIDEO), + + TextEntry::make(FeaturedThemeModel::RELATION_ENTRY.'.'.EntryModel::ATTRIBUTE_ID) + ->label(__('filament.resources.singularLabel.anime_theme_entry')) + ->placeholder('-') + ->formatStateUsing(fn (string $state) => EntryModel::find(intval($state))->load(EntryModel::RELATION_ANIME)->getName()) + ->urlToRelated(EntryResource::class, FeaturedThemeModel::RELATION_ENTRY), + + TextEntry::make(FeaturedThemeModel::RELATION_USER.'.'.User::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.user')) + ->placeholder('-') + ->urlToRelated(UserResource::class, FeaturedThemeModel::RELATION_USER), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListFeaturedThemes::route('/'), + 'create' => CreateFeaturedTheme::route('/create'), + 'view' => ViewFeaturedTheme::route('/{record:featured_theme_id}'), + 'edit' => EditFeaturedTheme::route('/{record:featured_theme_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Admin/FeaturedTheme/Pages/CreateFeaturedTheme.php b/app/Filament/Resources/Admin/FeaturedTheme/Pages/CreateFeaturedTheme.php new file mode 100644 index 000000000..684015fc5 --- /dev/null +++ b/app/Filament/Resources/Admin/FeaturedTheme/Pages/CreateFeaturedTheme.php @@ -0,0 +1,16 @@ +schema([ + TextInput::make(PermissionModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.permission.name')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']) + ->hiddenOn(['edit']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(PermissionModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(PermissionModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.permission.name')) + ->sortable() + ->searchable() + ->copyableWithMessage(), + ]) + ->defaultSort(PermissionModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(PermissionModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(PermissionModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.permission.name')) + ->copyableWithMessage(), + ]) + ->columns(2), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + RolePermissionRelationManager::class, + UserPermissionRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + GiveRoleAction::make('give-role') + ->label(__('filament.actions.permission.give_role.name')) + ->requiresConfirmation(), + + RevokeRoleAction::make('revoke-role') + ->label(__('filament.actions.permission.revoke_role.name')) + ->requiresConfirmation(), + ]), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListPermissions::route('/'), + 'create' => CreatePermission::route('/create'), + 'view' => ViewPermission::route('/{record:id}'), + 'edit' => EditPermission::route('/{record:id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Auth/Permission/Pages/CreatePermission.php b/app/Filament/Resources/Auth/Permission/Pages/CreatePermission.php new file mode 100644 index 000000000..b89f9477a --- /dev/null +++ b/app/Filament/Resources/Auth/Permission/Pages/CreatePermission.php @@ -0,0 +1,16 @@ +heading(RoleResource::getPluralLabel()) + ->modelLabel(RoleResource::getLabel()) + ->recordTitleAttribute(Role::ATTRIBUTE_NAME) + ->inverseRelationship(Role::RELATION_PERMISSIONS) + ->columns(RoleResource::table($table)->getColumns()) + ->defaultSort(Role::TABLE.'.'.Role::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make(), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Auth/Permission/RelationManagers/UserPermissionRelationManager.php b/app/Filament/Resources/Auth/Permission/RelationManagers/UserPermissionRelationManager.php new file mode 100644 index 000000000..9d7dcc385 --- /dev/null +++ b/app/Filament/Resources/Auth/Permission/RelationManagers/UserPermissionRelationManager.php @@ -0,0 +1,119 @@ +heading(UserResource::getPluralLabel()) + ->modelLabel(UserResource::getLabel()) + ->recordTitleAttribute(User::ATTRIBUTE_NAME) + ->inverseRelationship(User::RELATION_PERMISSIONS) + ->columns(UserResource::table($table)->getColumns()) + ->defaultSort(User::TABLE.'.'.User::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make(), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Auth/Role.php b/app/Filament/Resources/Auth/Role.php new file mode 100644 index 000000000..2dfde5762 --- /dev/null +++ b/app/Filament/Resources/Auth/Role.php @@ -0,0 +1,337 @@ +schema([ + TextInput::make(RoleModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.role.name')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + + Checkbox::make(RoleModel::ATTRIBUTE_DEFAULT) + ->label(__('filament.fields.role.default.name')) + ->helperText(__('filament.fields.role.default.help')) + ->rules(['nullable', 'boolean']), + + ColorPicker::make(RoleModel::ATTRIBUTE_COLOR) + ->label(__('filament.fields.role.color.name')) + ->helperText(__('filament.fields.role.color.help')), + + TextInput::make(RoleModel::ATTRIBUTE_PRIORITY) + ->label(__('filament.fields.role.priority.name')) + ->helperText(__('filament.fields.role.priority.help')) + ->numeric() + ->minValue(1) + ->nullable() + ->rules(['nullable', 'integer', 'min:1']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(RoleModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(RoleModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.role.name')) + ->sortable() + ->searchable() + ->copyableWithMessage() + ->toggleable(), + + IconColumn::make(RoleModel::ATTRIBUTE_DEFAULT) + ->label(__('filament.fields.role.default.name')) + ->sortable() + ->toggleable() + ->boolean(), + + ColorColumn::make(RoleModel::ATTRIBUTE_COLOR) + ->label(__('filament.fields.role.color.name')) + ->sortable() + ->toggleable(), + + TextColumn::make(RoleModel::ATTRIBUTE_PRIORITY) + ->label(__('filament.fields.role.priority.name')) + ->sortable() + ->toggleable() + ->placeholder('-'), + ]) + ->defaultSort(RoleModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(RoleModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(RoleModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.role.name')) + ->copyableWithMessage(), + + IconEntry::make(RoleModel::ATTRIBUTE_DEFAULT) + ->label(__('filament.fields.role.default.name')) + ->boolean(), + + ColorEntry::make(RoleModel::ATTRIBUTE_COLOR) + ->label(__('filament.fields.role.color.name')), + + TextEntry::make(RoleModel::ATTRIBUTE_PRIORITY) + ->label(__('filament.fields.role.priority.name')) + ->placeholder('-'), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + PermissionRoleRelationManager::class, + UserRoleRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return [ + Filter::make(RoleModel::ATTRIBUTE_DEFAULT) + ->label(__('filament.fields.role.default.name')) + ->checkbox(), + + NumberFilter::make(RoleModel::ATTRIBUTE_PRIORITY) + ->labels(__('filament.filters.role.priority_from'), __('filament.filters.role.priority_to')) + ->attribute(RoleModel::ATTRIBUTE_PRIORITY), + ]; + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + GivePermissionAction::make('give-permission') + ->label(__('filament.actions.role.give_permission.name')) + ->requiresConfirmation(), + + RevokePermissionAction::make('revoke-permission') + ->label(__('filament.actions.role.revoke_permission.name')) + ->requiresConfirmation(), + ]), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListRoles::route('/'), + 'create' => CreateRole::route('/create'), + 'view' => ViewRole::route('/{record:id}'), + 'edit' => EditRole::route('/{record:id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Auth/Role/Pages/CreateRole.php b/app/Filament/Resources/Auth/Role/Pages/CreateRole.php new file mode 100644 index 000000000..abe8d167f --- /dev/null +++ b/app/Filament/Resources/Auth/Role/Pages/CreateRole.php @@ -0,0 +1,16 @@ +label(__('filament.actions.role.give_permission.name')) + ->requiresConfirmation(), + + RevokePermissionHeaderAction::make('revoke-permission') + ->label(__('filament.actions.role.revoke_permission.name')) + ->requiresConfirmation(), + ]), + ], + ); + } +} diff --git a/app/Filament/Resources/Auth/Role/Pages/ListRoles.php b/app/Filament/Resources/Auth/Role/Pages/ListRoles.php new file mode 100644 index 000000000..d2d5ebb55 --- /dev/null +++ b/app/Filament/Resources/Auth/Role/Pages/ListRoles.php @@ -0,0 +1,31 @@ +heading(PermissionResource::getPluralLabel()) + ->modelLabel(PermissionResource::getLabel()) + ->recordTitleAttribute(Permission::ATTRIBUTE_NAME) + ->inverseRelationship(Permission::RELATION_ROLES) + ->columns(PermissionResource::table($table)->getColumns()) + ->defaultSort(Permission::TABLE.'.'.Permission::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make(), + EditAction::make(), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Auth/Role/RelationManagers/UserRoleRelationManager.php b/app/Filament/Resources/Auth/Role/RelationManagers/UserRoleRelationManager.php new file mode 100644 index 000000000..b4bec9fb9 --- /dev/null +++ b/app/Filament/Resources/Auth/Role/RelationManagers/UserRoleRelationManager.php @@ -0,0 +1,121 @@ +heading(UserResource::getPluralLabel()) + ->modelLabel(UserResource::getLabel()) + ->recordTitleAttribute(User::ATTRIBUTE_NAME) + ->inverseRelationship(User::RELATION_ROLES) + ->columns(UserResource::table($table)->getColumns()) + ->defaultSort(User::TABLE.'.'.User::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make(), + EditAction::make(), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Auth/User.php b/app/Filament/Resources/Auth/User.php new file mode 100644 index 000000000..94528506a --- /dev/null +++ b/app/Filament/Resources/Auth/User.php @@ -0,0 +1,316 @@ +schema([ + TextInput::make(UserModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.user.name')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + + TextInput::make(UserModel::ATTRIBUTE_EMAIL) + ->label(__('filament.fields.user.email')) + ->email() + ->required() + ->maxLength(192) + ->rules(['required', 'email', 'max:192']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(UserModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + ImageColumn::make('avatar') + ->label(__('filament.fields.user.avatar')) + ->defaultImageUrl(fn (UserModel $model) => $model->getFilamentAvatarUrl()) + ->circular(), + + TextColumn::make(UserModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.user.name')) + ->sortable() + ->searchable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(UserModel::ATTRIBUTE_EMAIL) + ->label(__('filament.fields.user.email')) + ->icon('heroicon-m-envelope') + ->toggleable(), + ]) + ->defaultSort(UserModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + ImageEntry::make('avatar') + ->label(__('filament.fields.user.avatar')) + ->defaultImageUrl(fn (UserModel $model) => $model->getFilamentAvatarUrl()) + ->circular(), + + TextEntry::make(UserModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.user.name')) + ->copyableWithMessage(), + + TextEntry::make(UserModel::ATTRIBUTE_EMAIL) + ->label(__('filament.fields.user.email')) + ->icon('heroicon-m-envelope'), + + TextEntry::make(UserModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + RoleUserRelationManager::class, + PermissionUserRelationManager::class, + PlaylistUserRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + GiveRoleAction::make('give-role') + ->label(__('filament.actions.user.give_role.name')) + ->requiresConfirmation(), + + RevokeRoleAction::make('revoke-role') + ->label(__('filament.actions.user.revoke_role.name')) + ->requiresConfirmation(), + + GivePermissionAction::make('give-permission') + ->label(__('filament.actions.user.give_permission.name')) + ->requiresConfirmation(), + + RevokePermissionAction::make('revoke-permission') + ->label(__('filament.actions.user.revoke_permission.name')) + ->requiresConfirmation(), + ]), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListUsers::route('/'), + 'create' => CreateUser::route('/create'), + 'view' => ViewUser::route('/{record:id}'), + 'edit' => EditUser::route('/{record:id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Auth/User/Pages/CreateUser.php b/app/Filament/Resources/Auth/User/Pages/CreateUser.php new file mode 100644 index 000000000..5cb34798d --- /dev/null +++ b/app/Filament/Resources/Auth/User/Pages/CreateUser.php @@ -0,0 +1,16 @@ +label(__('filament.actions.user.give_role.name')) + ->requiresConfirmation(), + + RevokeRoleHeaderAction::make('revoke-role') + ->label(__('filament.actions.user.revoke_role.name')) + ->requiresConfirmation(), + + GivePermissionHeaderAction::make('give-permission') + ->label(__('filament.actions.user.give_permission.name')) + ->requiresConfirmation(), + + RevokePermissionHeaderAction::make('revoke-permission') + ->label(__('filament.actions.user.revoke_permission.name')) + ->requiresConfirmation(), + ]), + ], + ); + } +} diff --git a/app/Filament/Resources/Auth/User/Pages/ListUsers.php b/app/Filament/Resources/Auth/User/Pages/ListUsers.php new file mode 100644 index 000000000..11244cf6a --- /dev/null +++ b/app/Filament/Resources/Auth/User/Pages/ListUsers.php @@ -0,0 +1,31 @@ +heading(PermissionResource::getPluralLabel()) + ->modelLabel(PermissionResource::getLabel()) + ->recordTitleAttribute(Permission::ATTRIBUTE_NAME) + ->inverseRelationship(Permission::RELATION_USERS) + ->columns(PermissionResource::table($table)->getColumns()) + ->defaultSort(Permission::TABLE.'.'.Permission::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make(), + EditAction::make(), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Auth/User/RelationManagers/PlaylistUserRelationManager.php b/app/Filament/Resources/Auth/User/RelationManagers/PlaylistUserRelationManager.php new file mode 100644 index 000000000..102f91677 --- /dev/null +++ b/app/Filament/Resources/Auth/User/RelationManagers/PlaylistUserRelationManager.php @@ -0,0 +1,119 @@ +heading(PlaylistResource::getPluralLabel()) + ->modelLabel(PlaylistResource::getLabel()) + ->recordTitleAttribute(Playlist::ATTRIBUTE_NAME) + ->inverseRelationship(Playlist::RELATION_USER) + ->columns(PlaylistResource::table($table)->getColumns()) + ->defaultSort(Playlist::TABLE.'.'.Playlist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Auth/User/RelationManagers/RoleUserRelationManager.php b/app/Filament/Resources/Auth/User/RelationManagers/RoleUserRelationManager.php new file mode 100644 index 000000000..d4e81e5db --- /dev/null +++ b/app/Filament/Resources/Auth/User/RelationManagers/RoleUserRelationManager.php @@ -0,0 +1,121 @@ +heading(RoleResource::getPluralLabel()) + ->modelLabel(RoleResource::getLabel()) + ->recordTitleAttribute(Role::ATTRIBUTE_NAME) + ->inverseRelationship(Role::RELATION_USERS) + ->columns(RoleResource::table($table)->getColumns()) + ->defaultSort(Role::TABLE.'.'.Role::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return []; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make(), + EditAction::make(), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Base/BaseCreateResource.php b/app/Filament/Resources/Base/BaseCreateResource.php new file mode 100644 index 000000000..aac28a62f --- /dev/null +++ b/app/Filament/Resources/Base/BaseCreateResource.php @@ -0,0 +1,15 @@ +label(__('filament.actions.base.edit')), + + ForceDeleteAction::make() + ->label(__('filament.actions.base.forcedelete')), + + RestoreAction::make() + ->label(__('filament.actions.base.restore')), + ]; + } +} diff --git a/app/Filament/Resources/BaseRelationManager.php b/app/Filament/Resources/BaseRelationManager.php new file mode 100644 index 000000000..bb1c2a3ec --- /dev/null +++ b/app/Filament/Resources/BaseRelationManager.php @@ -0,0 +1,129 @@ +recordUrl(fn (BaseResource $record): string => $record::getUrl('edit', ['record' => $record])) + ->paginated([5, 10, 25]) + ->defaultPaginationPageOption(5); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return [ + TrashedFilter::make() + ]; + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make() + ->label(__('filament.actions.base.view')), + + EditAction::make() + ->label(__('filament.actions.base.edit')), + + DetachAction::make() + ->label(__('filament.actions.base.detach')), + ]; + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return [ + BulkActionGroup::make([ + DeleteBulkAction::make() + ->label(__('filament.bulk_actions.base.delete')), + + ForceDeleteBulkAction::make() + ->label(__('filament.bulk_actions.base.forcedelete')), + + RestoreBulkAction::make() + ->label(__('filament.bulk_actions.base.restore')), + + DetachBulkAction::make() + ->label(__('filament.bulk_actions.base.detach')), + ]), + ]; + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return [ + CreateAction::make(), + + AttachAction::make() + ->hidden(fn (BaseRelationManager $livewire) => !($livewire->getRelationship() instanceof BelongsToMany)) + ->recordSelect(function (BaseRelationManager $livewire) { + /** @var string */ + $model = $livewire->getTable()->getModel(); + $title = $livewire->getTable()->getRecordTitle(new $model); + return Select::make($title) + ->label($title) + ->useScout($model); + }), + ]; + } +} \ No newline at end of file diff --git a/app/Filament/Resources/BaseResource.php b/app/Filament/Resources/BaseResource.php new file mode 100644 index 000000000..c249c8e6d --- /dev/null +++ b/app/Filament/Resources/BaseResource.php @@ -0,0 +1,184 @@ +recordUrl(fn (Model $record): string => static::getUrl('edit', ['record' => $record])) + ->paginated([10, 25, 50, 100, 'all']) + ->defaultPaginationPageOption(25); + } + + /** + * The panel for timestamp fields. + * + * @return array + */ + public static function timestamps(): array + { + return [ + TextEntry::make(BaseModel::ATTRIBUTE_CREATED_AT) + ->label(__('filament.fields.base.created_at')) + ->dateTime(), + + TextEntry::make(BaseModel::ATTRIBUTE_UPDATED_AT) + ->label(__('filament.fields.base.updated_at')) + ->dateTime(), + + TextEntry::make(BaseModel::ATTRIBUTE_DELETED_AT) + ->label(__('filament.fields.base.deleted_at')) + ->dateTime() + ->placeholder('-'), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return [ + TrashedFilter::make(), + + DateFilter::make(BaseModel::ATTRIBUTE_CREATED_AT) + ->attribute(BaseModel::ATTRIBUTE_CREATED_AT) + ->labels(__('filament.filters.base.created_at_from'), __('filament.filters.base.created_at_to')), + + DateFilter::make(BaseModel::ATTRIBUTE_UPDATED_AT) + ->attribute(BaseModel::ATTRIBUTE_UPDATED_AT) + ->labels(__('filament.filters.base.updated_at_from'), __('filament.filters.base.updated_at_to')), + + DateFilter::make(BaseModel::ATTRIBUTE_DELETED_AT) + ->attribute(BaseModel::ATTRIBUTE_DELETED_AT) + ->labels(__('filament.filters.base.deleted_at_from'), __('filament.filters.base.deleted_at_to')), + ]; + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return [ + ViewAction::make() + ->label(__('filament.actions.base.view')), + + EditAction::make() + ->label(__('filament.actions.base.edit')), + + DeleteAction::make() + ->label(__('filament.actions.base.delete')), + + ForceDeleteAction::make() + ->label(__('filament.actions.base.forcedelete')), + + RestoreAction::make() + ->label(__('filament.actions.base.restore')), + ]; + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return [ + BulkActionGroup::make([ + DeleteBulkAction::make() + ->label(__('filament.bulk_actions.base.delete')), + + ForceDeleteBulkAction::make() + ->label(__('filament.bulk_actions.base.forcedelete')), + + RestoreBulkAction::make() + ->label(__('filament.bulk_actions.base.restore')), + ]), + ]; + } + + /** + * Get the eloquent query for the resource. + * + * @return Builder + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getEloquentQuery(): Builder + { + return parent::getEloquentQuery() + ->withoutGlobalScopes([ + SoftDeletingScope::class, + ]); + } + + /** + * Get the default slug (URI key) for the resources. + * + * @return string + * + * @noinspection PhpMissingParentCallCommonInspection + */ + protected static function getDefaultSlug(): string + { + return 'resources/'; + } +} \ No newline at end of file diff --git a/app/Filament/Resources/Document/Page.php b/app/Filament/Resources/Document/Page.php new file mode 100644 index 000000000..89719ec19 --- /dev/null +++ b/app/Filament/Resources/Document/Page.php @@ -0,0 +1,302 @@ +schema([ + TextInput::make(PageModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.page.name.name')) + ->helperText(__('filament.fields.page.name.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']) + ->live(true) + ->afterStateUpdated(fn (Set $set, ?string $state) => $set(PageModel::ATTRIBUTE_SLUG, Str::slug($state, '_'))), + + TextInput::make(PageModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.page.slug.name')) + ->helperText(__('filament.fields.page.slug.help')) + ->required() + ->maxLength(192) + ->regex('/^[\pL\pM\pN\/_-]+$/u') + ->rules(['required', 'max:192', 'regex:/^[\pL\pM\pN\/_-]+$/u', Rule::unique(PageModel::class, PageModel::ATTRIBUTE_SLUG)->__toString()]), + + MarkdownEditor::make(PageModel::ATTRIBUTE_BODY) + ->label(__('filament.fields.page.body.name')) + ->helperText(__('filament.fields.page.body.help')) + ->required() + ->maxLength(16777215) + ->rules(['required', 'max:16777215']) + ->formatStateUsing(fn ($livewire) => PageModel::find($livewire->getRecord()->getKey())->body) + ->columnSpan(2), + ]) + ->columns(2); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(PageModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(PageModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.page.name.name')) + ->sortable() + ->searchable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(PageModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.page.slug.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(PageModel::ATTRIBUTE_BODY) + ->label(__('filament.fields.page.body.name')) + ->sortable() + ->hidden(), + ]) + ->defaultSort(PageModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(PageModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(PageModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.page.name.name')) + ->copyableWithMessage(), + + TextEntry::make(PageModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.page.slug.name')) + ->copyableWithMessage(), + + TextEntry::make(PageModel::ATTRIBUTE_BODY) + ->label(__('filament.fields.page.body.name')) + ->markdown() + ->columnSpanFull(), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListPages::route('/'), + 'create' => CreatePage::route('/create'), + 'view' => ViewPage::route('/{record:page_id}'), + 'edit' => EditPage::route('/{record:page_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Document/Page/Pages/CreatePage.php b/app/Filament/Resources/Document/Page/Pages/CreatePage.php new file mode 100644 index 000000000..7562b5abd --- /dev/null +++ b/app/Filament/Resources/Document/Page/Pages/CreatePage.php @@ -0,0 +1,16 @@ +schema([ + Select::make(PlaylistModel::ATTRIBUTE_USER) + ->label(__('filament.resources.singularLabel.user')) + ->relationship(PlaylistModel::RELATION_USER, UserModel::ATTRIBUTE_NAME) + ->searchable(), + + TextInput::make(PlaylistModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.playlist.name.name')) + ->helperText(__('filament.fields.playlist.name.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + + Select::make(PlaylistModel::ATTRIBUTE_VISIBILITY) + ->label(__('filament.fields.playlist.visibility.name')) + ->helperText(__('filament.fields.playlist.visibility.help')) + ->options(PlaylistVisibility::asSelectArray()) + ->required() + ->rules(['required', new Enum(PlaylistVisibility::class)]), + + TextInput::make(PlaylistModel::ATTRIBUTE_HASHID) + ->label(__('filament.fields.playlist.hashid.name')) + ->helperText(__('filament.fields.playlist.hashid.help')) + ->readOnly(), + + Select::make(PlaylistModel::ATTRIBUTE_FIRST) + ->label(__('filament.fields.playlist.first.name')) + ->relationship(PlaylistModel::RELATION_FIRST, TrackModel::ATTRIBUTE_HASHID) + ->searchable(), + + Select::make(PlaylistModel::ATTRIBUTE_LAST) + ->label(__('filament.fields.playlist.last.name')) + ->relationship(PlaylistModel::RELATION_LAST, TrackModel::ATTRIBUTE_HASHID) + ->searchable(), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(PlaylistModel::ATTRIBUTE_USER) + ->label(__('filament.resources.singularLabel.user')) + ->toggleable() + ->placeholder('-') + ->urlToRelated(UserResource::class, PlaylistModel::RELATION_USER), + + TextColumn::make(PlaylistModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(PlaylistModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.playlist.name.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(PlaylistModel::ATTRIBUTE_VISIBILITY) + ->label(__('filament.fields.playlist.visibility.name')) + ->sortable() + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(PlaylistModel::ATTRIBUTE_HASHID) + ->label(__('filament.fields.playlist.hashid.name')) + ->toggleable() + ->placeholder('-') + ->copyableWithMessage(), + + TextColumn::make(PlaylistModel::ATTRIBUTE_FIRST) + ->label(__('filament.fields.playlist.first.name')) + ->visibleOn(['create', 'edit', 'view']) + ->toggleable() + ->placeholder('-') + ->urlToRelated(Track::class, PlaylistModel::RELATION_FIRST), + + TextColumn::make(PlaylistModel::ATTRIBUTE_LAST) + ->label(__('filament.fields.playlist.last.name')) + ->visibleOn(['create', 'edit', 'view']) + ->toggleable() + ->placeholder('-') + ->urlToRelated(Track::class, PlaylistModel::RELATION_LAST), + ]) + ->searchable() + ->defaultSort(PlaylistModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(PlaylistModel::ATTRIBUTE_USER) + ->label(__('filament.resources.singularLabel.user')) + ->placeholder('-') + ->urlToRelated(UserResource::class, PlaylistModel::RELATION_USER), + + TextEntry::make(PlaylistModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.playlist.name.name')) + ->copyableWithMessage(), + + TextEntry::make(PlaylistModel::ATTRIBUTE_VISIBILITY) + ->label(__('filament.fields.playlist.visibility.name')) + ->formatStateUsing(fn ($state) => $state->localize()), + + TextEntry::make(PlaylistModel::ATTRIBUTE_HASHID) + ->label(__('filament.fields.playlist.hashid.name')) + ->placeholder('-') + ->copyableWithMessage(), + + TextEntry::make(PlaylistModel::ATTRIBUTE_FIRST) + ->label(__('filament.fields.playlist.first.name')) + ->placeholder('-') + ->urlToRelated(Track::class, PlaylistModel::RELATION_FIRST), + + TextEntry::make(PlaylistModel::ATTRIBUTE_LAST) + ->label(__('filament.fields.playlist.last.name')) + ->placeholder('-') + ->urlToRelated(Track::class, PlaylistModel::RELATION_LAST), + + TextEntry::make(PlaylistModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + ImagePlaylistRelationManager::class, + TrackPlaylistRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + AssignHashidsAction::make('assign-hashids') + ->label(__('filament.actions.models.assign_hashids.name')) + ->setConnection('playlists') + ->requiresConfirmation() + ->authorize('update', PlaylistModel::class), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListPlaylists::route('/'), + 'create' => CreatePlaylist::route('/create'), + 'view' => ViewPlaylist::route('/{record:playlist_id}'), + 'edit' => EditPlaylist::route('/{record:playlist_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/List/Playlist/Pages/CreatePlaylist.php b/app/Filament/Resources/List/Playlist/Pages/CreatePlaylist.php new file mode 100644 index 000000000..78d5ef912 --- /dev/null +++ b/app/Filament/Resources/List/Playlist/Pages/CreatePlaylist.php @@ -0,0 +1,16 @@ +label(__('filament.actions.models.assign_hashids.name')) + ->setConnection('playlists') + ->requiresConfirmation() + ->authorize('update', PlaylistModel::class) + ], + ); + } +} diff --git a/app/Filament/Resources/List/Playlist/Pages/ListPlaylists.php b/app/Filament/Resources/List/Playlist/Pages/ListPlaylists.php new file mode 100644 index 000000000..084c15e5c --- /dev/null +++ b/app/Filament/Resources/List/Playlist/Pages/ListPlaylists.php @@ -0,0 +1,50 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(PlaylistModel::ATTRIBUTE_ID, PlaylistModel::search($search)->keys()); + } + + return $query; + } +} diff --git a/app/Filament/Resources/List/Playlist/Pages/ViewPlaylist.php b/app/Filament/Resources/List/Playlist/Pages/ViewPlaylist.php new file mode 100644 index 000000000..bda56e88b --- /dev/null +++ b/app/Filament/Resources/List/Playlist/Pages/ViewPlaylist.php @@ -0,0 +1,31 @@ +heading(ImageResource::getPluralLabel()) + ->modelLabel(ImageResource::getLabel()) + ->recordTitleAttribute(Image::ATTRIBUTE_PATH) + ->inverseRelationship(Image::RELATION_PLAYLISTS) + ->columns(ImageResource::table($table)->getColumns()) + ->defaultSort(Image::TABLE.'.'.Image::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/List/Playlist/RelationManagers/TrackPlaylistRelationManager.php b/app/Filament/Resources/List/Playlist/RelationManagers/TrackPlaylistRelationManager.php new file mode 100644 index 000000000..8a785bfd7 --- /dev/null +++ b/app/Filament/Resources/List/Playlist/RelationManagers/TrackPlaylistRelationManager.php @@ -0,0 +1,122 @@ +heading(TrackResource::getPluralLabel()) + ->modelLabel(TrackResource::getLabel()) + ->recordTitleAttribute(PlaylistTrack::ATTRIBUTE_HASHID) + ->inverseRelationship(PlaylistTrack::RELATION_PLAYLIST) + ->columns(TrackResource::table($table)->getColumns()) + ->defaultSort(PlaylistTrack::TABLE.'.'.PlaylistTrack::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/List/Playlist/Track.php b/app/Filament/Resources/List/Playlist/Track.php new file mode 100644 index 000000000..bcde9e11c --- /dev/null +++ b/app/Filament/Resources/List/Playlist/Track.php @@ -0,0 +1,319 @@ +schema([ + Select::make(TrackModel::ATTRIBUTE_PLAYLIST) + ->label(__('filament.resources.singularLabel.playlist')) + ->relationship(TrackModel::RELATION_PLAYLIST, PlaylistModel::ATTRIBUTE_NAME) + ->searchable() + ->createOptionForm(PlaylistResource::form($form)->getComponents()), + + Select::make(TrackModel::ATTRIBUTE_VIDEO) + ->label(__('filament.resources.singularLabel.video')) + ->relationship(TrackModel::RELATION_VIDEO, VideoModel::ATTRIBUTE_FILENAME) + ->searchable(), + + TextInput::make(TrackModel::ATTRIBUTE_HASHID) + ->label(__('filament.fields.playlist_track.hashid.name')) + ->helperText(__('filament.fields.playlist_track.hashid.help')) + ->readOnly(), + + Select::make(TrackModel::ATTRIBUTE_PREVIOUS) + ->label(__('filament.fields.playlist_track.previous.name')) + ->helperText(__('filament.fields.playlist_track.previous.help')) + ->relationship(TrackModel::RELATION_PREVIOUS, TrackModel::ATTRIBUTE_HASHID) + ->searchable(), + + Select::make(TrackModel::ATTRIBUTE_NEXT) + ->label(__('filament.fields.playlist_track.next.name')) + ->helperText(__('filament.fields.playlist_track.next.help')) + ->relationship(TrackModel::RELATION_NEXT, TrackModel::ATTRIBUTE_HASHID) + ->searchable(), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(TrackModel::RELATION_PLAYLIST.'.'.PlaylistModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.playlist')) + ->toggleable() + ->urlToRelated(PlaylistResource::class, TrackModel::RELATION_PLAYLIST), + + TextColumn::make(TrackModel::RELATION_VIDEO.'.'.VideoModel::ATTRIBUTE_FILENAME) + ->label(__('filament.resources.singularLabel.video')) + ->toggleable() + ->urlToRelated(VideoResource::class, TrackModel::RELATION_VIDEO), + + TextColumn::make(TrackModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable() + ->toggleable(), + + TextColumn::make(TrackModel::ATTRIBUTE_HASHID) + ->label(__('filament.fields.playlist_track.hashid.name')) + ->toggleable() + ->placeholder('-'), + ]) + ->defaultSort(TrackModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(TrackModel::RELATION_PLAYLIST.'.'.PlaylistModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.playlist')) + ->urlToRelated(PlaylistResource::class, TrackModel::RELATION_PLAYLIST), + + TextEntry::make(TrackModel::ATTRIBUTE_HASHID) + ->label(__('filament.fields.playlist_track.hashid.name')) + ->placeholder('-'), + + TextEntry::make(TrackModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(TrackModel::RELATION_VIDEO.'.'.VideoModel::ATTRIBUTE_FILENAME) + ->label(__('filament.resources.singularLabel.video')) + ->urlToRelated(VideoResource::class, TrackModel::RELATION_VIDEO), + + TextEntry::make(TrackModel::RELATION_PREVIOUS.'.'.TrackModel::RELATION_VIDEO.'.'.VideoModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.playlist_track.previous.name')) + ->urlToRelated(Track::class, TrackModel::RELATION_PREVIOUS), + + TextEntry::make(TrackModel::RELATION_NEXT.'.'.TrackModel::RELATION_VIDEO.'.'.VideoModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.playlist_track.next.name')) + ->urlToRelated(Track::class, TrackModel::RELATION_NEXT), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + AssignHashidsAction::make('assign-hashids') + ->label(__('filament.actions.models.assign_hashids.name')) + ->setConnection('playlists') + ->requiresConfirmation() + ->authorize('update', TrackModel::class), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + // protected static bool $shouldSkipAuthorization = true; + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListTracks::route('/'), + 'create' => CreateTrack::route('/create'), + 'view' => ViewTrack::route('/{record:track_id}'), + 'edit' => EditTrack::route('/{record:track_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/List/Playlist/Track/Pages/CreateTrack.php b/app/Filament/Resources/List/Playlist/Track/Pages/CreateTrack.php new file mode 100644 index 000000000..ff6612e83 --- /dev/null +++ b/app/Filament/Resources/List/Playlist/Track/Pages/CreateTrack.php @@ -0,0 +1,16 @@ +label(__('filament.actions.models.assign_hashids.name')) + ->setConnection('playlists') + ->requiresConfirmation() + ->authorize('update', PlaylistTrack::class) + ], + ); + } +} diff --git a/app/Filament/Resources/List/Playlist/Track/Pages/ListTracks.php b/app/Filament/Resources/List/Playlist/Track/Pages/ListTracks.php new file mode 100644 index 000000000..e8c483b82 --- /dev/null +++ b/app/Filament/Resources/List/Playlist/Track/Pages/ListTracks.php @@ -0,0 +1,31 @@ +schema([ + TextInput::make(AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.anime.name.name')) + ->helperText(__('filament.fields.anime.name.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']) + ->live(true) + ->afterStateUpdated(fn (Set $set, ?string $state) => $set(AnimeModel::ATTRIBUTE_SLUG, Str::slug($state, '_'))), + + TextInput::make(AnimeModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.anime.slug.name')) + ->helperText(__('filament.fields.anime.slug.help')) + ->required() + ->rules(['required', 'max:192', 'alpha_dash', Rule::unique(AnimeModel::class, AnimeModel::ATTRIBUTE_SLUG)->__toString()]), + + TextInput::make(AnimeModel::ATTRIBUTE_YEAR) + ->label(__('filament.fields.anime.year.name')) + ->helperText(__('filament.fields.anime.year.help')) + ->numeric() + ->required() + ->rules(['required', 'digits:4', 'integer']) + ->minValue(1960) + ->maxValue(intval(date('Y')) + 1), + + Select::make(AnimeModel::ATTRIBUTE_SEASON) + ->label(__('filament.fields.anime.season.name')) + ->helperText(__('filament.fields.anime.season.help')) + ->options(AnimeSeason::asSelectArrayStyled()) + ->searchable() + ->allowHtml() + ->required() + ->rules(['required', new Enum(AnimeSeason::class)]), + + Select::make(AnimeModel::ATTRIBUTE_MEDIA_FORMAT) + ->label(__('filament.fields.anime.media_format.name')) + ->helperText(__('filament.fields.anime.media_format.help')) + ->options(AnimeMediaFormat::asSelectArray()) + ->required() + ->rules(['required', new Enum(AnimeMediaFormat::class)]), + + MarkdownEditor::make(AnimeModel::ATTRIBUTE_SYNOPSIS) + ->label(__('filament.fields.anime.synopsis.name')) + ->helperText(__('filament.fields.anime.synopsis.help')) + ->columnSpan(2) + ->maxLength(65535) + ->rules('max:65535'), + + TextInput::make(AnimeResource::ATTRIBUTE_AS) + ->label(__('filament.fields.anime.resources.as.name')) + ->helperText(__('filament.fields.anime.resources.as.help')) + ->visibleOn(AnimeResourceRelationManager::class) + ->placeholder('-'), + ]) + ->columns(2); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(AnimeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.anime.name.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(AnimeModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.anime.slug.name')) + ->sortable() + ->toggleable(), + + TextColumn::make(AnimeModel::ATTRIBUTE_YEAR) + ->label(__('filament.fields.anime.year.name')) + ->sortable() + ->toggleable(), + + TextColumn::make(AnimeModel::ATTRIBUTE_SEASON) + ->label(__('filament.fields.anime.season.name')) + ->sortable() + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localizeStyled()) + ->html(), + + TextColumn::make(AnimeModel::ATTRIBUTE_MEDIA_FORMAT) + ->label(__('filament.fields.anime.media_format.name')) + ->sortable() + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(AnimeModel::ATTRIBUTE_SYNOPSIS) + ->label(__('filament.fields.anime.synopsis.name')) + ->hidden(), + + TextColumn::make(AnimeResource::ATTRIBUTE_AS) + ->label(__('filament.fields.anime.resources.as.name')) + ->visibleOn(AnimeResourceRelationManager::class), + ]) + ->searchable() + ->defaultSort(AnimeModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(AnimeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.anime.name.name')) + ->copyableWithMessage(), + + TextEntry::make(AnimeModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.anime.slug.name')), + + TextEntry::make(AnimeModel::ATTRIBUTE_YEAR) + ->label(__('filament.fields.anime.year.name')), + + TextEntry::make(AnimeModel::ATTRIBUTE_SEASON) + ->label(__('filament.fields.anime.season.name')) + ->formatStateUsing(fn ($state) => $state->localizeStyled()) + ->html(), + + TextEntry::make(AnimeModel::ATTRIBUTE_MEDIA_FORMAT) + ->label(__('filament.fields.anime.media_format.name')) + ->formatStateUsing(fn ($state) => $state->localize()), + + TextEntry::make(AnimeModel::ATTRIBUTE_SYNOPSIS) + ->label(__('filament.fields.anime.synopsis.name')) + ->markdown() + ->placeholder('-') + ->columnSpanFull(), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + SynonymAnimeRelationManager::class, + ThemeAnimeRelationManager::class, + SeriesAnimeRelationManager::class, + ResourceAnimeRelationManager::class, + ImageAnimeRelationManager::class, + StudioAnimeRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + NumberFilter::make(AnimeModel::ATTRIBUTE_YEAR) + ->labels(__('filament.filters.anime.year_from'), __('filament.filters.anime.year_to')) + ->attribute(AnimeModel::ATTRIBUTE_YEAR), + + SelectFilter::make(AnimeModel::ATTRIBUTE_SEASON) + ->label(__('filament.fields.anime.season.name')) + ->options(AnimeSeason::asSelectArray()), + + SelectFilter::make(AnimeModel::ATTRIBUTE_MEDIA_FORMAT) + ->label(__('filament.fields.anime.media_format.name')) + ->options(AnimeMediaFormat::asSelectArray()), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + $resourceSites = [ + ResourceSite::ANIDB, + ResourceSite::ANILIST, + ResourceSite::ANIME_PLANET, + ResourceSite::ANN, + ResourceSite::KITSU, + ResourceSite::MAL, + ResourceSite::OFFICIAL_SITE, + ResourceSite::TWITTER, + ResourceSite::YOUTUBE, + ResourceSite::WIKI, + ]; + + $streamingResourceSites = [ + ResourceSite::CRUNCHYROLL, + ResourceSite::HIDIVE, + ResourceSite::NETFLIX, + ResourceSite::DISNEY_PLUS, + ResourceSite::HULU, + ResourceSite::AMAZON_PRIME_VIDEO, + ]; + + $facets = [ + ImageFacet::COVER_SMALL, + ImageFacet::COVER_LARGE, + ]; + + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + DiscordThreadAction::make('discord-thread') + ->label(__('filament.actions.anime.discord.thread.name')) + ->icon('heroicon-o-chat-bubble-left-right') + ->requiresConfirmation() + ->authorize('create', Video::class), + + BackfillAnimeAction::make('backfill-anime') + ->label(__('filament.actions.anime.backfill.name')) + ->icon('heroicon-o-bars-4') + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', AnimeModel::class), + + AttachAnimeImageAction::make('attach-anime-image') + ->label(__('filament.actions.models.wiki.attach_image.name')) + ->icon('heroicon-o-photo') + ->facets($facets) + ->requiresConfirmation() + ->authorize('create', Image::class), + + AttachAnimeResourceAction::make('attach-anime-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + + AttachAnimeResourceAction::make('attach-anime-streaming-resource') + ->label(__('filament.actions.models.wiki.attach_streaming_resource.name')) + ->icon('heroicon-o-tv') + ->sites($streamingResourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListAnimes::route('/'), + 'create' => CreateAnime::route('/create'), + 'view' => ViewAnime::route('/{record:anime_id}'), + 'edit' => EditAnime::route('/{record:anime_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Pages/CreateAnime.php b/app/Filament/Resources/Wiki/Anime/Pages/CreateAnime.php new file mode 100644 index 000000000..31ebfca4a --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Pages/CreateAnime.php @@ -0,0 +1,16 @@ +label(__('filament.actions.anime.discord.thread.name')) + ->icon('heroicon-o-chat-bubble-left-right') + ->requiresConfirmation() + ->authorize('create', Video::class), + + BackfillAnimeHeaderAction::make('backfill-anime') + ->label(__('filament.actions.anime.backfill.name')) + ->icon('heroicon-o-bars-4') + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', AnimeModel::class), + + AttachAnimeImageHeaderAction::make('attach-anime-image') + ->label(__('filament.actions.models.wiki.attach_image.name')) + ->icon('heroicon-o-photo') + ->facets($facets) + ->requiresConfirmation() + ->authorize('create', Image::class), + + AttachAnimeResourceHeaderAction::make('attach-anime-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + + AttachAnimeResourceHeaderAction::make('attach-anime-streaming-resource') + ->label(__('filament.actions.models.wiki.attach_streaming_resource.name')) + ->icon('heroicon-o-tv') + ->sites($streamingResourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]), + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Pages/ListAnimes.php b/app/Filament/Resources/Wiki/Anime/Pages/ListAnimes.php new file mode 100644 index 000000000..d21906398 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Pages/ListAnimes.php @@ -0,0 +1,91 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(AnimeModel::ATTRIBUTE_ID, AnimeModel::search($search)->keys()); + } + + return $query; + } + + /** + * Get the tabs available. + * + * @return array + */ + public function getTabs(): array + { + return ['all' => Tab::make()] + $this->toArray([ + AnimeCoverLargeTab::class, + AnimeCoverSmallTab::class, + AnimeAnidbResourceTab::class, + AnimeAnilistResourceTab::class, + AnimeAnnResourceTab::class, + AnimeKitsuResourceTab::class, + AnimeMalResourceTab::class, + AnimeOfficialSiteResourceTab::class, + AnimePlanetResourceTab::class, + AnimeTwitterResourceTab::class, + AnimeYoutubeResourceTab::class, + AnimeStreamingResourceTab::class, + AnimeStudioTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Pages/ViewAnime.php b/app/Filament/Resources/Wiki/Anime/Pages/ViewAnime.php new file mode 100644 index 000000000..bae6fbe28 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Pages/ViewAnime.php @@ -0,0 +1,31 @@ +heading(ImageResource::getPluralLabel()) + ->modelLabel(ImageResource::getLabel()) + ->recordTitleAttribute(Image::ATTRIBUTE_PATH) + ->inverseRelationship(Image::RELATION_ANIME) + ->columns(ImageResource::table($table)->getColumns()) + ->defaultSort(Image::TABLE.'.'.Image::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/RelationManagers/ResourceAnimeRelationManager.php b/app/Filament/Resources/Wiki/Anime/RelationManagers/ResourceAnimeRelationManager.php new file mode 100644 index 000000000..70f6f948a --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/RelationManagers/ResourceAnimeRelationManager.php @@ -0,0 +1,122 @@ +heading(ExternalResourceResource::getPluralLabel()) + ->modelLabel(ExternalResourceResource::getLabel()) + ->recordTitleAttribute(ExternalResource::ATTRIBUTE_LINK) + ->inverseRelationship(ExternalResource::RELATION_ANIME) + ->columns(ExternalResourceResource::table($table)->getColumns()) + ->defaultSort(ExternalResource::TABLE.'.'.ExternalResource::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/RelationManagers/SeriesAnimeRelationManager.php b/app/Filament/Resources/Wiki/Anime/RelationManagers/SeriesAnimeRelationManager.php new file mode 100644 index 000000000..37c39cbb0 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/RelationManagers/SeriesAnimeRelationManager.php @@ -0,0 +1,122 @@ +heading(SeriesResource::getPluralLabel()) + ->modelLabel(SeriesResource::getLabel()) + ->recordTitleAttribute(Series::ATTRIBUTE_NAME) + ->inverseRelationship(Series::RELATION_ANIME) + ->columns(SeriesResource::table($table)->getColumns()) + ->defaultSort(Series::TABLE.'.'.Series::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/RelationManagers/StudioAnimeRelationManager.php b/app/Filament/Resources/Wiki/Anime/RelationManagers/StudioAnimeRelationManager.php new file mode 100644 index 000000000..6339ad8f3 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/RelationManagers/StudioAnimeRelationManager.php @@ -0,0 +1,122 @@ +heading(StudioResource::getPluralLabel()) + ->modelLabel(StudioResource::getLabel()) + ->recordTitleAttribute(Studio::ATTRIBUTE_NAME) + ->inverseRelationship(Studio::RELATION_ANIME) + ->columns(StudioResource::table($table)->getColumns()) + ->defaultSort(Studio::TABLE.'.'.Studio::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/RelationManagers/SynonymAnimeRelationManager.php b/app/Filament/Resources/Wiki/Anime/RelationManagers/SynonymAnimeRelationManager.php new file mode 100644 index 000000000..8908f6be9 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/RelationManagers/SynonymAnimeRelationManager.php @@ -0,0 +1,122 @@ +heading(Synonym::getPluralLabel()) + ->modelLabel(Synonym::getLabel()) + ->recordTitleAttribute(SynonymModel::ATTRIBUTE_TEXT) + ->inverseRelationship(SynonymModel::RELATION_ANIME) + ->columns(Synonym::table($table)->getColumns()) + ->defaultSort(SynonymModel::TABLE.'.'.SynonymModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/RelationManagers/ThemeAnimeRelationManager.php b/app/Filament/Resources/Wiki/Anime/RelationManagers/ThemeAnimeRelationManager.php new file mode 100644 index 000000000..8b6fb7710 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/RelationManagers/ThemeAnimeRelationManager.php @@ -0,0 +1,122 @@ +heading(Theme::getPluralLabel()) + ->modelLabel(Theme::getLabel()) + ->recordTitleAttribute(ThemeModel::ATTRIBUTE_SLUG) + ->inverseRelationship(ThemeModel::RELATION_ANIME) + ->columns(Theme::table($table)->getColumns()) + ->defaultSort(ThemeModel::TABLE.'.'.ThemeModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Synonym.php b/app/Filament/Resources/Wiki/Anime/Synonym.php new file mode 100644 index 000000000..7d290ce58 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Synonym.php @@ -0,0 +1,299 @@ +schema([ + Select::make(SynonymModel::ATTRIBUTE_ANIME) + ->label(__('filament.resources.singularLabel.anime')) + ->relationship(SynonymModel::RELATION_ANIME, AnimeModel::ATTRIBUTE_NAME) + ->searchable() + ->hiddenOn(BaseRelationManager::class), + + Select::make(SynonymModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_synonym.type.name')) + ->helperText(__('filament.fields.anime_synonym.type.help')) + ->options(AnimeSynonymType::asSelectArray()) + ->required() + ->rules(['required', new Enum(AnimeSynonymType::class)]), + + TextInput::make(SynonymModel::ATTRIBUTE_TEXT) + ->label(__('filament.fields.anime_synonym.text.name')) + ->helperText(__('filament.fields.anime_synonym.text.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(SynonymModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(SynonymModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.anime')) + ->toggleable() + ->urlToRelated(AnimeResource::class, SynonymModel::RELATION_ANIME), + + TextColumn::make(SynonymModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_synonym.type.name')) + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(SynonymModel::ATTRIBUTE_TEXT) + ->label(__('filament.fields.anime_synonym.text.name')) + ->sortable() + ->toggleable(), + ]) + ->searchable() + ->defaultSort(SynonymModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(SynonymModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(SynonymModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.anime')) + ->urlToRelated(AnimeResource::class, SynonymModel::RELATION_ANIME), + + TextEntry::make(SynonymModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_synonym.type.name')) + ->formatStateUsing(fn ($state) => $state->localize()), + + TextEntry::make(SynonymModel::ATTRIBUTE_TEXT) + ->label(__('filament.fields.anime_synonym.text.name')), + ]) + ->columns(2), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + SelectFilter::make(SynonymModel::ATTRIBUTE_TEXT) + ->label(__('filament.fields.anime_synonym.type.name')) + ->options(AnimeSynonymType::asSelectArray()), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListSynonyms::route('/'), + 'create' => CreateSynonym::route('/create'), + 'view' => ViewSynonym::route('/{record:synonym_id}'), + 'edit' => EditSynonym::route('/{record:synonym_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Synonym/Pages/CreateSynonym.php b/app/Filament/Resources/Wiki/Anime/Synonym/Pages/CreateSynonym.php new file mode 100644 index 000000000..ff7e96c15 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Synonym/Pages/CreateSynonym.php @@ -0,0 +1,16 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(AnimeSynonym::ATTRIBUTE_ID, AnimeSynonym::search($search)->keys()); + } + + return $query; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Synonym/Pages/ViewSynonym.php b/app/Filament/Resources/Wiki/Anime/Synonym/Pages/ViewSynonym.php new file mode 100644 index 000000000..42a73b57d --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Synonym/Pages/ViewSynonym.php @@ -0,0 +1,31 @@ +anime->getName().' '.$record->slug : null; + } + + /** + * Determine if the resource can globally search. + * + * @return bool + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function canGloballySearch(): bool + { + return true; + } + + /** + * Get the slug (URI key) for the resource. + * + * @return string + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getSlug(): string + { + return static::getDefaultSlug().'anime-themes'; + } + + /** + * Get the route key for the resource. + * + * @return string + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRecordRouteKeyName(): string + { + return ThemeModel::ATTRIBUTE_ID; + } + + /** + * The form to the actions. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function form(Form $form): Form + { + return $form + ->schema([ + Select::make(ThemeModel::ATTRIBUTE_ANIME) + ->label(__('filament.resources.singularLabel.anime')) + ->relationship(ThemeModel::RELATION_ANIME, AnimeModel::ATTRIBUTE_NAME) + ->searchable() + ->hiddenOn(BaseRelationManager::class), + + Select::make(ThemeModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_theme.type.name')) + ->helperText(__('filament.fields.anime_theme.type.help')) + ->options(ThemeType::asSelectArray()) + ->required() + ->live(true) + ->afterStateUpdated(fn (Set $set, Get $get) => Theme::setThemeSlug($set, $get)) + ->rules(['required', new Enum(ThemeType::class)]), + + TextInput::make(ThemeModel::ATTRIBUTE_SEQUENCE) + ->label(__('filament.fields.anime_theme.sequence.name')) + ->helperText(__('filament.fields.anime_theme.sequence.help')) + ->numeric() + ->live(true) + ->afterStateUpdated(fn (Set $set, Get $get) => Theme::setThemeSlug($set, $get)) + ->rules(['nullable', 'integer']), + + TextInput::make(ThemeModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.anime_theme.slug.name')) + ->helperText(__('filament.fields.anime_theme.slug.help')) + ->required() + ->readOnly() + ->disabled() + ->maxLength(192) + ->rules(['required', 'max:192', 'alpha_dash']), + + Select::make(ThemeModel::ATTRIBUTE_GROUP) + ->label(__('filament.resources.singularLabel.group')) + ->relationship(ThemeModel::RELATION_GROUP, Group::ATTRIBUTE_NAME) + ->searchable() + ->live(true) + ->afterStateUpdated(fn (Set $set, Get $get) => Theme::setThemeSlug($set, $get)) + ->createOptionForm(GroupResource::form($form)->getComponents()), + + Select::make(ThemeModel::ATTRIBUTE_SONG) + ->label(__('filament.resources.singularLabel.song')) + ->relationship(ThemeModel::RELATION_SONG, Song::ATTRIBUTE_TITLE) + ->useScout(Song::class) + ->createOptionForm(SongResource::form($form)->getComponents()), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(ThemeModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.anime')) + ->toggleable() + ->urlToRelated(AnimeResource::class, ThemeModel::RELATION_ANIME), + + TextColumn::make(ThemeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(ThemeModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_theme.type.name')) + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(ThemeModel::ATTRIBUTE_SEQUENCE) + ->label(__('filament.fields.anime_theme.sequence.name')) + ->sortable() + ->toggleable() + ->placeholder('-'), + + TextColumn::make(ThemeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.anime_theme.slug.name')) + ->sortable() + ->toggleable() + ->formatStateUsing(fn ($state) => ThemeModel::find(intval($state))->getName()), + + TextColumn::make(ThemeModel::RELATION_GROUP.'.'.Group::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.group')) + ->toggleable() + ->placeholder('-') + ->urlToRelated(GroupResource::class, ThemeModel::RELATION_GROUP), + + TextColumn::make(ThemeModel::RELATION_SONG.'.'.Song::ATTRIBUTE_TITLE) + ->label(__('filament.resources.singularLabel.song')) + ->toggleable() + ->placeholder('-') + ->urlToRelated(SongResource::class, ThemeModel::RELATION_SONG), + ]) + ->searchable() + ->defaultSort(ThemeModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(ThemeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(ThemeModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.anime')) + ->urlToRelated(AnimeResource::class, ThemeModel::RELATION_ANIME), + + TextEntry::make(ThemeModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_theme.type.name')) + ->formatStateUsing(fn ($state) => $state->localize()), + + TextEntry::make(ThemeModel::ATTRIBUTE_SEQUENCE) + ->label(__('filament.fields.anime_theme.sequence.name')) + ->placeholder('-'), + + TextEntry::make(ThemeModel::ATTRIBUTE_ID) + ->label(__('filament.fields.anime_theme.slug.name')) + ->formatStateUsing(fn ($state) => ThemeModel::find(intval($state))->getName()), + + TextEntry::make(ThemeModel::RELATION_GROUP.'.'.Group::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.group')) + ->placeholder('-') + ->urlToRelated(GroupResource::class, ThemeModel::RELATION_GROUP), + + TextEntry::make(ThemeModel::RELATION_SONG.'.'.Song::ATTRIBUTE_TITLE) + ->label(__('filament.resources.singularLabel.song')) + ->placeholder('-') + ->urlToRelated(SongResource::class, ThemeModel::RELATION_SONG), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Set the theme slug. + * + * @param Set $set + * @param Get $get + * @return void + */ + protected static function setThemeSlug(Set $set, Get $get): void + { + $slug = Str::of(''); + $type = $get(ThemeModel::ATTRIBUTE_TYPE); + + if (!empty($type) || $type !== null) { + $type = ThemeType::tryFrom(intval($type)); + $slug = $slug->append($type->name); + } + + if ($slug->isNotEmpty()) { + $sequence = $get(ThemeModel::ATTRIBUTE_SEQUENCE); + $slug = $slug->append(strval(empty($sequence) ? 1 : $sequence)); + } + + if ($slug->isNotEmpty()) { + $group = $get(ThemeModel::ATTRIBUTE_GROUP); + $slug = $slug->append(strval(empty($group) ? '' : '-'.Group::find(intval($group))->slug)); + } + + $set(ThemeModel::ATTRIBUTE_SLUG, $slug->__toString()); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + EntryThemeRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + SelectFilter::make(ThemeModel::ATTRIBUTE_TYPE) + ->label(__('filament.fields.anime_theme.type.name')) + ->options(ThemeType::asSelectArray()), + + NumberFilter::make(ThemeModel::ATTRIBUTE_SEQUENCE) + ->labels(__('filament.filters.anime_theme.sequence_from'), __('filament.filters.anime_theme.sequence_to')) + ->attribute(ThemeModel::ATTRIBUTE_SEQUENCE), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListThemes::route('/'), + 'create' => CreateTheme::route('/create'), + 'view' => ViewTheme::route('/{record:theme_id}'), + 'edit' => EditTheme::route('/{record:theme_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Theme/Entry.php b/app/Filament/Resources/Wiki/Anime/Theme/Entry.php new file mode 100644 index 000000000..0b3b39b08 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Theme/Entry.php @@ -0,0 +1,425 @@ +getName() : null; + } + + /** + * Determine if the resource can globally search. + * + * @return bool + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function canGloballySearch(): bool + { + return true; + } + + /** + * Get the URI key for the resource. + * + * @return string + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getSlug(): string + { + return static::getDefaultSlug().'anime-theme-entries'; + } + + /** + * Get the route key for the resource. + * + * @return string + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRecordRouteKeyName(): string + { + return EntryModel::ATTRIBUTE_ID; + } + + /** + * The form to the actions. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function form(Form $form): Form + { + return $form + ->schema([ + Select::make(EntryModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_ID) + ->label(__('filament.resources.singularLabel.anime')) + ->relationship(EntryModel::RELATION_ANIME_SHALLOW, AnimeModel::ATTRIBUTE_NAME) + ->searchable() + ->disabledOn(BaseRelationManager::class) + ->formatStateUsing(function ($livewire, $state) { + if ($livewire instanceof BaseRelationManager) { + /** @var EntryModel */ + $entry = $livewire->getOwnerRecord(); + return $entry->anime->getName(); + } + return $state; + }) + ->saveRelationshipsUsing(fn (EntryModel $record, $state) => $record->animetheme->anime()->associate(intval($state))->save()), + + Select::make(EntryModel::ATTRIBUTE_THEME) + ->label(__('filament.resources.singularLabel.anime_theme')) + ->relationship(EntryModel::RELATION_THEME, ThemeModel::ATTRIBUTE_ID) + ->searchable() + ->disabledOn(BaseRelationManager::class) + ->formatStateUsing(function ($livewire, $state, $record) { + if ($record->animetheme !== null) return $record->animetheme->getName(); + if ($livewire instanceof BaseRelationManager) { + /** @var EntryModel */ + $entry = $livewire->getOwnerRecord(); + /** @var ThemeModel|null */ + $theme = $entry->animetheme; + return $theme->getName(); + } + return $state; + }), + + TextInput::make(EntryModel::ATTRIBUTE_VERSION) + ->label(__('filament.fields.anime_theme_entry.version.name')) + ->helperText(__('filament.fields.anime_theme_entry.version.help')) + ->numeric() + ->rules(['nullable', 'integer']), + + TextInput::make(EntryModel::ATTRIBUTE_EPISODES) + ->label(__('filament.fields.anime_theme_entry.episodes.name')) + ->helperText(__('filament.fields.anime_theme_entry.episodes.help')) + ->maxLength(192) + ->rules(['nullable', 'max:192']), + + Checkbox::make(EntryModel::ATTRIBUTE_NSFW) + ->label(__('filament.fields.anime_theme_entry.nsfw.name')) + ->helperText(__('filament.fields.anime_theme_entry.nsfw.help')) + ->rules(['nullable', 'boolean']), + + Checkbox::make(EntryModel::ATTRIBUTE_SPOILER) + ->label(__('filament.fields.anime_theme_entry.spoiler.name')) + ->helperText(__('filament.fields.anime_theme_entry.spoiler.help')) + ->rules(['nullable', 'boolean']), + + TextInput::make(EntryModel::ATTRIBUTE_NOTES) + ->label(__('filament.fields.anime_theme_entry.notes.name')) + ->helperText(__('filament.fields.anime_theme_entry.notes.help')) + ->maxLength(192) + ->rules(['nullable', 'max:192']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(EntryModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.anime')) + ->toggleable() + ->urlToRelated(AnimeResource::class, EntryModel::RELATION_ANIME), + + TextColumn::make(EntryModel::ATTRIBUTE_THEME) + ->label(__('filament.resources.singularLabel.anime_theme')) + ->toggleable() + ->urlToRelated(ThemeResource::class, EntryModel::RELATION_THEME, true), + + TextColumn::make(EntryModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(EntryModel::ATTRIBUTE_VERSION) + ->label(__('filament.fields.anime_theme_entry.version.name')) + ->toggleable() + ->placeholder('-'), + + TextColumn::make(EntryModel::ATTRIBUTE_EPISODES) + ->label(__('filament.fields.anime_theme_entry.episodes.name')) + ->toggleable() + ->placeholder('-'), + + IconColumn::make(EntryModel::ATTRIBUTE_NSFW) + ->label(__('filament.fields.anime_theme_entry.nsfw.name')) + ->toggleable() + ->boolean(), + + IconColumn::make(EntryModel::ATTRIBUTE_SPOILER) + ->label(__('filament.fields.anime_theme_entry.spoiler.name')) + ->toggleable() + ->boolean(), + + TextColumn::make(EntryModel::ATTRIBUTE_NOTES) + ->label(__('filament.fields.anime_theme_entry.notes.name')) + ->toggleable() + ->placeholder('-'), + ]) + ->searchable() + ->defaultSort(EntryModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(EntryModel::RELATION_ANIME.'.'.AnimeModel::ATTRIBUTE_NAME) + ->label(__('filament.resources.singularLabel.anime')) + ->urlToRelated(AnimeResource::class, EntryModel::RELATION_ANIME), + + TextEntry::make(EntryModel::ATTRIBUTE_THEME) + ->label(__('filament.resources.singularLabel.anime_theme')) + ->urlToRelated(ThemeResource::class, EntryModel::RELATION_THEME, true), + + TextEntry::make(EntryModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(EntryModel::ATTRIBUTE_VERSION) + ->label(__('filament.fields.anime_theme_entry.version.name')) + ->placeholder('-'), + + TextEntry::make(EntryModel::ATTRIBUTE_EPISODES) + ->label(__('filament.fields.anime_theme_entry.episodes.name')) + ->placeholder('-'), + + IconEntry::make(EntryModel::ATTRIBUTE_NSFW) + ->label(__('filament.fields.anime_theme_entry.nsfw.name')) + ->boolean(), + + IconEntry::make(EntryModel::ATTRIBUTE_SPOILER) + ->label(__('filament.fields.anime_theme_entry.spoiler.name')) + ->boolean(), + + TextEntry::make(EntryModel::ATTRIBUTE_NOTES) + ->label(__('filament.fields.anime_theme_entry.notes.name')) + ->placeholder('-'), + ]) + ->columns(2), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + VideoEntryRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + NumberFilter::make(EntryModel::ATTRIBUTE_VERSION) + ->labels(__('filament.filters.anime_theme_entry.version_from'), __('filament.filters.anime_theme_entry.version_to')) + ->attribute(EntryModel::ATTRIBUTE_VERSION), + + TextFilter::make(EntryModel::ATTRIBUTE_EPISODES) + ->label(__('filament.fields.anime_theme_entry.episodes.name')) + ->attribute(EntryModel::ATTRIBUTE_EPISODES), + + Filter::make(EntryModel::ATTRIBUTE_NSFW) + ->label(__('filament.fields.anime_theme_entry.nsfw.name')) + ->checkbox(), + + Filter::make(EntryModel::ATTRIBUTE_SPOILER) + ->label(__('filament.fields.anime_theme_entry.spoiler.name')) + ->checkbox(), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListEntries::route('/'), + 'create' => CreateEntry::route('/create'), + 'view' => ViewEntry::route('/{record:entry_id}'), + 'edit' => EditEntry::route('/{record:entry_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/CreateEntry.php b/app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/CreateEntry.php new file mode 100644 index 000000000..f392315d1 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/CreateEntry.php @@ -0,0 +1,16 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(AnimeThemeEntry::ATTRIBUTE_ID, AnimeThemeEntry::search($search)->keys()); + } + + return $query; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/ViewEntry.php b/app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/ViewEntry.php new file mode 100644 index 000000000..6be5f3c9a --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Theme/Entry/Pages/ViewEntry.php @@ -0,0 +1,31 @@ +heading(VideoResource::getPluralLabel()) + ->modelLabel(VideoResource::getLabel()) + ->recordTitleAttribute(Video::ATTRIBUTE_FILENAME) + ->inverseRelationship(Video::RELATION_ANIMETHEMEENTRIES) + ->columns(VideoResource::table($table)->getColumns()) + ->defaultSort(Video::TABLE.'.'.Video::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + VideoResource::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Theme/Pages/CreateTheme.php b/app/Filament/Resources/Wiki/Anime/Theme/Pages/CreateTheme.php new file mode 100644 index 000000000..cf6ef9c87 --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Theme/Pages/CreateTheme.php @@ -0,0 +1,16 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(AnimeTheme::ATTRIBUTE_ID, AnimeTheme::search($search)->keys()); + } + + return $query; + } +} diff --git a/app/Filament/Resources/Wiki/Anime/Theme/Pages/ViewTheme.php b/app/Filament/Resources/Wiki/Anime/Theme/Pages/ViewTheme.php new file mode 100644 index 000000000..803e538ef --- /dev/null +++ b/app/Filament/Resources/Wiki/Anime/Theme/Pages/ViewTheme.php @@ -0,0 +1,31 @@ +heading(EntryResource::getPluralLabel()) + ->modelLabel(EntryResource::getLabel()) + ->recordTitleAttribute(AnimeThemeEntry::ATTRIBUTE_VERSION) + ->inverseRelationship(AnimeThemeEntry::RELATION_THEME) + ->columns(EntryResource::table($table)->getColumns()) + ->defaultSort(AnimeThemeEntry::TABLE.'.'.AnimeThemeEntry::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Artist.php b/app/Filament/Resources/Wiki/Artist.php new file mode 100644 index 000000000..3f0f40950 --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist.php @@ -0,0 +1,372 @@ +schema([ + TextInput::make(ArtistModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.artist.name.name')) + ->helperText(__('filament.fields.artist.name.help')) + ->required() + ->rules(['required', 'max:192']) + ->maxLength(192) + ->live(true) + ->afterStateUpdated(fn (Set $set, ?string $state) => $set(ArtistModel::ATTRIBUTE_SLUG, Str::slug($state, '_'))), + + TextInput::make(ArtistModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.artist.slug.name')) + ->helperText(__('filament.fields.artist.slug.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192', 'alpha_dash', Rule::unique(ArtistModel::class, ArtistModel::ATTRIBUTE_SLUG)->__toString()]), + + TextInput::make(ArtistResource::ATTRIBUTE_AS) + ->label(__('filament.fields.artist.resources.as.name')) + ->helperText(__('filament.fields.artist.resources.as.help')) + ->visibleOn(ArtistResourceRelationManager::class), + ]) + ->columns(2); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(ArtistModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(ArtistModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.artist.name.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(ArtistModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.artist.slug.name')) + ->sortable() + ->toggleable(), + + TextColumn::make(ArtistResource::ATTRIBUTE_AS) + ->label(__('filament.fields.artist.resources.as.name')) + ->visibleOn(ArtistResourceRelationManager::class) + ->placeholder('-'), + ]) + ->searchable() + ->defaultSort(ArtistModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(ArtistModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(ArtistModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.artist.name.name')) + ->copyableWithMessage(), + + TextEntry::make(ArtistModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.artist.slug.name')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + SongArtistRelationManager::class, + ResourceArtistRelationManager::class, + MemberArtistRelationManager::class, + GroupArtistRelationManager::class, + ImageArtistRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + $facets = [ + ImageFacet::COVER_SMALL, + ImageFacet::COVER_LARGE, + ]; + + $resourceSites = [ + ResourceSite::ANIDB, + ResourceSite::ANILIST, + ResourceSite::ANIME_PLANET, + ResourceSite::ANN, + ResourceSite::MAL, + ResourceSite::OFFICIAL_SITE, + ResourceSite::SPOTIFY, + ResourceSite::TWITTER, + ResourceSite::YOUTUBE, + ResourceSite::YOUTUBE_MUSIC, + ResourceSite::WIKI, + ]; + + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + AttachArtistImageAction::make('attach-artist-image') + ->label(__('filament.actions.models.wiki.attach_image.name')) + ->icon('heroicon-o-photo') + ->facets($facets) + ->requiresConfirmation() + ->authorize('create', Image::class), + + AttachArtistResourceAction::make('attach-artist-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]) + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListArtists::route('/'), + 'create' => CreateArtist::route('/create'), + 'view' => ViewArtist::route('/{record:artist_id}'), + 'edit' => EditArtist::route('/{record:artist_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Artist/Pages/CreateArtist.php b/app/Filament/Resources/Wiki/Artist/Pages/CreateArtist.php new file mode 100644 index 000000000..8f96e2e1c --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/Pages/CreateArtist.php @@ -0,0 +1,16 @@ +label(__('filament.actions.models.wiki.attach_image.name')) + ->icon('heroicon-o-photo') + ->facets($facets) + ->requiresConfirmation() + ->authorize('create', Image::class), + + AttachArtistResourceHeaderAction::make('attach-artist-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]) + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Artist/Pages/ListArtists.php b/app/Filament/Resources/Wiki/Artist/Pages/ListArtists.php new file mode 100644 index 000000000..e370289f1 --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/Pages/ListArtists.php @@ -0,0 +1,89 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(ArtistModel::ATTRIBUTE_ID, ArtistModel::search($search)->keys()); + } + + return $query; + } + + /** + * Get the tabs available. + * + * @return array + */ + public function getTabs(): array + { + return ['all' => Tab::make()] + $this->toArray([ + ArtistCoverLargeTab::class, + ArtistCoverSmallTab::class, + ArtistAnidbResourceTab::class, + ArtistAnilistResourceTab::class, + ArtistAnimePlanetResourceTab::class, + ArtistAnnResourceTab::class, + ArtistMalResourceTab::class, + ArtistOfficialSiteResourceTab::class, + ArtistSpotifyResourceTab::class, + ArtistTwitterResourceTab::class, + ArtistYoutubeResourceTab::class, + ArtistSongTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Artist/Pages/ViewArtist.php b/app/Filament/Resources/Wiki/Artist/Pages/ViewArtist.php new file mode 100644 index 000000000..931b6105e --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/Pages/ViewArtist.php @@ -0,0 +1,31 @@ +heading(ArtistResource::getPluralLabel()) + ->modelLabel(ArtistResource::getLabel()) + ->recordTitleAttribute(Artist::ATTRIBUTE_NAME) + ->inverseRelationship(Artist::RELATION_MEMBERS) + ->columns(ArtistResource::table($table)->getColumns()) + ->defaultSort(Artist::TABLE.'.'.Artist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Artist/RelationManagers/ImageArtistRelationManager.php b/app/Filament/Resources/Wiki/Artist/RelationManagers/ImageArtistRelationManager.php new file mode 100644 index 000000000..735fd8046 --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/RelationManagers/ImageArtistRelationManager.php @@ -0,0 +1,122 @@ +heading(ImageResource::getPluralLabel()) + ->modelLabel(ImageResource::getLabel()) + ->recordTitleAttribute(Image::ATTRIBUTE_PATH) + ->inverseRelationship(Image::RELATION_ARTISTS) + ->columns(ImageResource::table($table)->getColumns()) + ->defaultSort(Image::TABLE.'.'.Image::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Artist/RelationManagers/MemberArtistRelationManager.php b/app/Filament/Resources/Wiki/Artist/RelationManagers/MemberArtistRelationManager.php new file mode 100644 index 000000000..f98eb3f7c --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/RelationManagers/MemberArtistRelationManager.php @@ -0,0 +1,121 @@ +heading(ArtistResource::getPluralLabel()) + ->modelLabel(ArtistResource::getLabel()) + ->recordTitleAttribute(Artist::ATTRIBUTE_NAME) + ->inverseRelationship(Artist::RELATION_GROUPS) + ->columns(ArtistResource::table($table)->getColumns()) + ->defaultSort(Artist::TABLE.'.'.Artist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Artist/RelationManagers/ResourceArtistRelationManager.php b/app/Filament/Resources/Wiki/Artist/RelationManagers/ResourceArtistRelationManager.php new file mode 100644 index 000000000..6e8d2f1c1 --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/RelationManagers/ResourceArtistRelationManager.php @@ -0,0 +1,122 @@ +heading(ExternalResourceResource::getPluralLabel()) + ->modelLabel(ExternalResourceResource::getLabel()) + ->recordTitleAttribute(ExternalResource::ATTRIBUTE_LINK) + ->inverseRelationship(ExternalResource::RELATION_ARTISTS) + ->columns(ExternalResourceResource::table($table)->getColumns()) + ->defaultSort(ExternalResource::TABLE.'.'.ExternalResource::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Artist/RelationManagers/SongArtistRelationManager.php b/app/Filament/Resources/Wiki/Artist/RelationManagers/SongArtistRelationManager.php new file mode 100644 index 000000000..9423f0126 --- /dev/null +++ b/app/Filament/Resources/Wiki/Artist/RelationManagers/SongArtistRelationManager.php @@ -0,0 +1,122 @@ +heading(SongResource::getPluralLabel()) + ->modelLabel(SongResource::getLabel()) + ->recordTitleAttribute(Song::ATTRIBUTE_TITLE) + ->inverseRelationship(Song::RELATION_ARTISTS) + ->columns(SongResource::table($table)->getColumns()) + ->defaultSort(Song::TABLE.'.'.Song::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Audio.php b/app/Filament/Resources/Wiki/Audio.php new file mode 100644 index 000000000..cde564904 --- /dev/null +++ b/app/Filament/Resources/Wiki/Audio.php @@ -0,0 +1,344 @@ +schema([ + TextInput::make(AudioModel::ATTRIBUTE_BASENAME) + ->label(__('filament.fields.audio.basename.name')) + ->hiddenOn(['create', 'edit']), + + TextInput::make(AudioModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.audio.filename.name')) + ->hiddenOn(['create', 'edit']), + + TextInput::make(AudioModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.audio.path.name')) + ->hiddenOn(['create', 'edit']), + + TextInput::make(AudioModel::ATTRIBUTE_SIZE) + ->label(__('filament.fields.audio.size.name')) + ->numeric() + ->hiddenOn(['create', 'edit']), + + TextInput::make(AudioModel::ATTRIBUTE_MIMETYPE) + ->label(__('filament.fields.audio.mimetype.name')) + ->hiddenOn(['create', 'edit']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(AudioModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(AudioModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.audio.filename.name')) + ->sortable() + ->copyableWithMessage(), + ]) + ->defaultSort(AudioModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()) + ->headerActions(static::getHeaderActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(__('filament.fields.base.file_properties')) + ->schema([ + TextEntry::make(AudioModel::ATTRIBUTE_BASENAME) + ->label(__('filament.fields.audio.basename.name')), + + TextEntry::make(AudioModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.audio.filename.name')), + + TextEntry::make(AudioModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.audio.path.name')), + + TextEntry::make(AudioModel::ATTRIBUTE_SIZE) + ->label(__('filament.fields.audio.size.name')), + + TextEntry::make(AudioModel::ATTRIBUTE_MIMETYPE) + ->label(__('filament.fields.audio.mimetype.name')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + VideoAudioRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + NumberFilter::make(AudioModel::ATTRIBUTE_SIZE) + ->labels(__('filament.filters.audio.size_from'), __('filament.filters.audio.size_to')) + ->attribute(AudioModel::ATTRIBUTE_SIZE), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + MoveAudioAction::make('move-audio') + ->label(__('filament.actions.audio.move.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', AudioModel::class), + + DeleteAudioAction::make('delete-audio') + ->label(__('filament.actions.audio.delete.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('delete', AudioModel::class), + + AttachAudioToRelatedVideosAction::make('attach-audio-related-video') + ->label(__('filament.actions.audio.attach_related_videos.name')) + ->requiresConfirmation() + ->authorize('update', Video::class), + ]), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return [ + ActionGroup::make([ + UploadAudioTableAction::make('upload-audio') + ->label(__('filament.actions.audio.upload.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', AudioModel::class), + + ReconcileAudioTableAction::make('reconcile-audio') + ->label(__('filament.actions.repositories.name', ['label' => __('filament.resources.label.audios')])) + ->requiresConfirmation() + ->authorize('create', AudioModel::class), + ]), + ]; + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListAudios::route('/'), + 'create' => CreateAudio::route('/create'), + 'view' => ViewAudio::route('/{record:audio_id}'), + 'edit' => EditAudio::route('/{record:audio_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Audio/Pages/CreateAudio.php b/app/Filament/Resources/Wiki/Audio/Pages/CreateAudio.php new file mode 100644 index 000000000..c25ec397b --- /dev/null +++ b/app/Filament/Resources/Wiki/Audio/Pages/CreateAudio.php @@ -0,0 +1,16 @@ +label(__('filament.actions.audio.move.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', AudioModel::class), + + DeleteAudioHeaderAction::make('delete-audio') + ->label(__('filament.actions.audio.delete.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('delete', AudioModel::class), + + AttachAudioToRelatedVideosHeaderAction::make('attach-audio-related-video') + ->label(__('filament.actions.audio.attach_related_videos.name')) + ->requiresConfirmation() + ->authorize('update', Video::class), + ]), + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Audio/Pages/ListAudios.php b/app/Filament/Resources/Wiki/Audio/Pages/ListAudios.php new file mode 100644 index 000000000..0d8a55722 --- /dev/null +++ b/app/Filament/Resources/Wiki/Audio/Pages/ListAudios.php @@ -0,0 +1,48 @@ + Tab::make()] + $this->toArray([ + AudioVideoTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Audio/Pages/ViewAudio.php b/app/Filament/Resources/Wiki/Audio/Pages/ViewAudio.php new file mode 100644 index 000000000..3b1151bd6 --- /dev/null +++ b/app/Filament/Resources/Wiki/Audio/Pages/ViewAudio.php @@ -0,0 +1,31 @@ +heading(VideoResource::getPluralLabel()) + ->modelLabel(VideoResource::getLabel()) + ->recordTitleAttribute(Video::ATTRIBUTE_FILENAME) + ->inverseRelationship(Video::RELATION_AUDIO) + ->columns(VideoResource::table($table)->getColumns()) + ->defaultSort(Video::TABLE.'.'.Video::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/ExternalResource.php b/app/Filament/Resources/Wiki/ExternalResource.php new file mode 100644 index 000000000..7ebd7c9a9 --- /dev/null +++ b/app/Filament/Resources/Wiki/ExternalResource.php @@ -0,0 +1,331 @@ +schema([ + Select::make(ExternalResourceModel::ATTRIBUTE_SITE) + ->label(__('filament.fields.external_resource.site.name')) + ->helperText(__('filament.fields.external_resource.site.help')) + ->options(ResourceSite::asSelectArray()) + ->required() + ->rules(['required', new Enum(ResourceSite::class)]), + + TextInput::make(ExternalResourceModel::ATTRIBUTE_LINK) + ->label(__('filament.fields.external_resource.link.name')) + ->helperText(__('filament.fields.external_resource.link.help')) + ->required() + ->live(true) + ->afterStateUpdated(function (Set $set, ?string $state) { + if ($state !== null) { + $set(ExternalResourceModel::ATTRIBUTE_SITE, ResourceSite::valueOf($state) ?? ResourceSite::OFFICIAL_SITE); + $set(ExternalResourceModel::ATTRIBUTE_EXTERNAL_ID, ResourceSite::parseIdFromLink($state)); + } + }), + + TextInput::make(ExternalResourceModel::ATTRIBUTE_EXTERNAL_ID) + ->label(__('filament.fields.external_resource.external_id.name')) + ->helperText(__('filament.fields.external_resource.external_id.help')) + ->numeric() + ->rules(['nullable', 'integer']), + + TextInput::make(AnimeResource::ATTRIBUTE_AS) + ->label(__('filament.fields.anime.resources.as.name')) + ->helperText(__('filament.fields.anime.resources.as.help')) + ->visibleOn(BaseRelationManager::class), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(ExternalResourceModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(ExternalResourceModel::ATTRIBUTE_SITE) + ->label(__('filament.fields.external_resource.site.name')) + ->sortable() + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(ExternalResourceModel::ATTRIBUTE_LINK) + ->label(__('filament.fields.external_resource.link.name')) + ->sortable() + ->searchable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(ExternalResourceModel::ATTRIBUTE_EXTERNAL_ID) + ->label(__('filament.fields.external_resource.external_id.name')) + ->sortable() + ->toggleable() + ->placeholder('-'), + + TextColumn::make(AnimeResource::ATTRIBUTE_AS) + ->label(__('filament.fields.anime.resources.as.name')) + ->visibleOn(BaseRelationManager::class), + ]) + ->defaultSort(ExternalResourceModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(ExternalResourceModel::ATTRIBUTE_SITE) + ->label(__('filament.fields.external_resource.site.name')) + ->formatStateUsing(fn ($state) => $state->localize()), + + TextEntry::make(ExternalResourceModel::ATTRIBUTE_LINK) + ->label(__('filament.fields.external_resource.link.name')) + ->copyableWithMessage(), + + TextEntry::make(ExternalResourceModel::ATTRIBUTE_EXTERNAL_ID) + ->label(__('filament.fields.external_resource.external_id.name')) + ->placeholder('-'), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + AnimeResourceRelationManager::class, + ArtistResourceRelationManager::class, + SongResourceRelationManager::class, + StudioResourceRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + SelectFilter::make(ExternalResourceModel::ATTRIBUTE_SITE) + ->label(__('filament.fields.external_resource.site.name')) + ->options(ResourceSite::asSelectArray()), + + NumberFilter::make(ExternalResourceModel::ATTRIBUTE_EXTERNAL_ID) + ->labels(__('filament.filters.external_resource.external_id_from'), __('filament.filters.external_resource.external_id_to')) + ->attribute(ExternalResourceModel::ATTRIBUTE_EXTERNAL_ID), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListExternalResources::route('/'), + 'create' => CreateExternalResource::route('/create'), + 'view' => ViewExternalResource::route('/{record:resource_id}'), + 'edit' => EditExternalResource::route('/{record:resource_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/ExternalResource/Pages/CreateExternalResource.php b/app/Filament/Resources/Wiki/ExternalResource/Pages/CreateExternalResource.php new file mode 100644 index 000000000..12540e7e2 --- /dev/null +++ b/app/Filament/Resources/Wiki/ExternalResource/Pages/CreateExternalResource.php @@ -0,0 +1,16 @@ + Tab::make()] + $this->toArray([ + ExternalResourceUnlinkedTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/ExternalResource/Pages/ViewExternalResource.php b/app/Filament/Resources/Wiki/ExternalResource/Pages/ViewExternalResource.php new file mode 100644 index 000000000..b0ac9631c --- /dev/null +++ b/app/Filament/Resources/Wiki/ExternalResource/Pages/ViewExternalResource.php @@ -0,0 +1,31 @@ +heading(AnimeResource::getPluralLabel()) + ->modelLabel(AnimeResource::getLabel()) + ->recordTitleAttribute(Anime::ATTRIBUTE_NAME) + ->inverseRelationship(Anime::RELATION_RESOURCES) + ->columns(AnimeResource::table($table)->getColumns()) + ->defaultSort(Anime::TABLE.'.'.Anime::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/ArtistResourceRelationManager.php b/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/ArtistResourceRelationManager.php new file mode 100644 index 000000000..6c7881204 --- /dev/null +++ b/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/ArtistResourceRelationManager.php @@ -0,0 +1,122 @@ +heading(ArtistResource::getPluralLabel()) + ->modelLabel(ArtistResource::getLabel()) + ->recordTitleAttribute(Artist::ATTRIBUTE_NAME) + ->inverseRelationship(Artist::RELATION_RESOURCES) + ->columns(ArtistResource::table($table)->getColumns()) + ->defaultSort(Artist::TABLE.'.'.Artist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/SongResourceRelationManager.php b/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/SongResourceRelationManager.php new file mode 100644 index 000000000..f770a2782 --- /dev/null +++ b/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/SongResourceRelationManager.php @@ -0,0 +1,122 @@ +heading(SongResource::getPluralLabel()) + ->modelLabel(SongResource::getLabel()) + ->recordTitleAttribute(Song::ATTRIBUTE_TITLE) + ->inverseRelationship(Song::RELATION_RESOURCES) + ->columns(SongResource::table($table)->getColumns()) + ->defaultSort(Song::TABLE.'.'.Song::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/StudioResourceRelationManager.php b/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/StudioResourceRelationManager.php new file mode 100644 index 000000000..4d917fb2c --- /dev/null +++ b/app/Filament/Resources/Wiki/ExternalResource/RelationManagers/StudioResourceRelationManager.php @@ -0,0 +1,122 @@ +heading(StudioResource::getPluralLabel()) + ->modelLabel(StudioResource::getLabel()) + ->recordTitleAttribute(Studio::ATTRIBUTE_NAME) + ->inverseRelationship(Studio::RELATION_RESOURCES) + ->columns(StudioResource::table($table)->getColumns()) + ->defaultSort(Studio::TABLE.'.'.Studio::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Group.php b/app/Filament/Resources/Wiki/Group.php new file mode 100644 index 000000000..ec9fbeb0f --- /dev/null +++ b/app/Filament/Resources/Wiki/Group.php @@ -0,0 +1,293 @@ +schema([ + TextInput::make(GroupModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.group.name.name')) + ->helperText(__('filament.fields.group.name.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']), + + TextInput::make(GroupModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.group.slug.name')) + ->helperText(__('filament.fields.group.slug.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192', 'alpha_dash', Rule::unique(GroupModel::class, GroupModel::ATTRIBUTE_SLUG)->__toString()]), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(GroupModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(GroupModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.group.name.name')) + ->sortable() + ->searchable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(GroupModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.group.slug.name')) + ->sortable() + ->toggleable(), + ]) + ->defaultSort(GroupModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(GroupModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(GroupModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.group.name.name')) + ->copyableWithMessage(), + + TextEntry::make(GroupModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.group.slug.name')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + ThemeGroupRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListGroups::route('/'), + 'create' => CreateGroup::route('/create'), + 'view' => ViewGroup::route('/{record:group_id}'), + 'edit' => EditGroup::route('/{record:group_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Group/Pages/CreateGroup.php b/app/Filament/Resources/Wiki/Group/Pages/CreateGroup.php new file mode 100644 index 000000000..5b2a58238 --- /dev/null +++ b/app/Filament/Resources/Wiki/Group/Pages/CreateGroup.php @@ -0,0 +1,16 @@ +heading(ThemeResource::getPluralLabel()) + ->modelLabel(ThemeResource::getLabel()) + ->recordTitleAttribute(ThemeModel::ATTRIBUTE_SLUG) + ->inverseRelationship(ThemeModel::RELATION_GROUP) + ->columns(ThemeResource::table($table)->getColumns()) + ->defaultSort(ThemeModel::TABLE.'.'.ThemeModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Image.php b/app/Filament/Resources/Wiki/Image.php new file mode 100644 index 000000000..919238bce --- /dev/null +++ b/app/Filament/Resources/Wiki/Image.php @@ -0,0 +1,311 @@ +schema([ + Select::make(ImageModel::ATTRIBUTE_FACET) + ->label(__('filament.fields.image.facet.name')) + ->helperText(__('filament.fields.image.facet.help')) + ->options(ImageFacet::asSelectArray()) + ->required() + ->rules(['required', new Enum(ImageFacet::class)]), + ]) + ->columns(2); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(ImageModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(ImageModel::ATTRIBUTE_FACET) + ->label(__('filament.fields.image.facet.name')) + ->sortable() + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + ImageColumn::make(ImageModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.image.image.name')) + ->disk(Config::get('image.disk')) + ->toggleable(), + ]) + ->defaultSort(ImageModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()) + ->headerActions(static::getHeaderActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + ImageEntry::make(ImageModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.image.image.name')) + ->disk(Config::get('image.disk')), + + TextEntry::make(ImageModel::ATTRIBUTE_FACET) + ->label(__('filament.fields.image.facet.name')) + ->formatStateUsing(fn ($state) => $state->localize()), + + TextEntry::make(ImageModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + AnimeImageRelationManager::class, + ArtistImageRelationManager::class, + PlaylistImageRelationManager::class, + StudioImageRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + SelectFilter::make(ImageModel::ATTRIBUTE_FACET) + ->label(__('filament.fields.image.facet.name')) + ->options(ImageFacet::asSelectArray()), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return [ + UploadImageTableAction::make('upload-image') + ->label(__('filament.actions.models.wiki.upload_image.name')) + ->requiresConfirmation() + ->facets([ImageFacet::GRILL, ImageFacet::DOCUMENT]) + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ImageModel::class), + ]; + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListImages::route('/'), + 'create' => CreateImage::route('/create'), + 'view' => ViewImage::route('/{record:image_id}'), + 'edit' => EditImage::route('/{record:image_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Image/Pages/CreateImage.php b/app/Filament/Resources/Wiki/Image/Pages/CreateImage.php new file mode 100644 index 000000000..76c8433c2 --- /dev/null +++ b/app/Filament/Resources/Wiki/Image/Pages/CreateImage.php @@ -0,0 +1,16 @@ + Tab::make()] + $this->toArray([ + ImageUnlinkedTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Image/Pages/ViewImage.php b/app/Filament/Resources/Wiki/Image/Pages/ViewImage.php new file mode 100644 index 000000000..3c28f2355 --- /dev/null +++ b/app/Filament/Resources/Wiki/Image/Pages/ViewImage.php @@ -0,0 +1,31 @@ +heading(AnimeResource::getPluralLabel()) + ->modelLabel(AnimeResource::getLabel()) + ->recordTitleAttribute(Anime::ATTRIBUTE_NAME) + ->inverseRelationship(Anime::RELATION_IMAGES) + ->columns(AnimeResource::table($table)->getColumns()) + ->defaultSort(Anime::TABLE.'.'.Anime::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Image/RelationManagers/ArtistImageRelationManager.php b/app/Filament/Resources/Wiki/Image/RelationManagers/ArtistImageRelationManager.php new file mode 100644 index 000000000..2123ad6a5 --- /dev/null +++ b/app/Filament/Resources/Wiki/Image/RelationManagers/ArtistImageRelationManager.php @@ -0,0 +1,122 @@ +heading(ArtistResource::getPluralLabel()) + ->modelLabel(ArtistResource::getLabel()) + ->recordTitleAttribute(Artist::ATTRIBUTE_NAME) + ->inverseRelationship(Artist::RELATION_IMAGES) + ->columns(ArtistResource::table($table)->getColumns()) + ->defaultSort(Artist::TABLE.'.'.Artist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Image/RelationManagers/PlaylistImageRelationManager.php b/app/Filament/Resources/Wiki/Image/RelationManagers/PlaylistImageRelationManager.php new file mode 100644 index 000000000..009cc5bbb --- /dev/null +++ b/app/Filament/Resources/Wiki/Image/RelationManagers/PlaylistImageRelationManager.php @@ -0,0 +1,122 @@ +heading(PlaylistResource::getPluralLabel()) + ->modelLabel(PlaylistResource::getLabel()) + ->recordTitleAttribute(Playlist::ATTRIBUTE_NAME) + ->inverseRelationship(Playlist::RELATION_IMAGES) + ->columns(PlaylistResource::table($table)->getColumns()) + ->defaultSort(Playlist::TABLE.'.'.Playlist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Image/RelationManagers/StudioImageRelationManager.php b/app/Filament/Resources/Wiki/Image/RelationManagers/StudioImageRelationManager.php new file mode 100644 index 000000000..b99794b1b --- /dev/null +++ b/app/Filament/Resources/Wiki/Image/RelationManagers/StudioImageRelationManager.php @@ -0,0 +1,122 @@ +heading(StudioResource::getPluralLabel()) + ->modelLabel(StudioResource::getLabel()) + ->recordTitleAttribute(Studio::ATTRIBUTE_NAME) + ->inverseRelationship(Studio::RELATION_IMAGES) + ->columns(StudioResource::table($table)->getColumns()) + ->defaultSort(Studio::TABLE.'.'.Studio::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Series.php b/app/Filament/Resources/Wiki/Series.php new file mode 100644 index 000000000..290beb169 --- /dev/null +++ b/app/Filament/Resources/Wiki/Series.php @@ -0,0 +1,309 @@ +schema([ + TextInput::make(SeriesModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.series.name.name')) + ->helperText(__('filament.fields.series.name.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']) + ->live(true) + ->afterStateUpdated(fn (Set $set, ?string $state) => $set(SeriesModel::ATTRIBUTE_SLUG, Str::slug($state, '_'))), + + TextInput::make(SeriesModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.series.slug.name')) + ->helperText(__('filament.fields.series.slug.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192', 'alpha_dash', Rule::unique(SeriesModel::class, SeriesModel::ATTRIBUTE_SLUG)->__toString()]), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(SeriesModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(SeriesModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.series.name.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(SeriesModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.series.slug.name')) + ->sortable() + ->toggleable(), + ]) + ->searchable() + ->defaultSort(SeriesModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(SeriesModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(SeriesModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.series.name.name')) + ->copyableWithMessage(), + + TextEntry::make(SeriesModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.series.slug.name')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + AnimeSeriesRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListSeries::route('/'), + 'create' => CreateSeries::route('/create'), + 'view' => ViewSeries::route('/{record:series_id}'), + 'edit' => EditSeries::route('/{record:series_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Series/Pages/CreateSeries.php b/app/Filament/Resources/Wiki/Series/Pages/CreateSeries.php new file mode 100644 index 000000000..b28ba7673 --- /dev/null +++ b/app/Filament/Resources/Wiki/Series/Pages/CreateSeries.php @@ -0,0 +1,16 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(SeriesModel::ATTRIBUTE_ID, SeriesModel::search($search)->keys()); + } + + return $query; + } +} diff --git a/app/Filament/Resources/Wiki/Series/Pages/ViewSeries.php b/app/Filament/Resources/Wiki/Series/Pages/ViewSeries.php new file mode 100644 index 000000000..6edf1ef22 --- /dev/null +++ b/app/Filament/Resources/Wiki/Series/Pages/ViewSeries.php @@ -0,0 +1,31 @@ +heading(AnimeResource::getPluralLabel()) + ->modelLabel(AnimeResource::getLabel()) + ->recordTitleAttribute(Anime::ATTRIBUTE_NAME) + ->inverseRelationship(Anime::RELATION_SERIES) + ->columns(AnimeResource::table($table)->getColumns()) + ->defaultSort(Anime::TABLE.'.'.Anime::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Song.php b/app/Filament/Resources/Wiki/Song.php new file mode 100644 index 000000000..b72cba4fc --- /dev/null +++ b/app/Filament/Resources/Wiki/Song.php @@ -0,0 +1,328 @@ +schema([ + TextInput::make(SongModel::ATTRIBUTE_TITLE) + ->label(__('filament.fields.song.title.name')) + ->helperText(__('filament.fields.song.title.help')) + ->nullable() + ->maxLength(192) + ->rules(['nullable', 'max:192']), + + TextInput::make(SongResource::ATTRIBUTE_AS) + ->label(__('filament.fields.song.resources.as.name')) + ->helperText(__('filament.fields.song.resources.as.help')) + ->visibleOn(SongResourceRelationManager::class) + ->placeholder('-'), + ]); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(SongModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(SongModel::ATTRIBUTE_TITLE) + ->label(__('filament.fields.song.title.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(SongResource::ATTRIBUTE_AS) + ->label(__('filament.fields.song.resources.as.name')) + ->visibleOn(SongResourceRelationManager::class) + ->toggleable(), + ]) + ->searchable() + ->defaultSort(SongModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(SongModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + + TextEntry::make(SongModel::ATTRIBUTE_TITLE) + ->label(__('filament.fields.song.title.name')) + ->copyableWithMessage(), + ]) + ->columns(2), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + ArtistSongRelationManager::class, + ThemeSongRelationManager::class, + ResourceSongRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + $resourceSites = [ + ResourceSite::ANIDB, + ResourceSite::SPOTIFY, + ResourceSite::YOUTUBE_MUSIC, + ResourceSite::YOUTUBE, + ResourceSite::APPLE_MUSIC, + ResourceSite::AMAZON_MUSIC, + ]; + + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + AttachSongResourceAction::make('attach-song-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]) + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListSongs::route('/'), + 'create' => CreateSong::route('/create'), + 'view' => ViewSong::route('/{record:song_id}'), + 'edit' => EditSong::route('/{record:song_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Song/Pages/CreateSong.php b/app/Filament/Resources/Wiki/Song/Pages/CreateSong.php new file mode 100644 index 000000000..26d68a83a --- /dev/null +++ b/app/Filament/Resources/Wiki/Song/Pages/CreateSong.php @@ -0,0 +1,31 @@ +label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]) + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Song/Pages/ListSongs.php b/app/Filament/Resources/Wiki/Song/Pages/ListSongs.php new file mode 100644 index 000000000..ba50c0bc6 --- /dev/null +++ b/app/Filament/Resources/Wiki/Song/Pages/ListSongs.php @@ -0,0 +1,79 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(SongModel::ATTRIBUTE_ID, SongModel::search($search)->keys()); + } + + return $query; + } + + /** + * Get the tabs available. + * + * @return array + */ + public function getTabs(): array + { + return ['all' => Tab::make()] + $this->toArray([ + SongAmazonMusicResourceTab::class, + SongAnidbResourceTab::class, + SongAppleMusicResourceTab::class, + SongSpotifyResourceTab::class, + SongYoutubeMusicResourceTab::class, + SongYoutubeResourceTab::class, + SongArtistTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Song/Pages/ViewSong.php b/app/Filament/Resources/Wiki/Song/Pages/ViewSong.php new file mode 100644 index 000000000..3fe25e973 --- /dev/null +++ b/app/Filament/Resources/Wiki/Song/Pages/ViewSong.php @@ -0,0 +1,31 @@ +heading(ArtistResource::getPluralLabel()) + ->modelLabel(ArtistResource::getLabel()) + ->recordTitleAttribute(Artist::ATTRIBUTE_NAME) + ->inverseRelationship(Artist::RELATION_SONGS) + ->columns(ArtistResource::table($table)->getColumns()) + ->defaultSort(Artist::TABLE.'.'.Artist::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Song/RelationManagers/ResourceSongRelationManager.php b/app/Filament/Resources/Wiki/Song/RelationManagers/ResourceSongRelationManager.php new file mode 100644 index 000000000..35d57c1b1 --- /dev/null +++ b/app/Filament/Resources/Wiki/Song/RelationManagers/ResourceSongRelationManager.php @@ -0,0 +1,122 @@ +heading(ExternalResourceResource::getPluralLabel()) + ->modelLabel(ExternalResourceResource::getLabel()) + ->recordTitleAttribute(ExternalResource::ATTRIBUTE_LINK) + ->inverseRelationship(ExternalResource::RELATION_SONGS) + ->columns(ExternalResourceResource::table($table)->getColumns()) + ->defaultSort(ExternalResource::TABLE.'.'.ExternalResource::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Song/RelationManagers/ThemeSongRelationManager.php b/app/Filament/Resources/Wiki/Song/RelationManagers/ThemeSongRelationManager.php new file mode 100644 index 000000000..6513b33c3 --- /dev/null +++ b/app/Filament/Resources/Wiki/Song/RelationManagers/ThemeSongRelationManager.php @@ -0,0 +1,122 @@ +heading(ThemeResource::getPluralLabel()) + ->modelLabel(ThemeResource::getLabel()) + ->recordTitleAttribute(ThemeModel::ATTRIBUTE_SLUG) + ->inverseRelationship(ThemeModel::RELATION_SONG) + ->columns(ThemeResource::table($table)->getColumns()) + ->defaultSort(ThemeModel::TABLE.'.'.ThemeModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Studio.php b/app/Filament/Resources/Wiki/Studio.php new file mode 100644 index 000000000..796f55484 --- /dev/null +++ b/app/Filament/Resources/Wiki/Studio.php @@ -0,0 +1,343 @@ +schema([ + TextInput::make(StudioModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.studio.name.name')) + ->helperText(__('filament.fields.studio.name.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192']) + ->live(true) + ->afterStateUpdated(fn (Set $set, ?string $state) => $set(StudioModel::ATTRIBUTE_SLUG, Str::slug($state, '_'))), + + TextInput::make(StudioModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.studio.slug.name')) + ->helperText(__('filament.fields.studio.slug.help')) + ->required() + ->maxLength(192) + ->rules(['required', 'max:192', 'alpha_dash', Rule::unique(StudioModel::class, StudioModel::ATTRIBUTE_SLUG)->__toString()]), + + TextInput::make(StudioResource::ATTRIBUTE_AS) + ->label(__('filament.fields.studio.resources.as.name')) + ->helperText(__('filament.fields.studio.resources.as.help')) + ->visibleOn(StudioResourceRelationManager::class), + ]); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(StudioModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(StudioModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.studio.name.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + + TextColumn::make(StudioModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.studio.slug.name')) + ->sortable() + ->toggleable(), + + TextColumn::make(StudioResource::ATTRIBUTE_AS) + ->label(__('filament.fields.studio.resources.as.name')) + ->visibleOn(StudioResourceRelationManager::class) + ->placeholder('-'), + ]) + ->searchable() + ->defaultSort(StudioModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(static::getRecordTitle($infolist->getRecord())) + ->schema([ + TextEntry::make(StudioModel::ATTRIBUTE_NAME) + ->label(__('filament.fields.studio.name.name')) + ->copyableWithMessage(), + + TextEntry::make(StudioModel::ATTRIBUTE_SLUG) + ->label(__('filament.fields.studio.slug.name')), + + TextEntry::make(StudioModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()) + ->columns(3), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + AnimeStudioRelationManager::class, + ResourceStudioRelationManager::class, + ImageStudioRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + $facets = [ + ImageFacet::COVER_SMALL, + ImageFacet::COVER_LARGE, + ]; + + $resourceSites = [ + ResourceSite::ANIDB, + ResourceSite::ANILIST, + ResourceSite::ANIME_PLANET, + ResourceSite::ANN, + ResourceSite::MAL, + ]; + + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + BackfillStudioAction::make('backfill-studio') + ->label(__('filament.actions.studio.backfill.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('update', StudioModel::class), + + AttachStudioImageAction::make('attach-studio-image') + ->label(__('filament.actions.models.wiki.attach_image.name')) + ->icon('heroicon-o-photo') + ->facets($facets) + ->requiresConfirmation() + ->authorize('create', Image::class), + + AttachStudioResourceAction::make('attach-studio-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]) + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListStudios::route('/'), + 'create' => CreateStudio::route('/create'), + 'view' => ViewStudio::route('/{record:studio_id}'), + 'edit' => EditStudio::route('/{record:studio_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Studio/Pages/CreateStudio.php b/app/Filament/Resources/Wiki/Studio/Pages/CreateStudio.php new file mode 100644 index 000000000..ff08280f4 --- /dev/null +++ b/app/Filament/Resources/Wiki/Studio/Pages/CreateStudio.php @@ -0,0 +1,16 @@ +label(__('filament.actions.studio.backfill.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('update', StudioModel::class), + + AttachStudioImageHeaderAction::make('attach-studio-image') + ->label(__('filament.actions.models.wiki.attach_image.name')) + ->icon('heroicon-o-photo') + ->facets($facets) + ->requiresConfirmation() + ->authorize('create', Image::class), + + AttachStudioResourceHeaderAction::make('attach-studio-resource') + ->label(__('filament.actions.models.wiki.attach_resource.name')) + ->icon('heroicon-o-queue-list') + ->sites($resourceSites) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ExternalResource::class), + ]) + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Studio/Pages/ListStudios.php b/app/Filament/Resources/Wiki/Studio/Pages/ListStudios.php new file mode 100644 index 000000000..a3304a020 --- /dev/null +++ b/app/Filament/Resources/Wiki/Studio/Pages/ListStudios.php @@ -0,0 +1,81 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(StudioModel::ATTRIBUTE_ID, StudioModel::search($search)->keys()); + } + + return $query; + } + + /** + * Get the tabs available. + * + * @return array + */ + public function getTabs(): array + { + return ['all' => Tab::make()] + $this->toArray([ + StudioCoverLargeTab::class, + StudioCoverSmallTab::class, + StudioAnidbResourceTab::class, + StudioAnilistResourceTab::class, + StudioAnimePlanetResourceTab::class, + StudioAnnResourceTab::class, + StudioMalResourceTab::class, + StudioUnlinkedTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Studio/Pages/ViewStudio.php b/app/Filament/Resources/Wiki/Studio/Pages/ViewStudio.php new file mode 100644 index 000000000..cdc6bddb1 --- /dev/null +++ b/app/Filament/Resources/Wiki/Studio/Pages/ViewStudio.php @@ -0,0 +1,31 @@ +heading(AnimeResource::getPluralLabel()) + ->modelLabel(AnimeResource::getLabel()) + ->recordTitleAttribute(Anime::ATTRIBUTE_NAME) + ->inverseRelationship(Anime::RELATION_STUDIOS) + ->columns(AnimeResource::table($table)->getColumns()) + ->defaultSort(Anime::TABLE.'.'.Anime::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Studio/RelationManagers/ImageStudioRelationManager.php b/app/Filament/Resources/Wiki/Studio/RelationManagers/ImageStudioRelationManager.php new file mode 100644 index 000000000..04df6caec --- /dev/null +++ b/app/Filament/Resources/Wiki/Studio/RelationManagers/ImageStudioRelationManager.php @@ -0,0 +1,122 @@ +heading(ImageResource::getPluralLabel()) + ->modelLabel(ImageResource::getLabel()) + ->recordTitleAttribute(Image::ATTRIBUTE_PATH) + ->inverseRelationship(Image::RELATION_STUDIOS) + ->columns(ImageResource::table($table)->getColumns()) + ->defaultSort(Image::TABLE.'.'.Image::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Studio/RelationManagers/ResourceStudioRelationManager.php b/app/Filament/Resources/Wiki/Studio/RelationManagers/ResourceStudioRelationManager.php new file mode 100644 index 000000000..ba1c229d5 --- /dev/null +++ b/app/Filament/Resources/Wiki/Studio/RelationManagers/ResourceStudioRelationManager.php @@ -0,0 +1,122 @@ +heading(ExternalResourceResource::getPluralLabel()) + ->modelLabel(ExternalResourceResource::getLabel()) + ->recordTitleAttribute(ExternalResource::ATTRIBUTE_LINK) + ->inverseRelationship(ExternalResource::RELATION_STUDIOS) + ->columns(ExternalResourceResource::table($table)->getColumns()) + ->defaultSort(ExternalResource::TABLE.'.'.ExternalResource::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Video.php b/app/Filament/Resources/Wiki/Video.php new file mode 100644 index 000000000..378f99e69 --- /dev/null +++ b/app/Filament/Resources/Wiki/Video.php @@ -0,0 +1,456 @@ +schema([ + TextInput::make(VideoModel::ATTRIBUTE_RESOLUTION) + ->label(__('filament.fields.video.resolution.name')) + ->helperText(__('filament.fields.video.resolution.help')) + ->numeric() + ->minValue(360) + ->maxValue(1080) + ->nullable() + ->rules(['nullable', 'integer']), + + Checkbox::make(VideoModel::ATTRIBUTE_NC) + ->label(__('filament.fields.video.nc.name')) + ->helperText(__('filament.fields.video.nc.help')) + ->rules(['nullable', 'boolean']), + + Checkbox::make(VideoModel::ATTRIBUTE_SUBBED) + ->label(__('filament.fields.video.subbed.name')) + ->helperText(__('filament.fields.video.subbed.help')) + ->rules(['nullable', 'boolean']), + + Checkbox::make(VideoModel::ATTRIBUTE_LYRICS) + ->label(__('filament.fields.video.lyrics.name')) + ->helperText(__('filament.fields.video.lyrics.help')) + ->rules(['nullable', 'boolean']), + + Checkbox::make(VideoModel::ATTRIBUTE_UNCEN) + ->label(__('filament.fields.video.uncen.name')) + ->helperText(__('filament.fields.video.uncen.help')) + ->rules(['nullable', 'boolean']), + + Select::make(VideoModel::ATTRIBUTE_OVERLAP) + ->label(__('filament.fields.video.overlap.name')) + ->helperText(__('filament.fields.video.overlap.help')) + ->options(VideoOverlap::asSelectArray()) + ->rules(['nullable', new Enum(VideoOverlap::class)]), + + Select::make(VideoModel::ATTRIBUTE_SOURCE) + ->label(__('filament.fields.video.source.name')) + ->helperText(__('filament.fields.video.source.help')) + ->options(VideoSource::asSelectArray()) + ->required() + ->rules(['required', new Enum(VideoSource::class)]), + + Select::make(VideoModel::ATTRIBUTE_AUDIO) + ->label(__('filament.resources.singularLabel.audio')) + ->relationship(VideoModel::RELATION_AUDIO, AudioModel::ATTRIBUTE_FILENAME) + ->searchable(), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(VideoModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(VideoModel::ATTRIBUTE_RESOLUTION) + ->label(__('filament.fields.video.resolution.name')) + ->toggleable() + ->placeholder('-'), + + IconColumn::make(VideoModel::ATTRIBUTE_NC) + ->label(__('filament.fields.video.nc.name')) + ->toggleable() + ->boolean(), + + IconColumn::make(VideoModel::ATTRIBUTE_SUBBED) + ->label(__('filament.fields.video.subbed.name')) + ->toggleable() + ->boolean(), + + IconColumn::make(VideoModel::ATTRIBUTE_LYRICS) + ->label(__('filament.fields.video.lyrics.name')) + ->toggleable() + ->boolean(), + + IconColumn::make(VideoModel::ATTRIBUTE_UNCEN) + ->label(__('filament.fields.video.uncen.name')) + ->toggleable() + ->boolean(), + + TextColumn::make(VideoModel::ATTRIBUTE_OVERLAP) + ->label(__('filament.fields.video.overlap.name')) + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(VideoModel::ATTRIBUTE_SOURCE) + ->label(__('filament.fields.video.source.name')) + ->toggleable() + ->formatStateUsing(fn ($state) => $state->localize()), + + TextColumn::make(VideoModel::RELATION_AUDIO . '.' . AudioModel::ATTRIBUTE_FILENAME) + ->label(__('filament.resources.singularLabel.audio')) + ->visibleOn(['create', 'edit']), + + TextColumn::make(VideoModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.video.filename.name')) + ->sortable() + ->copyableWithMessage() + ->toggleable(), + ]) + ->searchable() + ->defaultSort(VideoModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()) + ->headerActions(static::getHeaderActions()); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(__('filament.fields.base.file_properties')) + ->schema([ + TextEntry::make(VideoModel::ATTRIBUTE_BASENAME) + ->label(__('filament.fields.video.basename.name')), + + TextEntry::make(VideoModel::ATTRIBUTE_FILENAME) + ->label(__('filament.fields.video.filename.name')), + + TextEntry::make(VideoModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.video.path.name')), + + TextEntry::make(VideoModel::ATTRIBUTE_SIZE) + ->label(__('filament.fields.video.size.name')), + + TextEntry::make(VideoModel::ATTRIBUTE_MIMETYPE) + ->label(__('filament.fields.video.mimetype.name')), + + TextEntry::make(VideoModel::RELATION_AUDIO.'.'.AudioModel::ATTRIBUTE_FILENAME) + ->label(__('filament.resources.singularLabel.audio')) + ->placeholder('-') + ->urlToRelated(AudioResource::class, VideoModel::RELATION_AUDIO), + ]) + ->columns(3), + + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()), + ]); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return [ + RelationGroup::make(static::getLabel(), [ + EntryVideoRelationManager::class, + ScriptVideoRelationManager::class, + TrackVideoRelationManager::class, + ]), + ]; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + [ + NumberFilter::make(VideoModel::ATTRIBUTE_RESOLUTION) + ->labels(__('filament.filters.video.resolution_from'), __('filament.filters.video.resolution_to')) + ->attribute(VideoModel::ATTRIBUTE_RESOLUTION), + + Filter::make(VideoModel::ATTRIBUTE_NC) + ->label(__('filament.fields.video.nc.name')) + ->checkbox(), + + Filter::make(VideoModel::ATTRIBUTE_SUBBED) + ->label(__('filament.fields.video.subbed.name')) + ->checkbox(), + + Filter::make(VideoModel::ATTRIBUTE_LYRICS) + ->label(__('filament.fields.video.lyrics.name')) + ->checkbox(), + + Filter::make(VideoModel::ATTRIBUTE_UNCEN) + ->label(__('filament.fields.video.uncen.name')) + ->checkbox(), + + SelectFilter::make(VideoModel::ATTRIBUTE_OVERLAP) + ->label(__('filament.fields.video.overlap.name')) + ->options(VideoOverlap::asSelectArray()), + + SelectFilter::make(VideoModel::ATTRIBUTE_SOURCE) + ->label(__('filament.fields.video.source.name')) + ->options(VideoSource::asSelectArray()), + + NumberFilter::make(VideoModel::ATTRIBUTE_SIZE) + ->labels(__('filament.filters.video.size_from'), __('filament.filters.video.size_to')) + ->attribute(VideoModel::ATTRIBUTE_SIZE), + ], + parent::getFilters(), + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + BackfillAudioAction::make('backfill-audio') + ->label(__('filament.actions.video.backfill.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::TwoExtraLarge) + ->authorize('update', VideoModel::class), + + MoveVideoAction::make('move-video') + ->label(__('filament.actions.video.move.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', VideoModel::class), + + DeleteVideoAction::make('delete-video') + ->label(__('filament.actions.video.delete.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('delete', VideoModel::class), + ]), + ], + ); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return [ + ActionGroup::make([ + UploadVideoTableAction::make('upload-video') + ->label(__('filament.actions.video.upload.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', VideoModel::class), + + ReconcileVideoTableAction::make('reconcile-video') + ->label(__('filament.actions.repositories.name', ['label' => __('filament.resources.label.videos')])) + ->requiresConfirmation() + ->authorize('create', VideoModel::class), + ]), + ]; + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListVideos::route('/'), + 'create' => CreateVideo::route('/create'), + 'view' => ViewVideo::route('/{record:video_id}'), + 'edit' => EditVideo::route("/{record:video_id}/edit"), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Video/Pages/CreateVideo.php b/app/Filament/Resources/Wiki/Video/Pages/CreateVideo.php new file mode 100644 index 000000000..19654470b --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/Pages/CreateVideo.php @@ -0,0 +1,16 @@ +label(__('filament.actions.video.backfill.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::TwoExtraLarge) + ->authorize('update', VideoModel::class), + + MoveVideoHeaderAction::make('move-video') + ->label(__('filament.actions.video.move.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', VideoModel::class), + + DeleteVideoHeaderAction::make('delete-video') + ->label(__('filament.actions.video.delete.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('delete', VideoModel::class), + ]), + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Video/Pages/ListVideos.php b/app/Filament/Resources/Wiki/Video/Pages/ListVideos.php new file mode 100644 index 000000000..ec847dc9a --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/Pages/ListVideos.php @@ -0,0 +1,75 @@ +applyColumnSearchesToTableQuery($query); + + if (filled($search = $this->getTableSearch())) { + $query->whereIn(VideoModel::ATTRIBUTE_ID, VideoModel::search($search)->keys()); + } + + return $query; + } + + /** + * Get the tabs available. + * + * @return array + */ + public function getTabs(): array + { + return ['all' => Tab::make()] + $this->toArray([ + VideoAudioTab::class, + VideoResolutionTab::class, + VideoScriptTab::class, + VideoSourceTab::class, + VideoUnlinkedTab::class, + ]); + } +} diff --git a/app/Filament/Resources/Wiki/Video/Pages/ViewVideo.php b/app/Filament/Resources/Wiki/Video/Pages/ViewVideo.php new file mode 100644 index 000000000..9052129cc --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/Pages/ViewVideo.php @@ -0,0 +1,31 @@ +heading(EntryResource::getPluralLabel()) + ->modelLabel(EntryResource::getLabel()) + ->recordTitleAttribute(AnimeThemeEntry::ATTRIBUTE_VERSION) + ->inverseRelationship(AnimeThemeEntry::RELATION_VIDEOS) + ->columns(EntryResource::table($table)->getColumns()) + ->defaultSort(AnimeThemeEntry::TABLE.'.'.AnimeThemeEntry::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Video/RelationManagers/ScriptVideoRelationManager.php b/app/Filament/Resources/Wiki/Video/RelationManagers/ScriptVideoRelationManager.php new file mode 100644 index 000000000..f089ddac7 --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/RelationManagers/ScriptVideoRelationManager.php @@ -0,0 +1,118 @@ +heading(ScriptResource::getLabel()) + ->modelLabel(ScriptResource::getLabel()) + ->recordTitleAttribute(VideoScript::ATTRIBUTE_PATH) + ->inverseRelationship(VideoScript::RELATION_VIDEO) + ->columns(ScriptResource::table($table)->getColumns()) + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return ScriptResource::getHeaderActions(); + } +} diff --git a/app/Filament/Resources/Wiki/Video/RelationManagers/TrackVideoRelationManager.php b/app/Filament/Resources/Wiki/Video/RelationManagers/TrackVideoRelationManager.php new file mode 100644 index 000000000..bb0c85b17 --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/RelationManagers/TrackVideoRelationManager.php @@ -0,0 +1,122 @@ +heading(TrackResource::getPluralLabel()) + ->modelLabel(TrackResource::getLabel()) + ->recordTitleAttribute(PlaylistTrack::ATTRIBUTE_HASHID) + ->inverseRelationship(PlaylistTrack::RELATION_VIDEO) + ->columns(TrackResource::table($table)->getColumns()) + ->defaultSort(PlaylistTrack::TABLE.'.'.PlaylistTrack::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->headerActions(static::getHeaderActions()) + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()); + } + + /** + * Get the filters available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [], + ); + } + + /** + * Get the actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [], + ); + } + + /** + * Get the bulk actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the relation. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return array_merge( + parent::getHeaderActions(), + [], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Video/Script.php b/app/Filament/Resources/Wiki/Video/Script.php new file mode 100644 index 000000000..31042881f --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/Script.php @@ -0,0 +1,287 @@ +schema([ + TextInput::make(ScriptModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.video_script.path')) + ->hiddenOn(['create', 'edit']), + ]) + ->columns(1); + } + + /** + * The index page of the resource. + * + * @param Table $table + * @return Table + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function table(Table $table): Table + { + return parent::table($table) + ->columns([ + TextColumn::make(ScriptModel::ATTRIBUTE_ID) + ->label(__('filament.fields.base.id')) + ->sortable(), + + TextColumn::make(ScriptModel::ATTRIBUTE_PATH) + ->label(__('filament.fields.video_script.path')) + ->sortable() + ->copyableWithMessage(), + ]) + ->defaultSort(ScriptModel::ATTRIBUTE_ID, 'desc') + ->filters(static::getFilters()) + ->filtersFormMaxHeight('400px') + ->actions(static::getActions()) + ->bulkActions(static::getBulkActions()) + ->headerActions(static::getHeaderActions()); + } + + /** + * Get the relationships available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getRelations(): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getFilters(): array + { + return array_merge( + parent::getFilters(), + [] + ); + } + + /** + * Get the actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getActions(): array + { + return array_merge( + parent::getActions(), + [ + ActionGroup::make([ + MoveScriptAction::make('move-script') + ->label(__('filament.actions.video_script.move.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ScriptModel::class), + + DeleteScriptAction::make('delete-script') + ->label(__('filament.actions.video_script.delete.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('delete', ScriptModel::class), + ]), + ], + ); + } + + /** + * Get the infolist available for the resource. + * + * @param Infolist $infolist + * @return Infolist + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make(__('filament.fields.base.timestamps')) + ->schema(parent::timestamps()), + ]); + } + + /** + * Get the bulk actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getBulkActions(): array + { + return array_merge( + parent::getBulkActions(), + [], + ); + } + + /** + * Get the header actions available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getHeaderActions(): array + { + return [ + ActionGroup::make([ + UploadScriptTableAction::make('upload-script') + ->label(__('filament.actions.video_script.upload.name')) + ->modalWidth(MaxWidth::FourExtraLarge) + ->requiresConfirmation() + ->authorize('create', ScriptModel::class), + + ReconcileScriptTableAction::make('reconcile-script') + ->label(__('filament.actions.repositories.name', ['label' => __('filament.resources.label.video_scripts')])) + ->requiresConfirmation() + ->authorize('create', ScriptModel::class), + ]), + ]; + } + + /** + * Get the pages available for the resource. + * + * @return array + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public static function getPages(): array + { + return [ + 'index' => ListScripts::route('/'), + 'create' => CreateScript::route('/create'), + 'view' => ViewScript::route('/{record:script_id}'), + 'edit' => EditScript::route('/{record:script_id}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Wiki/Video/Script/Pages/CreateScript.php b/app/Filament/Resources/Wiki/Video/Script/Pages/CreateScript.php new file mode 100644 index 000000000..f3ad78dfc --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/Script/Pages/CreateScript.php @@ -0,0 +1,16 @@ +label(__('filament.actions.video_script.move.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('create', ScriptModel::class), + + DeleteScriptHeaderAction::make('delete-script') + ->label(__('filament.actions.video_script.delete.name')) + ->requiresConfirmation() + ->modalWidth(MaxWidth::FourExtraLarge) + ->authorize('delete', ScriptModel::class), + ]), + ], + ); + } +} diff --git a/app/Filament/Resources/Wiki/Video/Script/Pages/ListScripts.php b/app/Filament/Resources/Wiki/Video/Script/Pages/ListScripts.php new file mode 100644 index 000000000..41e7ad64d --- /dev/null +++ b/app/Filament/Resources/Wiki/Video/Script/Pages/ListScripts.php @@ -0,0 +1,31 @@ +action(fn (array $data) => (new UploadImageAction())->handle($data)); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + */ + public function getForm(Form $form): Form + { + $options = []; + + foreach ($this->facets as $facet) { + $options[$facet->value] = $facet->localize(); + } + + return $form + ->schema([ + Select::make(Image::ATTRIBUTE_FACET) + ->label(__('filament.fields.image.facet.name')) + ->helperText(__('filament.fields.image.facet.help')) + ->options($options) + ->required() + ->rules(['required', new Enum(ImageFacet::class)]), + + FileUpload::make(Image::ATTRIBUTE_PATH) + ->label(__('filament.fields.image.image.name')) + ->required() + ->storeFiles(false), + ]) + ->columns(1); + + } + + /** + * Get the facets available for the action. + * + * @param ImageFacet[] $facets + * @return static + */ + public function facets(array $facets): static + { + $this->facets = $facets; + + return $this; + } +} \ No newline at end of file diff --git a/app/Filament/TableActions/Repositories/ReconcileTableAction.php b/app/Filament/TableActions/Repositories/ReconcileTableAction.php new file mode 100644 index 000000000..a58dabca5 --- /dev/null +++ b/app/Filament/TableActions/Repositories/ReconcileTableAction.php @@ -0,0 +1,48 @@ +action(fn (BaseModel $record, array $data) => $this->handle($record, $data)); + } + + /** + * Perform the action on the given models. + * + * @param BaseModel $record + * @param array $fields + * @return void + * + * @throws Exception + * + * @noinspection PhpUnusedParameterInspection + */ + public function handle(BaseModel $record, array $fields): void + { + $result = $this->reconcileRepositories($fields); + + $result->toLog(); + } +} diff --git a/app/Filament/TableActions/Repositories/Storage/Admin/Dump/ReconcileDumpTableAction.php b/app/Filament/TableActions/Repositories/Storage/Admin/Dump/ReconcileDumpTableAction.php new file mode 100644 index 000000000..5ce8bfe5a --- /dev/null +++ b/app/Filament/TableActions/Repositories/Storage/Admin/Dump/ReconcileDumpTableAction.php @@ -0,0 +1,42 @@ +handleFilter('path', $path); + $destinationRepository->handleFilter('path', $path); + } + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $fs = Storage::disk($this->disk()); + + return $form + ->schema([ + TextInput::make('path') + ->label(__('filament.actions.repositories.storage.fields.path.name')) + ->required() + ->rules(['required', 'string', 'doesnt_start_with:/', new StorageDirectoryExistsRule($fs)]) + ->helperText(__('filament.actions.repositories.storage.fields.path.help')), + ]); + } +} diff --git a/app/Filament/TableActions/Repositories/Storage/Wiki/Audio/ReconcileAudioTableAction.php b/app/Filament/TableActions/Repositories/Storage/Wiki/Audio/ReconcileAudioTableAction.php new file mode 100644 index 000000000..4bc03f1d8 --- /dev/null +++ b/app/Filament/TableActions/Repositories/Storage/Wiki/Audio/ReconcileAudioTableAction.php @@ -0,0 +1,28 @@ +action(fn (array $data) => $this->handle($data)); + } + + /** + * Perform the action on the given models. + * + * @param array $fields + * @return void + * + * @throws Exception + * + * @noinspection PhpUnusedParameterInspection + */ + public function handle(array $fields): void + { + $action = $this->storageAction($fields); + + $result = $action->handle(); + + $result->toLog(); + } + + /** + * Get the fields available on the action. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function getForm(Form $form): Form + { + $connection = DB::connection(); + + return match (get_class($connection)) { + MySqlConnection::class => $this->fieldsForMySql($form), + PostgresConnection::class => $this->fieldsForPostgreSql($form), + default => $form, + }; + } + + /** + * Get the fields available on the action for a MySql db connection. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function fieldsForMySql(Form $form): Form + { + return $form + ->schema([ + Checkbox::make('comments') + ->label(__('filament.actions.dump.dump.fields.mysql.comments.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.comments.help')), + + Checkbox::make('skip-comments') + ->label(__('filament.actions.dump.dump.fields.mysql.skip_comments.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.skip_comments.help')), + + Checkbox::make('extended-insert') + ->label(__('filament.actions.dump.dump.fields.mysql.extended_insert.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.extended_insert.help')), + + Checkbox::make('skip-extended-insert') + ->label(__('filament.actions.dump.dump.fields.mysql.skip_extended_insert.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.skip_extended_insert.help')), + + Checkbox::make('single-transaction') + ->label(__('filament.actions.dump.dump.fields.mysql.single_transaction.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.single_transaction.help')), + + Checkbox::make('lock-tables') + ->label(__('filament.actions.dump.dump.fields.mysql.lock_tables.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.lock_tables.help')), + + Checkbox::make('skip-lock-tables') + ->label(__('filament.actions.dump.dump.fields.mysql.skip_lock_tables.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.skip_lock_tables.help')), + + Checkbox::make('skip-column-statistics') + ->label(__('filament.actions.dump.dump.fields.mysql.skip_column_statistics.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.skip_column_statistics.help')), + + Checkbox::make('quick') + ->label(__('filament.actions.dump.dump.fields.mysql.quick.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.quick.help')), + + Checkbox::make('skip-quick') + ->label(__('filament.actions.dump.dump.fields.mysql.skip_quick.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.skip_quick.help')), + + TextInput::make('default-character-set') + ->label(__('filament.actions.dump.dump.fields.mysql.default_character_set.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.default_character_set.help')) + ->nullable() + ->rules(['nullable', 'string', 'max:192']), + + Select::make('set-gtid-purged') + ->label(__('filament.actions.dump.dump.fields.mysql.set_gtid_purged.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.set_gtid_purged.help')) + ->options([ + 'OFF' => __('filament.actions.dump.dump.fields.mysql.set_gtid_purged.options.off'), + 'ON' => __('filament.actions.dump.dump.fields.mysql.set_gtid_purged.options.on'), + 'AUTO' => __('filament.actions.dump.dump.fields.mysql.set_gtid_purged.options.auto'), + ]) + ->nullable() + ->rules(['nullable', Rule::in(['OFF', 'ON', 'AUTO'])->__toString()]), + + Checkbox::make('no-create-info') + ->label(__('filament.actions.dump.dump.fields.mysql.no_create_info.name')) + ->helperText(__('filament.actions.dump.dump.fields.mysql.no_create_info.help')), + ]); + } + + /** + * Get the fields available on the action for a PostgreSql db connection. + * + * @param Form $form + * @return Form + * + * @noinspection PhpMissingParentCallCommonInspection + */ + public function fieldsForPostgreSql(Form $form): Form + { + return $form + ->schema([ + Checkbox::make('inserts') + ->label(__('filament.actions.dump.dump.fields.postgresql.inserts.name')) + ->helperText(__('filament.actions.dump.dump.fields.postgresql.inserts.help')), + + Checkbox::make('data-only') + ->label(__('filament.actions.dump.dump.fields.postgresql.data_only.name')) + ->helperText(__('filament.actions.dump.dump.fields.postgresql.data_only.help')), + ]); + } + + /** + * Get the underlying action. + * + * @param array $fields + * @return DumpDatabase + */ + abstract protected function storageAction(array $fields): DumpDatabase; +} diff --git a/app/Filament/TableActions/Storage/Admin/DumpWikiTableAction.php b/app/Filament/TableActions/Storage/Admin/DumpWikiTableAction.php new file mode 100644 index 000000000..4e3ffc5fc --- /dev/null +++ b/app/Filament/TableActions/Storage/Admin/DumpWikiTableAction.php @@ -0,0 +1,25 @@ +schema([ + TextInput::make('hours') + ->label(__('filament.actions.storage.prune.fields.hours.name')) + ->helperText(__('filament.actions.storage.prune.fields.hours.help')) + ->numeric(), + ]); + } + + /** + * Get the underlying storage action. + * + * @param array $fields + * @return BasePruneAction + */ + abstract protected function storageAction(array $fields): BasePruneAction; +} diff --git a/app/Filament/TableActions/Storage/Base/UploadTableAction.php b/app/Filament/TableActions/Storage/Base/UploadTableAction.php new file mode 100644 index 000000000..f086cdbf4 --- /dev/null +++ b/app/Filament/TableActions/Storage/Base/UploadTableAction.php @@ -0,0 +1,64 @@ +disk()); + + return $form->schema([ + FileUpload::make('file') + ->label(__('filament.actions.storage.upload.fields.file.name')) + ->helperText(__('filament.actions.storage.upload.fields.file.help')) + ->required() + ->live(true) + ->rules($this->fileRules()) + ->preserveFilenames() + ->storeFiles(false), + + TextInput::make('path') + ->label(__('filament.actions.storage.upload.fields.path.name')) + ->helperText(__('filament.actions.storage.upload.fields.path.help')) + ->rules(['doesnt_start_with:/', 'doesnt_end_with:/', 'string', new StorageDirectoryExistsRule($fs)]), + ]); + } + + /** + * Get the underlying storage action. + * + * @param array $fields + * @return BaseUploadAction + */ + abstract protected function storageAction(array $fields): BaseUploadAction; + + /** + * Get the file validation rules. + * + * @return array + */ + abstract protected function fileRules(): array; +} diff --git a/app/Filament/TableActions/Storage/StorageTableAction.php b/app/Filament/TableActions/Storage/StorageTableAction.php new file mode 100644 index 000000000..9e2f7478a --- /dev/null +++ b/app/Filament/TableActions/Storage/StorageTableAction.php @@ -0,0 +1,53 @@ +action(fn (array $data) => $this->handle($data)); + } + + /** + * Get the underlying storage action. + * + * @param array $fields + * @return BaseStorageAction + */ + abstract protected function storageAction(array $fields): BaseStorageAction; + + /** + * Perform the action on the given models. + * + * @param array $fields + * @return void + */ + public function handle(array $fields): void + { + $action = $this->storageAction($fields); + + $storageResults = $action->handle(); + + $storageResults->toLog(); + + $action->then($storageResults); + + $actionResult = $storageResults->toActionResult(); + } +} diff --git a/app/Filament/TableActions/Storage/Wiki/Audio/UploadAudioTableAction.php b/app/Filament/TableActions/Storage/Wiki/Audio/UploadAudioTableAction.php new file mode 100644 index 000000000..34444c974 --- /dev/null +++ b/app/Filament/TableActions/Storage/Wiki/Audio/UploadAudioTableAction.php @@ -0,0 +1,87 @@ +max(200 * 1024), + new TotalStreamsFormatRule(1), + new EncoderNameFormatRule(), + new EncoderVersionFormatRule(), + new FormatNameFormatRule('ogg'), + new AudioBitrateRestrictionFormatRule(), + new ExtraneousMetadataFormatRule(), + new ExtraneousChaptersFormatRule(), + new AudioIndexStreamRule(0), + new AudioCodecStreamRule(), + new AudioSampleRateStreamRule(), + new AudioChannelsStreamRule(), + new AudioChannelLayoutStreamRule(), + new AudioLoudnessTruePeakStreamRule(), + new AudioLoudnessIntegratedTargetStreamRule(), + ]; + } +} diff --git a/app/Filament/TableActions/Storage/Wiki/Video/Script/UploadScriptTableAction.php b/app/Filament/TableActions/Storage/Wiki/Video/Script/UploadScriptTableAction.php new file mode 100644 index 000000000..56bcbfcac --- /dev/null +++ b/app/Filament/TableActions/Storage/Wiki/Video/Script/UploadScriptTableAction.php @@ -0,0 +1,90 @@ +getRecord(); + + return $form + ->schema( + array_merge( + parent::getForm($form)->getComponents(), + [ + Hidden::make(Video::ATTRIBUTE_ID) + ->label(__('filament.resources.singularLabel.video')) + ->default(fn (BaseRelationManager|ListScripts $livewire) => $livewire instanceof BaseRelationManager ? $livewire->getOwnerRecord()->getKey() : null), + ], + ) + ); + } + + /** + * Get the underlying storage action. + * + * @param array $fields + * @return UploadScript + */ + protected function storageAction(array $fields): UploadScript + { + /** @var UploadedFile $file */ + $file = Arr::get($fields, 'file'); + + /** @var string $path */ + $path = Arr::get($fields, 'path'); + + /** @var Video|null $video */ + $video = Video::query()->find(Arr::get($fields, Video::ATTRIBUTE_ID)); + + return new UploadScript($file, $path, $video); + } + + /** + * The name of the disk. + * + * @return string + */ + public function disk(): string + { + return Config::get(VideoConstants::SCRIPT_DISK_QUALIFIED); + } + + /** + * Get the file validation rules. + * + * @return array + */ + protected function fileRules(): array + { + return [ + 'required', + FileRule::types('txt')->max(2 * 1024), + ]; + } +} diff --git a/app/Filament/TableActions/Storage/Wiki/Video/UploadVideoTableAction.php b/app/Filament/TableActions/Storage/Wiki/Video/UploadVideoTableAction.php new file mode 100644 index 000000000..13fa87e92 --- /dev/null +++ b/app/Filament/TableActions/Storage/Wiki/Video/UploadVideoTableAction.php @@ -0,0 +1,218 @@ +schema([ + Section::make(__('filament.resources.singularLabel.video')) + ->schema( + array_merge( + [ + Hidden::make(AnimeThemeEntry::ATTRIBUTE_ID) + ->label(__('filament.resources.singularLabel.anime_theme_entry')) + ->default(fn (BaseRelationManager|ListVideos $livewire) => $livewire instanceof BaseRelationManager ? $livewire->getOwnerRecord()->getKey() : null), + ], + parent::getForm($form)->getComponents(), + [ + Checkbox::make(Video::ATTRIBUTE_NC) + ->label(__('filament.fields.video.nc.name')) + ->helperText(__('filament.fields.video.nc.help')) + ->nullable() + ->rules(['nullable', 'boolean']), + + Checkbox::make(Video::ATTRIBUTE_SUBBED) + ->label(__('filament.fields.video.subbed.name')) + ->helperText(__('filament.fields.video.subbed.help')) + ->nullable() + ->rules(['nullable', 'boolean']), + + Checkbox::make(Video::ATTRIBUTE_LYRICS) + ->label(__('filament.fields.video.lyrics.name')) + ->helperText(__('filament.fields.video.lyrics.help')) + ->nullable() + ->rules(['nullable', 'boolean']), + + Checkbox::make(Video::ATTRIBUTE_UNCEN) + ->label(__('filament.fields.video.uncen.name')) + ->helperText(__('filament.fields.video.uncen.help')) + ->nullable() + ->rules(['nullable', 'boolean']), + + Select::make(Video::ATTRIBUTE_OVERLAP) + ->label(__('filament.fields.video.overlap.name')) + ->helperText(__('filament.fields.video.overlap.help')) + ->options(VideoOverlap::asSelectArray()) + ->nullable() + ->rules(['nullable', new Enum(VideoOverlap::class)]), + + Select::make(Video::ATTRIBUTE_SOURCE) + ->label(__('filament.fields.video.source.name')) + ->helperText(__('filament.fields.video.source.help')) + ->options(VideoSource::asSelectArray()) + ->nullable() + ->rules(['nullable', new Enum(VideoSource::class)]), + ], + ) + ), + + Section::make(__('filament.resources.singularLabel.video_script')) + ->schema([ + FileUpload::make('script') + ->label(__('filament.resources.singularLabel.video_script')) + ->helperText(__('filament.actions.storage.upload.fields.file.help')) + ->nullable() + ->rules(['nullable', FileRule::types('txt')->max(2 * 1024)]) + ->storeFiles(false), + ]), + ]); + } + + /** + * Get the underlying storage action. + * + * @param array $fields + * @return UploadVideo + */ + protected function storageAction(array $fields): UploadVideo + { + /** @var string|null $path */ + $path = Arr::get($fields, 'path'); + + /** @var UploadedFile $file */ + $file = Arr::get($fields, 'file'); + + /** @var AnimeThemeEntry|null $entry */ + $entry = AnimeThemeEntry::query()->find(Arr::get($fields, AnimeThemeEntry::ATTRIBUTE_ID)); + + /** @var UploadedFile|null $script */ + $script = Arr::get($fields, 'script'); + + if ($path === null && $entry !== null) { + $anime = $entry->animetheme->anime; + $year = $anime->year; + $path = $year >= 2000 ? + Str::of(strval($year)) + ->append('/') + ->append(AnimeSeason::tryFrom($anime->season->value)->localize()) + ->__toString() + : floor($year % 100 / 10).'0s'; + } + + if ($path === null) { + $video = Video::query()->firstWhere(Video::ATTRIBUTE_BASENAME, $file->getClientOriginalName()); + $path = $video instanceof Video ? Str::match('/(\d{4}\/\w+)|(\d{2}+s)/', $video->path) : null; + } + + $attributes = [ + Video::ATTRIBUTE_NC => Arr::get($fields, Video::ATTRIBUTE_NC), + Video::ATTRIBUTE_SUBBED => Arr::get($fields, Video::ATTRIBUTE_SUBBED), + Video::ATTRIBUTE_LYRICS => Arr::get($fields, Video::ATTRIBUTE_LYRICS), + Video::ATTRIBUTE_UNCEN => Arr::get($fields, Video::ATTRIBUTE_UNCEN), + Video::ATTRIBUTE_OVERLAP => Arr::get($fields, Video::ATTRIBUTE_OVERLAP), + Video::ATTRIBUTE_SOURCE => Arr::get($fields, Video::ATTRIBUTE_SOURCE), + ]; + + return new UploadVideo($file, $path, $attributes, $entry, $script); + } + + /** + * The name of the disk. + * + * @return string + */ + public function disk(): string + { + return Config::get(VideoConstants::DEFAULT_DISK_QUALIFIED); + } + + /** + * Get the file validation rules. + * + * @return array + */ + protected function fileRules(): array + { + return [ + 'required', + FileRule::types('webm')->max(200 * 1024), + new TotalStreamsFormatRule(2), + new EncoderNameFormatRule(), + new EncoderVersionFormatRule(), + new FormatNameFormatRule('matroska,webm'), + new VideoBitrateRestrictionFormatRule(), + new ExtraneousMetadataFormatRule(), + new ExtraneousChaptersFormatRule(), + new AudioIndexStreamRule(1), + new AudioCodecStreamRule(), + new AudioSampleRateStreamRule(), + new AudioChannelsStreamRule(), + new AudioChannelLayoutStreamRule(), + new AudioLoudnessTruePeakStreamRule(), + new AudioLoudnessIntegratedTargetStreamRule(), + new VideoIndexStreamRule(), + new VideoCodecStreamRule(), + new VideoPixelFormatStreamRule(), + new VideoColorSpaceStreamRule(), + new VideoColorTransferStreamRule(), + new VideoColorPrimariesStreamRule(), + ]; + } +} diff --git a/app/Filament/Tabs/Anime/AnimeImageTab.php b/app/Filament/Tabs/Anime/AnimeImageTab.php new file mode 100644 index 000000000..dd5b683ae --- /dev/null +++ b/app/Filament/Tabs/Anime/AnimeImageTab.php @@ -0,0 +1,61 @@ + static::facet()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Anime::RELATION_IMAGES, function (Builder $imageQuery) { + $imageQuery->where(Image::ATTRIBUTE_FACET, static::facet()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Anime::query()->whereDoesntHave(Anime::RELATION_IMAGES, function (Builder $imageQuery) { + $imageQuery->where(Image::ATTRIBUTE_FACET, static::facet()->value); + })->count(); + } +} \ No newline at end of file diff --git a/app/Filament/Tabs/Anime/AnimeResourceTab.php b/app/Filament/Tabs/Anime/AnimeResourceTab.php new file mode 100644 index 000000000..afbf295f2 --- /dev/null +++ b/app/Filament/Tabs/Anime/AnimeResourceTab.php @@ -0,0 +1,61 @@ + static::site()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Anime::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Anime::query()->whereDoesntHave(Anime::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + })->count(); + } +} diff --git a/app/Filament/Tabs/Anime/AnimeStreamingResourceTab.php b/app/Filament/Tabs/Anime/AnimeStreamingResourceTab.php new file mode 100644 index 000000000..b709764b6 --- /dev/null +++ b/app/Filament/Tabs/Anime/AnimeStreamingResourceTab.php @@ -0,0 +1,89 @@ +whereDoesntHave(Anime::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(function (Builder $query) { + foreach (static::sites() as $site) { + $query->orWhere(ExternalResource::ATTRIBUTE_SITE, $site->value); + } + }); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Anime::query()->whereDoesntHave(Anime::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(function (Builder $query) { + foreach (static::sites() as $site) { + $query->orWhere(ExternalResource::ATTRIBUTE_SITE, $site->value); + } + }); + })->count(); + } +} diff --git a/app/Filament/Tabs/Anime/Image/AnimeCoverLargeTab.php b/app/Filament/Tabs/Anime/Image/AnimeCoverLargeTab.php new file mode 100644 index 000000000..2cf40c041 --- /dev/null +++ b/app/Filament/Tabs/Anime/Image/AnimeCoverLargeTab.php @@ -0,0 +1,34 @@ +whereDoesntHave(Anime::RELATION_STUDIOS); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Anime::query()->whereDoesntHave(Anime::RELATION_STUDIOS)->count(); + } +} diff --git a/app/Filament/Tabs/Artist/ArtistImageTab.php b/app/Filament/Tabs/Artist/ArtistImageTab.php new file mode 100644 index 000000000..cc4192ad2 --- /dev/null +++ b/app/Filament/Tabs/Artist/ArtistImageTab.php @@ -0,0 +1,61 @@ + static::facet()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Artist::RELATION_IMAGES, function (Builder $imageQuery) { + $imageQuery->where(Image::ATTRIBUTE_FACET, static::facet()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Artist::query()->whereDoesntHave(Artist::RELATION_IMAGES, function (Builder $imageQuery) { + $imageQuery->where(Image::ATTRIBUTE_FACET, static::facet()->value); + })->count(); + } +} diff --git a/app/Filament/Tabs/Artist/ArtistResourceTab.php b/app/Filament/Tabs/Artist/ArtistResourceTab.php new file mode 100644 index 000000000..371b2879f --- /dev/null +++ b/app/Filament/Tabs/Artist/ArtistResourceTab.php @@ -0,0 +1,61 @@ + static::site()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Artist::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Artist::query()->whereDoesntHave(Artist::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + })->count(); + } +} diff --git a/app/Filament/Tabs/Artist/Image/ArtistCoverLargeTab.php b/app/Filament/Tabs/Artist/Image/ArtistCoverLargeTab.php new file mode 100644 index 000000000..8daef03c7 --- /dev/null +++ b/app/Filament/Tabs/Artist/Image/ArtistCoverLargeTab.php @@ -0,0 +1,34 @@ +whereDoesntHave(Artist::RELATION_SONGS); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Artist::query()->whereDoesntHave(Artist::RELATION_SONGS)->count(); + } +} diff --git a/app/Filament/Tabs/Audio/AudioVideoTab.php b/app/Filament/Tabs/Audio/AudioVideoTab.php new file mode 100644 index 000000000..6d99cb6c8 --- /dev/null +++ b/app/Filament/Tabs/Audio/AudioVideoTab.php @@ -0,0 +1,60 @@ +whereDoesntHave(Audio::RELATION_VIDEOS); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Audio::query()->whereDoesntHave(Audio::RELATION_VIDEOS)->count(); + } +} diff --git a/app/Filament/Tabs/BaseTab.php b/app/Filament/Tabs/BaseTab.php new file mode 100644 index 000000000..891a15085 --- /dev/null +++ b/app/Filament/Tabs/BaseTab.php @@ -0,0 +1,66 @@ +getLabel(); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $this->modifyQuery($query); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return $this->getBadge(); + } + + /** + * Determine if the tab should be hidden. + * + * @return bool + */ + public function shouldBeHidden(): bool + { + return $this->getBadge() === 0; + } +} diff --git a/app/Filament/Tabs/ExternalResource/ExternalResourceUnlinkedTab.php b/app/Filament/Tabs/ExternalResource/ExternalResourceUnlinkedTab.php new file mode 100644 index 000000000..1b9d6e25e --- /dev/null +++ b/app/Filament/Tabs/ExternalResource/ExternalResourceUnlinkedTab.php @@ -0,0 +1,67 @@ +whereDoesntHave(ExternalResource::RELATION_ANIME) + ->whereDoesntHave(ExternalResource::RELATION_ARTISTS) + ->whereDoesntHave(ExternalResource::RELATION_SONGS) + ->whereDoesntHave(ExternalResource::RELATION_STUDIOS); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return ExternalResource::query()->whereDoesntHave(ExternalResource::RELATION_ANIME) + ->whereDoesntHave(ExternalResource::RELATION_ARTISTS) + ->whereDoesntHave(ExternalResource::RELATION_SONGS) + ->whereDoesntHave(ExternalResource::RELATION_STUDIOS) + ->count(); + } +} diff --git a/app/Filament/Tabs/Image/ImageUnlinkedTab.php b/app/Filament/Tabs/Image/ImageUnlinkedTab.php new file mode 100644 index 000000000..53eb196be --- /dev/null +++ b/app/Filament/Tabs/Image/ImageUnlinkedTab.php @@ -0,0 +1,72 @@ +whereNot(Image::ATTRIBUTE_FACET, ImageFacet::GRILL->value) + ->whereNot(Image::ATTRIBUTE_FACET, ImageFacet::DOCUMENT->value) + ->whereDoesntHave(Image::RELATION_ANIME) + ->whereDoesntHave(Image::RELATION_ARTISTS) + ->whereDoesntHave(Image::RELATION_STUDIOS); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Image::query() + ->whereNot(Image::ATTRIBUTE_FACET, ImageFacet::GRILL->value) + ->whereNot(Image::ATTRIBUTE_FACET, ImageFacet::DOCUMENT->value) + ->whereDoesntHave(Image::RELATION_ANIME) + ->whereDoesntHave(Image::RELATION_ARTISTS) + ->whereDoesntHave(Image::RELATION_STUDIOS) + ->count(); + } +} diff --git a/app/Filament/Tabs/Song/Resource/SongAmazonMusicResourceTab.php b/app/Filament/Tabs/Song/Resource/SongAmazonMusicResourceTab.php new file mode 100644 index 000000000..442bafe6b --- /dev/null +++ b/app/Filament/Tabs/Song/Resource/SongAmazonMusicResourceTab.php @@ -0,0 +1,36 @@ +whereDoesntHave(Song::RELATION_ARTISTS); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Song::query()->whereDoesntHave(Song::RELATION_ARTISTS)->count(); + } +} diff --git a/app/Filament/Tabs/Song/SongResourceTab.php b/app/Filament/Tabs/Song/SongResourceTab.php new file mode 100644 index 000000000..75f5a852a --- /dev/null +++ b/app/Filament/Tabs/Song/SongResourceTab.php @@ -0,0 +1,61 @@ + static::site()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Song::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Song::query()->whereDoesntHave(Song::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + })->count(); + } +} diff --git a/app/Filament/Tabs/Studio/Image/StudioCoverLargeTab.php b/app/Filament/Tabs/Studio/Image/StudioCoverLargeTab.php new file mode 100644 index 000000000..890d73a05 --- /dev/null +++ b/app/Filament/Tabs/Studio/Image/StudioCoverLargeTab.php @@ -0,0 +1,34 @@ + static::facet()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Studio::RELATION_IMAGES, function (Builder $imageQuery) { + $imageQuery->where(Image::ATTRIBUTE_FACET, static::facet()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Studio::query()->whereDoesntHave(Studio::RELATION_IMAGES, function (Builder $imageQuery) { + $imageQuery->where(Image::ATTRIBUTE_FACET, static::facet()->value); + })->count(); + } +} diff --git a/app/Filament/Tabs/Studio/StudioResourceTab.php b/app/Filament/Tabs/Studio/StudioResourceTab.php new file mode 100644 index 000000000..a0c11a76e --- /dev/null +++ b/app/Filament/Tabs/Studio/StudioResourceTab.php @@ -0,0 +1,61 @@ + static::site()->localize()]); + } + + /** + * The query used to refine the models for the tab. + * + * @param Builder $query + * @return Builder + */ + public function modifyQuery(Builder $query): Builder + { + return $query->whereDoesntHave(Studio::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + }); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Studio::query()->whereDoesntHave(Studio::RELATION_RESOURCES, function (Builder $resourceQuery) { + $resourceQuery->where(ExternalResource::ATTRIBUTE_SITE, static::site()->value); + })->count(); + } +} diff --git a/app/Filament/Tabs/Studio/StudioUnlinkedTab.php b/app/Filament/Tabs/Studio/StudioUnlinkedTab.php new file mode 100644 index 000000000..a5c33f585 --- /dev/null +++ b/app/Filament/Tabs/Studio/StudioUnlinkedTab.php @@ -0,0 +1,60 @@ +whereDoesntHave(Studio::RELATION_ANIME); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Studio::query()->whereDoesntHave(Studio::RELATION_ANIME)->count(); + } +} diff --git a/app/Filament/Tabs/Video/VideoAudioTab.php b/app/Filament/Tabs/Video/VideoAudioTab.php new file mode 100644 index 000000000..12f90e226 --- /dev/null +++ b/app/Filament/Tabs/Video/VideoAudioTab.php @@ -0,0 +1,64 @@ +whereDoesntHave(Video::RELATION_AUDIO) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%'); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Video::query() + ->whereDoesntHave(Video::RELATION_AUDIO) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%') + ->count(); + } +} diff --git a/app/Filament/Tabs/Video/VideoResolutionTab.php b/app/Filament/Tabs/Video/VideoResolutionTab.php new file mode 100644 index 000000000..794f6f474 --- /dev/null +++ b/app/Filament/Tabs/Video/VideoResolutionTab.php @@ -0,0 +1,58 @@ +whereNull(Video::ATTRIBUTE_RESOLUTION); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Video::query()->whereNull(Video::ATTRIBUTE_RESOLUTION)->count(); + } +} diff --git a/app/Filament/Tabs/Video/VideoScriptTab.php b/app/Filament/Tabs/Video/VideoScriptTab.php new file mode 100644 index 000000000..b0858b85b --- /dev/null +++ b/app/Filament/Tabs/Video/VideoScriptTab.php @@ -0,0 +1,64 @@ +whereDoesntHave(Video::RELATION_SCRIPT) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%'); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Video::query() + ->whereDoesntHave(Video::RELATION_SCRIPT) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%') + ->count(); + } +} diff --git a/app/Filament/Tabs/Video/VideoSourceTab.php b/app/Filament/Tabs/Video/VideoSourceTab.php new file mode 100644 index 000000000..da6892014 --- /dev/null +++ b/app/Filament/Tabs/Video/VideoSourceTab.php @@ -0,0 +1,64 @@ +whereNull(Video::ATTRIBUTE_SOURCE) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%'); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Video::query() + ->whereNull(Video::ATTRIBUTE_SOURCE) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%') + ->count(); + } +} diff --git a/app/Filament/Tabs/Video/VideoUnlinkedTab.php b/app/Filament/Tabs/Video/VideoUnlinkedTab.php new file mode 100644 index 000000000..600ac38cf --- /dev/null +++ b/app/Filament/Tabs/Video/VideoUnlinkedTab.php @@ -0,0 +1,64 @@ +whereDoesntHave(Video::RELATION_ANIMETHEMEENTRIES) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%'); + } + + /** + * Get the badge for the tab. + * + * @return int + */ + public function getBadge(): int + { + return Video::query() + ->whereDoesntHave(Video::RELATION_ANIMETHEMEENTRIES) + ->where(Video::ATTRIBUTE_PATH, ComparisonOperator::NOTLIKE->value, 'misc%') + ->count(); + } +} diff --git a/app/Filament/Widgets/Auth/UserChart.php b/app/Filament/Widgets/Auth/UserChart.php new file mode 100644 index 000000000..8af5fc5f5 --- /dev/null +++ b/app/Filament/Widgets/Auth/UserChart.php @@ -0,0 +1,78 @@ +perMonth(User::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Filament/Widgets/BaseChartWidget.php b/app/Filament/Widgets/BaseChartWidget.php new file mode 100644 index 000000000..704c582e6 --- /dev/null +++ b/app/Filament/Widgets/BaseChartWidget.php @@ -0,0 +1,59 @@ +between(now()->addMonths(-11)->startOfMonth(), now()->endOfMonth()) + ->perMonth() + ->count(); + } + + /** + * Translate the dates. + * + * @param string $date + * @return string + */ + protected function translateDate(string $date): string + { + $month = intval(explode('-', $date)[1]); + $year = substr(explode('-', $date)[0], 2); + + $dates = [ + 1 => __('filament.widgets.month.jan'), + 2 => __('filament.widgets.month.feb'), + 3 => __('filament.widgets.month.mar'), + 4 => __('filament.widgets.month.apr'), + 5 => __('filament.widgets.month.may'), + 6 => __('filament.widgets.month.jun'), + 7 => __('filament.widgets.month.jul'), + 8 => __('filament.widgets.month.aug'), + 9 => __('filament.widgets.month.sep'), + 10 => __('filament.widgets.month.oct'), + 11 => __('filament.widgets.month.nov'), + 12 => __('filament.widgets.month.dec'), + ]; + + return $dates[$month].' - '.$year; + } +} \ No newline at end of file diff --git a/app/Filament/Widgets/BaseStatsWidget.php b/app/Filament/Widgets/BaseStatsWidget.php new file mode 100644 index 000000000..89ee927e5 --- /dev/null +++ b/app/Filament/Widgets/BaseStatsWidget.php @@ -0,0 +1,14 @@ +perMonth(Playlist::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Filament/Widgets/List/PlaylistTrackChart.php b/app/Filament/Widgets/List/PlaylistTrackChart.php new file mode 100644 index 000000000..73a6b444f --- /dev/null +++ b/app/Filament/Widgets/List/PlaylistTrackChart.php @@ -0,0 +1,78 @@ +perMonth(PlaylistTrack::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Filament/Widgets/Wiki/Anime/AnimeChart.php b/app/Filament/Widgets/Wiki/Anime/AnimeChart.php new file mode 100644 index 000000000..945a02cd1 --- /dev/null +++ b/app/Filament/Widgets/Wiki/Anime/AnimeChart.php @@ -0,0 +1,78 @@ +perMonth(Anime::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Filament/Widgets/Wiki/Artist/ArtistChart.php b/app/Filament/Widgets/Wiki/Artist/ArtistChart.php new file mode 100644 index 000000000..49e72d5c7 --- /dev/null +++ b/app/Filament/Widgets/Wiki/Artist/ArtistChart.php @@ -0,0 +1,78 @@ +perMonth(Artist::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Filament/Widgets/Wiki/Series/SeriesChart.php b/app/Filament/Widgets/Wiki/Series/SeriesChart.php new file mode 100644 index 000000000..ba56b0c66 --- /dev/null +++ b/app/Filament/Widgets/Wiki/Series/SeriesChart.php @@ -0,0 +1,78 @@ +perMonth(Series::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Filament/Widgets/Wiki/Video/VideoChart.php b/app/Filament/Widgets/Wiki/Video/VideoChart.php new file mode 100644 index 000000000..f60f765d2 --- /dev/null +++ b/app/Filament/Widgets/Wiki/Video/VideoChart.php @@ -0,0 +1,78 @@ +perMonth(Video::class); + + return [ + 'chart' => [ + 'type' => 'area', + 'height' => 300, + ], + 'series' => [ + [ + 'name' => $this->getHeading(), + 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), + ], + ], + 'xaxis' => [ + 'categories' => $data->map(fn (TrendValue $value) => $this->translateDate($value->date)), + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'yaxis' => [ + 'labels' => [ + 'style' => [ + 'fontFamily' => 'inherit', + ], + ], + ], + 'colors' => ['#71E9C5'], + 'stroke' => [ + 'curve' => 'smooth', + ], + 'dataLabels' => [ + 'enabled' => false, + ], + ]; + } +} diff --git a/app/Models/Admin/Announcement.php b/app/Models/Admin/Announcement.php index 243e621c8..81a23ff2b 100644 --- a/app/Models/Admin/Announcement.php +++ b/app/Models/Admin/Announcement.php @@ -32,7 +32,7 @@ class Announcement extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Announcement::ATTRIBUTE_CONTENT, @@ -75,4 +75,14 @@ class Announcement extends BaseModel { return strval($this->getKey()); } + + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->getName(); + } } diff --git a/app/Models/Admin/Dump.php b/app/Models/Admin/Dump.php index f553012dd..0a1058e95 100644 --- a/app/Models/Admin/Dump.php +++ b/app/Models/Admin/Dump.php @@ -32,7 +32,7 @@ class Dump extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Dump::ATTRIBUTE_PATH, @@ -75,4 +75,14 @@ class Dump extends BaseModel { return $this->path; } + + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->getName(); + } } diff --git a/app/Models/Admin/Feature.php b/app/Models/Admin/Feature.php index eb72fa322..c568f7d17 100644 --- a/app/Models/Admin/Feature.php +++ b/app/Models/Admin/Feature.php @@ -41,7 +41,7 @@ class Feature extends Model /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Feature::ATTRIBUTE_VALUE, @@ -84,6 +84,16 @@ class Feature extends Model return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->scope; + } + /** * Determine if the feature scope is global. * diff --git a/app/Models/Admin/FeaturedTheme.php b/app/Models/Admin/FeaturedTheme.php index 208c0f582..06bc1d72d 100644 --- a/app/Models/Admin/FeaturedTheme.php +++ b/app/Models/Admin/FeaturedTheme.php @@ -23,7 +23,7 @@ use Laravel\Nova\Actions\Actionable; * Class FeaturedTheme. * * @property Carbon|null $end_at - * @property AnimeThemeEntry|null $entry + * @property AnimeThemeEntry|null $animethemeentry * @property int $entry_id * @property int $feature_id * @property Carbon|null $start_at @@ -59,7 +59,7 @@ class FeaturedTheme extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ FeaturedTheme::ATTRIBUTE_END_AT, @@ -120,6 +120,16 @@ class FeaturedTheme extends BaseModel ->__toString(); } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->animethemeentry === null ? $this->getName() : $this->animethemeentry->getName(); + } + /** * Get the user that recommended the featured theme. * diff --git a/app/Models/Auth/User.php b/app/Models/Auth/User.php index fa8ac7cef..06f33aeb4 100644 --- a/app/Models/Auth/User.php +++ b/app/Models/Auth/User.php @@ -5,12 +5,17 @@ declare(strict_types=1); namespace App\Models\Auth; use App\Contracts\Models\Nameable; +use App\Contracts\Models\HasSubtitle; +use App\Enums\Auth\SpecialPermission; use App\Events\Auth\User\UserCreated; use App\Events\Auth\User\UserDeleted; use App\Events\Auth\User\UserRestored; use App\Events\Auth\User\UserUpdated; use App\Models\List\Playlist; use Database\Factories\Auth\UserFactory; +use Filament\Models\Contracts\FilamentUser; +use Filament\Models\Contracts\HasAvatar; +use Filament\Panel; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -46,7 +51,7 @@ use Spatie\Permission\Traits\HasRoles; * * @method static UserFactory factory(...$parameters) */ -class User extends Authenticatable implements MustVerifyEmail, Nameable +class User extends Authenticatable implements MustVerifyEmail, Nameable, HasSubtitle, FilamentUser, HasAvatar { use Actionable; use HasApiTokens; @@ -147,6 +152,16 @@ class User extends Authenticatable implements MustVerifyEmail, Nameable return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->email; + } + /** * Restore a soft-deleted model instance. * @@ -176,6 +191,29 @@ class User extends Authenticatable implements MustVerifyEmail, Nameable return $result; } + /** + * Determine if the user can access the filament panel. + * + * @param Panel $panel + * @return bool + */ + public function canAccessPanel(Panel $panel): bool + { + return $this->hasVerifiedEmail() && $this->hasAnyPermission(SpecialPermission::VIEW_FILAMENT->value); + } + + /** + * Get the filament avatar. + * + * @return string + */ + public function getFilamentAvatarUrl(): string + { + $hash = md5(strtolower(trim($this->email))); + + return "https://www.gravatar.com/avatar/$hash"; + } + /** * Get the playlists that belong to the user. * diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index 51ab48764..d0b333f58 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Models; use App\Contracts\Models\Nameable; +use App\Contracts\Models\HasSubtitle; use App\Enums\Http\Api\Filter\ComparisonOperator; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -22,7 +23,7 @@ use Illuminate\Support\Str; * @property Carbon $deleted_at * @property Carbon $updated_at */ -abstract class BaseModel extends Model implements Nameable +abstract class BaseModel extends Model implements Nameable, HasSubtitle { use HasFactory; use Prunable; diff --git a/app/Models/Document/Page.php b/app/Models/Document/Page.php index 48472c916..6b1d295a7 100644 --- a/app/Models/Document/Page.php +++ b/app/Models/Document/Page.php @@ -36,7 +36,7 @@ class Page extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Page::ATTRIBUTE_BODY, @@ -102,4 +102,14 @@ class Page extends BaseModel { return $this->name; } + + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->slug; + } } diff --git a/app/Models/List/Playlist.php b/app/Models/List/Playlist.php index 65665c2d8..9b8b0a3ce 100644 --- a/app/Models/List/Playlist.php +++ b/app/Models/List/Playlist.php @@ -68,7 +68,7 @@ class Playlist extends BaseModel implements HasHashids, Viewable /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Playlist::ATTRIBUTE_NAME, @@ -148,6 +148,16 @@ class Playlist extends BaseModel implements HasHashids, Viewable return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->user === null ? $this->getName() : $this->user->getName(); + } + /** * Determine if the model should be searchable. * diff --git a/app/Models/List/Playlist/PlaylistTrack.php b/app/Models/List/Playlist/PlaylistTrack.php index dade1aeee..8ebdc610a 100644 --- a/app/Models/List/Playlist/PlaylistTrack.php +++ b/app/Models/List/Playlist/PlaylistTrack.php @@ -57,7 +57,7 @@ class PlaylistTrack extends BaseModel implements HasHashids /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ PlaylistTrack::ATTRIBUTE_PLAYLIST, @@ -127,6 +127,18 @@ class PlaylistTrack extends BaseModel implements HasHashids return strval($this->getKey()); } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->playlist->user !== null + ? "{$this->playlist->user->getName()} - {$this->playlist->getName()}" + : $this->playlist->getName(); + } + /** * Get the playlist the track belongs to. * diff --git a/app/Models/Wiki/Anime.php b/app/Models/Wiki/Anime.php index 04f1faacf..0d61a5973 100644 --- a/app/Models/Wiki/Anime.php +++ b/app/Models/Wiki/Anime.php @@ -81,7 +81,7 @@ class Anime extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Anime::ATTRIBUTE_NAME, @@ -178,6 +178,16 @@ class Anime extends BaseModel return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->slug; + } + /** * Get the synonyms for the anime. * diff --git a/app/Models/Wiki/Anime/AnimeSynonym.php b/app/Models/Wiki/Anime/AnimeSynonym.php index 3a679454d..c9b13e6bb 100644 --- a/app/Models/Wiki/Anime/AnimeSynonym.php +++ b/app/Models/Wiki/Anime/AnimeSynonym.php @@ -45,7 +45,7 @@ class AnimeSynonym extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeSynonym::ATTRIBUTE_ANIME, @@ -100,6 +100,16 @@ class AnimeSynonym extends BaseModel return $this->text; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->anime->getName(); + } + /** * Gets the anime that owns the synonym. * diff --git a/app/Models/Wiki/Anime/AnimeTheme.php b/app/Models/Wiki/Anime/AnimeTheme.php index 0c371582e..7fbd0ba50 100644 --- a/app/Models/Wiki/Anime/AnimeTheme.php +++ b/app/Models/Wiki/Anime/AnimeTheme.php @@ -21,6 +21,7 @@ use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Collection; +use Illuminate\Support\Str; use Laravel\Nova\Actions\Actionable; /** @@ -68,7 +69,7 @@ class AnimeTheme extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeTheme::ATTRIBUTE_ANIME, @@ -155,7 +156,20 @@ class AnimeTheme extends BaseModel */ public function getName(): string { - return $this->slug; + return Str::of($this->type->localize()) + ->append(strval($this->sequence ?? 1)) + ->append($this->group !== null ? '-'.$this->group->slug : '') + ->__toString(); + } + + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->anime->getName(); } /** diff --git a/app/Models/Wiki/Anime/Theme/AnimeThemeEntry.php b/app/Models/Wiki/Anime/Theme/AnimeThemeEntry.php index 86683ded5..3897376ba 100644 --- a/app/Models/Wiki/Anime/Theme/AnimeThemeEntry.php +++ b/app/Models/Wiki/Anime/Theme/AnimeThemeEntry.php @@ -67,7 +67,7 @@ class AnimeThemeEntry extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeThemeEntry::ATTRIBUTE_EPISODES, @@ -157,11 +157,23 @@ class AnimeThemeEntry extends BaseModel { return Str::of($this->anime->name) ->append(' ') - ->append($this->animetheme->slug) - ->append(empty($this->version) ? '' : " V$this->version") + ->append($this->animetheme->type->localize()) + ->append(strval($this->animetheme->sequence ?? 1)) + ->append(empty($this->version) ? '' : "v$this->version") + ->append($this->animetheme->group !== null ? '-'.$this->animetheme->group->slug : '') ->__toString(); } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return "{$this->anime->getName()} {$this->animetheme->getName()}"; + } + /** * Get the theme that owns the entry. * diff --git a/app/Models/Wiki/Artist.php b/app/Models/Wiki/Artist.php index e75e83df1..475294334 100644 --- a/app/Models/Wiki/Artist.php +++ b/app/Models/Wiki/Artist.php @@ -61,7 +61,7 @@ class Artist extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Artist::ATTRIBUTE_NAME, @@ -142,6 +142,16 @@ class Artist extends BaseModel return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->slug; + } + /** * Get the songs the artist has performed in. * diff --git a/app/Models/Wiki/Audio.php b/app/Models/Wiki/Audio.php index 48db681b0..1b1458819 100644 --- a/app/Models/Wiki/Audio.php +++ b/app/Models/Wiki/Audio.php @@ -50,7 +50,7 @@ class Audio extends BaseModel implements Streamable, Viewable /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Audio::ATTRIBUTE_BASENAME, @@ -119,6 +119,16 @@ class Audio extends BaseModel implements Streamable, Viewable return $this->basename; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->path(); + } + /** * Get the path of the streamable model in the filesystem. * diff --git a/app/Models/Wiki/ExternalResource.php b/app/Models/Wiki/ExternalResource.php index 9a00214ce..9e47593f7 100644 --- a/app/Models/Wiki/ExternalResource.php +++ b/app/Models/Wiki/ExternalResource.php @@ -56,7 +56,7 @@ class ExternalResource extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ ExternalResource::ATTRIBUTE_EXTERNAL_ID, @@ -112,6 +112,16 @@ class ExternalResource extends BaseModel return strval($this->link); } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return strval($this->external_id); + } + /** * Get the anime that reference this resource. * diff --git a/app/Models/Wiki/Group.php b/app/Models/Wiki/Group.php index 7dd1492c5..281ec5af3 100644 --- a/app/Models/Wiki/Group.php +++ b/app/Models/Wiki/Group.php @@ -12,7 +12,6 @@ use App\Events\Wiki\Group\GroupUpdated; use App\Models\BaseModel; use App\Models\Wiki\Anime\AnimeTheme; use Database\Factories\Wiki\GroupFactory; -use Elastic\ScoutDriverPlus\Searchable; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Collection; use Laravel\Nova\Actions\Actionable; @@ -30,7 +29,6 @@ use Laravel\Nova\Actions\Actionable; class Group extends BaseModel { use Actionable; - use Searchable; final public const TABLE = 'groups'; @@ -45,7 +43,7 @@ class Group extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Group::ATTRIBUTE_NAME, @@ -91,6 +89,16 @@ class Group extends BaseModel return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->slug; + } + /** * Get the themes for the group. * diff --git a/app/Models/Wiki/Image.php b/app/Models/Wiki/Image.php index 8b3b1242b..0c49a220a 100644 --- a/app/Models/Wiki/Image.php +++ b/app/Models/Wiki/Image.php @@ -58,7 +58,7 @@ class Image extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Image::ATTRIBUTE_FACET, @@ -113,6 +113,16 @@ class Image extends BaseModel return $this->path; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->path; + } + /** * Get the anime that use this image. * diff --git a/app/Models/Wiki/Series.php b/app/Models/Wiki/Series.php index 387959565..3f4cb0404 100644 --- a/app/Models/Wiki/Series.php +++ b/app/Models/Wiki/Series.php @@ -43,7 +43,7 @@ class Series extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Series::ATTRIBUTE_NAME, @@ -100,6 +100,16 @@ class Series extends BaseModel return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->slug; + } + /** * Get the anime included in the series. * diff --git a/app/Models/Wiki/Song.php b/app/Models/Wiki/Song.php index 3bb24a943..000d60f3f 100644 --- a/app/Models/Wiki/Song.php +++ b/app/Models/Wiki/Song.php @@ -53,7 +53,7 @@ class Song extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Song::ATTRIBUTE_TITLE, @@ -102,6 +102,18 @@ class Song extends BaseModel return $this->title; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->animethemes()->count() !== 0 && $this->animethemes->first()->anime !== null + ? "{$this->animethemes->first()->anime->getName()} {$this->animethemes->first()->slug}" + : $this->getName(); + } + /** * Get the anime themes that use this song. * diff --git a/app/Models/Wiki/Studio.php b/app/Models/Wiki/Studio.php index fbcf392da..00b561c71 100644 --- a/app/Models/Wiki/Studio.php +++ b/app/Models/Wiki/Studio.php @@ -50,7 +50,7 @@ class Studio extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Studio::ATTRIBUTE_NAME, @@ -107,6 +107,16 @@ class Studio extends BaseModel return $this->name; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->slug; + } + /** * Get the anime that the studio produced. * diff --git a/app/Models/Wiki/Video.php b/app/Models/Wiki/Video.php index 9aea34547..8a866b2d6 100644 --- a/app/Models/Wiki/Video.php +++ b/app/Models/Wiki/Video.php @@ -94,7 +94,7 @@ class Video extends BaseModel implements Streamable, Viewable /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ Video::ATTRIBUTE_AUDIO, @@ -272,6 +272,16 @@ class Video extends BaseModel implements Streamable, Viewable return $this->basename; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->path(); + } + /** * Get the path of the streamable model in the filesystem. * diff --git a/app/Models/Wiki/Video/VideoScript.php b/app/Models/Wiki/Video/VideoScript.php index 04fbf6efb..d9d98f25b 100644 --- a/app/Models/Wiki/Video/VideoScript.php +++ b/app/Models/Wiki/Video/VideoScript.php @@ -39,7 +39,7 @@ class VideoScript extends BaseModel /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ VideoScript::ATTRIBUTE_PATH, @@ -84,6 +84,16 @@ class VideoScript extends BaseModel return $this->path; } + /** + * Get subtitle. + * + * @return string + */ + public function getSubtitle(): string + { + return $this->video->getName(); + } + /** * Get the video that owns the script. * diff --git a/app/Pivots/List/PlaylistImage.php b/app/Pivots/List/PlaylistImage.php index b0cb0ef39..8ec8a1f1f 100644 --- a/app/Pivots/List/PlaylistImage.php +++ b/app/Pivots/List/PlaylistImage.php @@ -55,7 +55,7 @@ class PlaylistImage extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ PlaylistImage::ATTRIBUTE_IMAGE, diff --git a/app/Pivots/Wiki/AnimeImage.php b/app/Pivots/Wiki/AnimeImage.php index ebf4780b2..8b8a52b37 100644 --- a/app/Pivots/Wiki/AnimeImage.php +++ b/app/Pivots/Wiki/AnimeImage.php @@ -55,7 +55,7 @@ class AnimeImage extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeImage::ATTRIBUTE_ANIME, diff --git a/app/Pivots/Wiki/AnimeResource.php b/app/Pivots/Wiki/AnimeResource.php index 825ec7b63..c4380cac8 100644 --- a/app/Pivots/Wiki/AnimeResource.php +++ b/app/Pivots/Wiki/AnimeResource.php @@ -38,7 +38,7 @@ class AnimeResource extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeResource::ATTRIBUTE_ANIME, diff --git a/app/Pivots/Wiki/AnimeSeries.php b/app/Pivots/Wiki/AnimeSeries.php index 07ee14cbf..1e08bf238 100644 --- a/app/Pivots/Wiki/AnimeSeries.php +++ b/app/Pivots/Wiki/AnimeSeries.php @@ -55,7 +55,7 @@ class AnimeSeries extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeSeries::ATTRIBUTE_ANIME, diff --git a/app/Pivots/Wiki/AnimeStudio.php b/app/Pivots/Wiki/AnimeStudio.php index 48d4c6f47..6c4b50193 100644 --- a/app/Pivots/Wiki/AnimeStudio.php +++ b/app/Pivots/Wiki/AnimeStudio.php @@ -55,7 +55,7 @@ class AnimeStudio extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeStudio::ATTRIBUTE_ANIME, diff --git a/app/Pivots/Wiki/AnimeThemeEntryVideo.php b/app/Pivots/Wiki/AnimeThemeEntryVideo.php index 03bf96467..5385a3e21 100644 --- a/app/Pivots/Wiki/AnimeThemeEntryVideo.php +++ b/app/Pivots/Wiki/AnimeThemeEntryVideo.php @@ -59,7 +59,7 @@ class AnimeThemeEntryVideo extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ AnimeThemeEntryVideo::ATTRIBUTE_ENTRY, diff --git a/app/Pivots/Wiki/ArtistImage.php b/app/Pivots/Wiki/ArtistImage.php index 3038ddedc..d010d39a8 100644 --- a/app/Pivots/Wiki/ArtistImage.php +++ b/app/Pivots/Wiki/ArtistImage.php @@ -55,7 +55,7 @@ class ArtistImage extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ ArtistImage::ATTRIBUTE_ARTIST, diff --git a/app/Pivots/Wiki/ArtistMember.php b/app/Pivots/Wiki/ArtistMember.php index fba364677..83a19ab39 100644 --- a/app/Pivots/Wiki/ArtistMember.php +++ b/app/Pivots/Wiki/ArtistMember.php @@ -37,7 +37,7 @@ class ArtistMember extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ ArtistMember::ATTRIBUTE_ARTIST, diff --git a/app/Pivots/Wiki/ArtistResource.php b/app/Pivots/Wiki/ArtistResource.php index bd04b9fa7..7b5eab893 100644 --- a/app/Pivots/Wiki/ArtistResource.php +++ b/app/Pivots/Wiki/ArtistResource.php @@ -38,7 +38,7 @@ class ArtistResource extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ ArtistResource::ATTRIBUTE_ARTIST, diff --git a/app/Pivots/Wiki/ArtistSong.php b/app/Pivots/Wiki/ArtistSong.php index 4ca016574..0f908d326 100644 --- a/app/Pivots/Wiki/ArtistSong.php +++ b/app/Pivots/Wiki/ArtistSong.php @@ -38,7 +38,7 @@ class ArtistSong extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ ArtistSong::ATTRIBUTE_ARTIST, diff --git a/app/Pivots/Wiki/SongResource.php b/app/Pivots/Wiki/SongResource.php index d2ed2c95f..d5c2ceb14 100644 --- a/app/Pivots/Wiki/SongResource.php +++ b/app/Pivots/Wiki/SongResource.php @@ -38,7 +38,7 @@ class SongResource extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ SongResource::ATTRIBUTE_SONG, diff --git a/app/Pivots/Wiki/StudioImage.php b/app/Pivots/Wiki/StudioImage.php index df2a00496..6a84e4bb9 100644 --- a/app/Pivots/Wiki/StudioImage.php +++ b/app/Pivots/Wiki/StudioImage.php @@ -55,7 +55,7 @@ class StudioImage extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ StudioImage::ATTRIBUTE_IMAGE, diff --git a/app/Pivots/Wiki/StudioResource.php b/app/Pivots/Wiki/StudioResource.php index 8af929ad9..8c4784370 100644 --- a/app/Pivots/Wiki/StudioResource.php +++ b/app/Pivots/Wiki/StudioResource.php @@ -38,7 +38,7 @@ class StudioResource extends BasePivot /** * The attributes that are mass assignable. * - * @var string[] + * @var array */ protected $fillable = [ StudioResource::ATTRIBUTE_AS, diff --git a/app/Policies/Admin/AnnouncementPolicy.php b/app/Policies/Admin/AnnouncementPolicy.php index 68b9cf220..320380a2b 100644 --- a/app/Policies/Admin/AnnouncementPolicy.php +++ b/app/Policies/Admin/AnnouncementPolicy.php @@ -103,4 +103,15 @@ class AnnouncementPolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Announcement::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Announcement::class)); + } } diff --git a/app/Policies/Admin/DumpPolicy.php b/app/Policies/Admin/DumpPolicy.php index 5415862db..95ed13716 100644 --- a/app/Policies/Admin/DumpPolicy.php +++ b/app/Policies/Admin/DumpPolicy.php @@ -103,4 +103,15 @@ class DumpPolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Dump::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Dump::class)); + } } diff --git a/app/Policies/Admin/FeaturePolicy.php b/app/Policies/Admin/FeaturePolicy.php index 3c0c39bac..11e1ed414 100644 --- a/app/Policies/Admin/FeaturePolicy.php +++ b/app/Policies/Admin/FeaturePolicy.php @@ -7,6 +7,7 @@ namespace App\Policies\Admin; use App\Enums\Auth\CrudPermission; use App\Models\Admin\Feature; use App\Models\Auth\User; +use Filament\Facades\Filament; use Illuminate\Auth\Access\HandlesAuthorization; use Laravel\Nova\Nova; @@ -42,7 +43,7 @@ class FeaturePolicy { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(Feature::class)), - fn (): bool => $feature->isNullScope() + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(Feature::class)) : $feature->isNullScope() ); } diff --git a/app/Policies/Admin/FeaturedThemePolicy.php b/app/Policies/Admin/FeaturedThemePolicy.php index 3f2fcdbdf..ab38bf95c 100644 --- a/app/Policies/Admin/FeaturedThemePolicy.php +++ b/app/Policies/Admin/FeaturedThemePolicy.php @@ -8,6 +8,7 @@ use App\Enums\Auth\CrudPermission; use App\Enums\Auth\ExtendedCrudPermission; use App\Models\Admin\FeaturedTheme; use App\Models\Auth\User; +use Filament\Facades\Filament; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Support\Facades\Date; use Laravel\Nova\Nova; @@ -44,7 +45,7 @@ class FeaturedThemePolicy { return Nova::whenServing( fn (): bool => $user !== null && $user->can(CrudPermission::VIEW->format(FeaturedTheme::class)), - fn (): bool => $featuredtheme->start_at->isBefore(Date::now()) + fn (): bool => Filament::isServing() ? $user !== null && $user->can(CrudPermission::VIEW->format(FeaturedTheme::class)) : $featuredtheme->start_at->isBefore(Date::now()) ); } @@ -105,4 +106,15 @@ class FeaturedThemePolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(FeaturedTheme::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(FeaturedTheme::class)); + } } diff --git a/app/Policies/Auth/PermissionPolicy.php b/app/Policies/Auth/PermissionPolicy.php index bcbf6cfab..02e951e3d 100644 --- a/app/Policies/Auth/PermissionPolicy.php +++ b/app/Policies/Auth/PermissionPolicy.php @@ -94,6 +94,17 @@ class PermissionPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Permission::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Permission::class)); + } + /** * Determine whether the user can attach any role to the permission. * diff --git a/app/Policies/Auth/RolePolicy.php b/app/Policies/Auth/RolePolicy.php index 0944f7810..fcf3d49f9 100644 --- a/app/Policies/Auth/RolePolicy.php +++ b/app/Policies/Auth/RolePolicy.php @@ -94,6 +94,17 @@ class RolePolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Role::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Role::class)); + } + /** * Determine whether the user can attach any permission to the role. * diff --git a/app/Policies/Document/PagePolicy.php b/app/Policies/Document/PagePolicy.php index d0bf87850..33bc5de1e 100644 --- a/app/Policies/Document/PagePolicy.php +++ b/app/Policies/Document/PagePolicy.php @@ -103,4 +103,15 @@ class PagePolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Page::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Page::class)); + } } diff --git a/app/Policies/List/Playlist/PlaylistTrackPolicy.php b/app/Policies/List/Playlist/PlaylistTrackPolicy.php index cfc7838c5..ef7356f23 100644 --- a/app/Policies/List/Playlist/PlaylistTrackPolicy.php +++ b/app/Policies/List/Playlist/PlaylistTrackPolicy.php @@ -10,6 +10,7 @@ use App\Enums\Models\List\PlaylistVisibility; use App\Models\Auth\User; use App\Models\List\Playlist; use App\Models\List\Playlist\PlaylistTrack; +use Filament\Facades\Filament; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Http\Request; use Laravel\Nova\Nova; @@ -32,6 +33,8 @@ class PlaylistTrackPolicy return Nova::whenServing( fn (): bool => $user !== null && $user->hasRole('Admin'), function (Request $request) use ($user): bool { + if (Filament::isServing()) return $user !== null && $user->hasRole('Admin'); + /** @var Playlist|null $playlist */ $playlist = $request->route('playlist'); @@ -56,6 +59,8 @@ class PlaylistTrackPolicy return Nova::whenServing( fn (): bool => $user !== null && $user->hasRole('Admin'), function (Request $request) use ($user): bool { + if (Filament::isServing()) return $user !== null && $user->hasRole('Admin'); + /** @var Playlist|null $playlist */ $playlist = $request->route('playlist'); @@ -77,6 +82,8 @@ class PlaylistTrackPolicy return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), function (Request $request) use ($user): bool { + if (Filament::isServing()) return $user !== null && $user->hasRole('Admin'); + /** @var Playlist|null $playlist */ $playlist = $request->route('playlist'); @@ -99,6 +106,8 @@ class PlaylistTrackPolicy return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), function (Request $request) use ($user, $track): bool { + if (Filament::isServing()) return $user !== null && $user->hasRole('Admin'); + /** @var Playlist|null $playlist */ $playlist = $request->route('playlist'); @@ -121,6 +130,8 @@ class PlaylistTrackPolicy return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), function (Request $request) use ($user, $track): bool { + if (Filament::isServing()) return $user !== null && $user->hasRole('Admin'); + /** @var Playlist|null $playlist */ $playlist = $request->route('playlist'); @@ -143,6 +154,8 @@ class PlaylistTrackPolicy return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), function (Request $request) use ($user, $track): bool { + if (Filament::isServing()) return $user !== null && $user->hasRole('Admin'); + /** @var Playlist|null $playlist */ $playlist = $request->route('playlist'); diff --git a/app/Policies/List/PlaylistPolicy.php b/app/Policies/List/PlaylistPolicy.php index 19c50d717..05a1425a7 100644 --- a/app/Policies/List/PlaylistPolicy.php +++ b/app/Policies/List/PlaylistPolicy.php @@ -11,6 +11,7 @@ use App\Models\Auth\User; use App\Models\List\Playlist; use App\Models\Wiki\Image; use App\Pivots\List\PlaylistImage; +use Filament\Facades\Filament; use Illuminate\Auth\Access\HandlesAuthorization; use Laravel\Nova\Nova; @@ -31,7 +32,11 @@ class PlaylistPolicy { return Nova::whenServing( fn (): bool => $user !== null && $user->hasRole('Admin'), - fn (): bool => $user === null || $user->can(CrudPermission::VIEW->format(Playlist::class)) + function () use ($user): bool { + return Filament::isServing() + ? $user !== null && $user->hasRole('Admin') + : $user === null || $user->can(CrudPermission::VIEW->format(Playlist::class)); + } ); } @@ -62,7 +67,11 @@ class PlaylistPolicy { return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), - fn (): bool => $user->can(CrudPermission::CREATE->format(Playlist::class)) + function () use ($user): bool { + return Filament::isServing() + ? $user->hasRole('Admin') + : $user->can(CrudPermission::CREATE->format(Playlist::class)); + } ); } @@ -77,7 +86,11 @@ class PlaylistPolicy { return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), - fn (): bool => ! $playlist->trashed() && $user->getKey() === $playlist->user_id && $user->can(CrudPermission::UPDATE->format(Playlist::class)) + function () use ($user, $playlist): bool { + return Filament::isServing() + ? $user->hasRole('Admin') + : ! $playlist->trashed() && $user->getKey() === $playlist->user_id && $user->can(CrudPermission::UPDATE->format(Playlist::class)); + } ); } @@ -92,7 +105,11 @@ class PlaylistPolicy { return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), - fn (): bool => ! $playlist->trashed() && $user->getKey() === $playlist->user_id && $user->can(CrudPermission::DELETE->format(Playlist::class)) + function () use ($user, $playlist): bool { + return Filament::isServing() + ? $user->hasRole('Admin') + : ! $playlist->trashed() && $user->getKey() === $playlist->user_id && $user->can(CrudPermission::DELETE->format(Playlist::class)); + } ); } @@ -107,7 +124,11 @@ class PlaylistPolicy { return Nova::whenServing( fn (): bool => $user->hasRole('Admin'), - fn (): bool => $playlist->trashed() && $user->getKey() === $playlist->user_id && $user->can(ExtendedCrudPermission::RESTORE->format(Playlist::class)) + function () use ($user, $playlist): bool { + return Filament::isServing() + ? $user->hasRole('Admin') + : $playlist->trashed() && $user->getKey() === $playlist->user_id && $user->can(ExtendedCrudPermission::RESTORE->format(Playlist::class)); + } ); } diff --git a/app/Policies/Wiki/Anime/AnimeSynonymPolicy.php b/app/Policies/Wiki/Anime/AnimeSynonymPolicy.php index 0538355e4..00cab935f 100644 --- a/app/Policies/Wiki/Anime/AnimeSynonymPolicy.php +++ b/app/Policies/Wiki/Anime/AnimeSynonymPolicy.php @@ -103,4 +103,15 @@ class AnimeSynonymPolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(AnimeSynonym::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(AnimeSynonym::class)); + } } diff --git a/app/Policies/Wiki/Anime/AnimeThemePolicy.php b/app/Policies/Wiki/Anime/AnimeThemePolicy.php index 3eabe5ff9..43026c6ba 100644 --- a/app/Policies/Wiki/Anime/AnimeThemePolicy.php +++ b/app/Policies/Wiki/Anime/AnimeThemePolicy.php @@ -103,4 +103,15 @@ class AnimeThemePolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(AnimeTheme::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(AnimeTheme::class)); + } } diff --git a/app/Policies/Wiki/Anime/Theme/AnimeThemeEntryPolicy.php b/app/Policies/Wiki/Anime/Theme/AnimeThemeEntryPolicy.php index 2ba77a2f7..ff258e4cd 100644 --- a/app/Policies/Wiki/Anime/Theme/AnimeThemeEntryPolicy.php +++ b/app/Policies/Wiki/Anime/Theme/AnimeThemeEntryPolicy.php @@ -106,6 +106,17 @@ class AnimeThemeEntryPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(AnimeThemeEntry::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(AnimeThemeEntry::class)); + } + /** * Determine whether the user can attach any video to the entry. * diff --git a/app/Policies/Wiki/AnimePolicy.php b/app/Policies/Wiki/AnimePolicy.php index b9c6b8371..1944be220 100644 --- a/app/Policies/Wiki/AnimePolicy.php +++ b/app/Policies/Wiki/AnimePolicy.php @@ -110,6 +110,17 @@ class AnimePolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Anime::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Anime::class)); + } + /** * Determine whether the user can attach any series to the anime. * diff --git a/app/Policies/Wiki/ArtistPolicy.php b/app/Policies/Wiki/ArtistPolicy.php index 4c2e3b2d8..5b3be673b 100644 --- a/app/Policies/Wiki/ArtistPolicy.php +++ b/app/Policies/Wiki/ArtistPolicy.php @@ -106,6 +106,17 @@ class ArtistPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Artist::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Artist::class)); + } + /** * Determine whether the user can attach any resource to the artist. * diff --git a/app/Policies/Wiki/AudioPolicy.php b/app/Policies/Wiki/AudioPolicy.php index 8e765d3c4..787495ce6 100644 --- a/app/Policies/Wiki/AudioPolicy.php +++ b/app/Policies/Wiki/AudioPolicy.php @@ -104,6 +104,17 @@ class AudioPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Audio::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Audio::class)); + } + /** * Determine whether the user can add a video to the audio. * diff --git a/app/Policies/Wiki/ExternalResourcePolicy.php b/app/Policies/Wiki/ExternalResourcePolicy.php index ed2c7f6ca..bdd0f2743 100644 --- a/app/Policies/Wiki/ExternalResourcePolicy.php +++ b/app/Policies/Wiki/ExternalResourcePolicy.php @@ -104,6 +104,17 @@ class ExternalResourcePolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(ExternalResource::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(ExternalResource::class)); + } + /** * Determine whether the user can attach any artist to the resource. * diff --git a/app/Policies/Wiki/ImagePolicy.php b/app/Policies/Wiki/ImagePolicy.php index 5971c3fe7..45b13ff58 100644 --- a/app/Policies/Wiki/ImagePolicy.php +++ b/app/Policies/Wiki/ImagePolicy.php @@ -112,6 +112,17 @@ class ImagePolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Image::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Image::class)); + } + /** * Determine whether the user can attach any artist to the image. * diff --git a/app/Policies/Wiki/SeriesPolicy.php b/app/Policies/Wiki/SeriesPolicy.php index eb46d0ab2..70196fc31 100644 --- a/app/Policies/Wiki/SeriesPolicy.php +++ b/app/Policies/Wiki/SeriesPolicy.php @@ -106,6 +106,17 @@ class SeriesPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Series::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Series::class)); + } + /** * Determine whether the user can attach any anime to the series. * diff --git a/app/Policies/Wiki/SongPolicy.php b/app/Policies/Wiki/SongPolicy.php index 0bc449d61..b2cc1f30f 100644 --- a/app/Policies/Wiki/SongPolicy.php +++ b/app/Policies/Wiki/SongPolicy.php @@ -104,6 +104,17 @@ class SongPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Song::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Song::class)); + } + /** * Determine whether the user can add a theme to the song. * diff --git a/app/Policies/Wiki/StudioPolicy.php b/app/Policies/Wiki/StudioPolicy.php index ae407aa17..ddc01eff9 100644 --- a/app/Policies/Wiki/StudioPolicy.php +++ b/app/Policies/Wiki/StudioPolicy.php @@ -108,6 +108,17 @@ class StudioPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Studio::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Studio::class)); + } + /** * Determine whether the user can attach any anime to the studio. * diff --git a/app/Policies/Wiki/Video/VideoScriptPolicy.php b/app/Policies/Wiki/Video/VideoScriptPolicy.php index 615cb8b3f..6adba2b77 100644 --- a/app/Policies/Wiki/Video/VideoScriptPolicy.php +++ b/app/Policies/Wiki/Video/VideoScriptPolicy.php @@ -103,4 +103,15 @@ class VideoScriptPolicy { return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(VideoScript::class)); } + + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(VideoScript::class)); + } } diff --git a/app/Policies/Wiki/VideoPolicy.php b/app/Policies/Wiki/VideoPolicy.php index 870a15efc..a5277d87c 100644 --- a/app/Policies/Wiki/VideoPolicy.php +++ b/app/Policies/Wiki/VideoPolicy.php @@ -104,6 +104,17 @@ class VideoPolicy return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Video::class)); } + /** + * Determine whether the user can permanently delete any model. + * + * @param User $user + * @return bool + */ + public function forceDeleteAny(User $user): bool + { + return $user->can(ExtendedCrudPermission::FORCE_DELETE->format(Video::class)); + } + /** * Determine whether the user can attach any entry to a video. * diff --git a/app/Providers/FilamentPanelProvider.php b/app/Providers/FilamentPanelProvider.php new file mode 100644 index 000000000..d92d31b67 --- /dev/null +++ b/app/Providers/FilamentPanelProvider.php @@ -0,0 +1,62 @@ +default() + ->id(Config::get('filament.path')) + ->path(Config::get('filament.path')) + ->domain(Config::get('filament.domain')) + ->login() + ->globalSearch(GlobalSearchScoutProvider::class) + ->databaseNotifications() + ->sidebarCollapsibleOnDesktop() + ->profile() + ->colors([ + 'primary' => Color::Amber, + ]) + ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') + ->discoverPages(in: app_path('Filament/Dashboards'), for: 'App\\Filament\\Dashboards') + ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets') + ->plugins([ + FilamentApexChartsPlugin::make(), + ]) + ->middleware([ + EncryptCookies::class, + AddQueuedCookiesToResponse::class, + StartSession::class, + AuthenticateSession::class, + ShareErrorsFromSession::class, + VerifyCsrfToken::class, + SubstituteBindings::class, + DisableBladeIconComponents::class, + DispatchServingFilamentEvent::class, + ]) + ->authMiddleware([ + Authenticate::class, + ]); + } +} diff --git a/app/Rules/Wiki/Submission/SubmissionRule.php b/app/Rules/Wiki/Submission/SubmissionRule.php index 47b30b930..a8658114d 100644 --- a/app/Rules/Wiki/Submission/SubmissionRule.php +++ b/app/Rules/Wiki/Submission/SubmissionRule.php @@ -22,7 +22,7 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule * * @var array */ - public static array $ffprobeData; + public static array $ffprobeData = []; /** * The loudness stats of the input file as parsed by the ffmpeg audio filter. @@ -39,22 +39,43 @@ abstract class SubmissionRule implements ValidationRule, ValidatorAwareRule */ public function setValidator(Validator $validator): self { - /** @var UploadedFile|null $file */ - $file = Arr::get($validator->getData(), 'file'); + /** @var UploadedFile|array $files */ + $files = Arr::get($validator->getData(), 'file'); - $ffprobeData = Arr::get($validator->getData(), 'ffprobeData'); - if ($ffprobeData === null && $file !== null) { - $ffprobeData = $this->getFFprobeData($file); - $validator->setValue('ffprobeData', $ffprobeData); - } - static::$ffprobeData = $ffprobeData; + // Nova + if ($files instanceof UploadedFile) { + $ffprobeData = Arr::get($validator->getData(), 'ffprobeData'); + if ($ffprobeData === null && $files !== null) { + $ffprobeData = $this->getFFprobeData($files); + $validator->setValue('ffprobeData', $ffprobeData); + } + static::$ffprobeData = $ffprobeData; - $loudnessStats = Arr::get($validator->getData(), 'loudnessStats'); - if ($loudnessStats === null && $file !== null) { - $loudnessStats = $this->getLoudnessStats($file); - $validator->setValue('loudnessStats', $loudnessStats); + $loudnessStats = Arr::get($validator->getData(), 'loudnessStats'); + if ($loudnessStats === null && $files !== null) { + $loudnessStats = $this->getLoudnessStats($files); + $validator->setValue('loudnessStats', $loudnessStats); + } + $this->loudnessStats = $loudnessStats; + } else { // Filament + foreach ($files as $file) { + /** @var UploadedFile $file*/ + + $ffprobeData = Arr::get($validator->getData(), 'ffprobeData'); + if ($ffprobeData === null && $file !== null) { + $ffprobeData = $this->getFFprobeData($file); + $validator->setValue('ffprobeData', $ffprobeData); + } + static::$ffprobeData = $ffprobeData; + + $loudnessStats = Arr::get($validator->getData(), 'loudnessStats'); + if ($loudnessStats === null && $file !== null) { + $loudnessStats = $this->getLoudnessStats($file); + $validator->setValue('loudnessStats', $loudnessStats); + } + $this->loudnessStats = $loudnessStats; + } } - $this->loudnessStats = $loudnessStats; return $this; } diff --git a/composer.json b/composer.json index e8b7832ad..1e0a1aaf9 100644 --- a/composer.json +++ b/composer.json @@ -29,6 +29,9 @@ "bepsvpt/secure-headers": "^7.4", "cyrildewit/eloquent-viewable": "^7.0", "fakerphp/faker": "^1.21", + "filament/filament": "3.2", + "filament/forms": "3.2", + "flowframe/laravel-trend": "*", "guzzlehttp/guzzle": "^7.5", "laravel-notification-channels/discord": "^1.4", "laravel/fortify": "^1.16", @@ -41,6 +44,7 @@ "laravel/telescope": "^4.12", "laravel/tinker": "^2.8", "league/flysystem-aws-s3-v3": "^3.0", + "leandrocfe/filament-apex-charts": "3.1", "propaganistas/laravel-disposable-email": "^2.2", "spatie/db-dumper": "^3.1.1", "spatie/laravel-permission": "^5.8", @@ -95,7 +99,8 @@ "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi" + "@php artisan package:discover --ansi", + "@php artisan filament:upgrade" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" diff --git a/composer.lock b/composer.lock index 258718696..fba63c09c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,74 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dfa287f156f616dad184bfc915642153", + "content-hash": "ceb52a17efa10f4ca74b636ab69ea8ec", "packages": [ + { + "name": "anourvalar/eloquent-serialize", + "version": "1.2.22", + "source": { + "type": "git", + "url": "https://github.com/AnourValar/eloquent-serialize.git", + "reference": "6e91093c10940859c4b0549b6a90f18d8db45998" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/6e91093c10940859c4b0549b6a90f18d8db45998", + "reference": "6e91093c10940859c4b0549b6a90f18d8db45998", + "shasum": "" + }, + "require": { + "laravel/framework": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.26", + "laravel/legacy-factories": "^1.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5|^10.5", + "psalm/plugin-laravel": "^2.8", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "EloquentSerialize": "AnourValar\\EloquentSerialize\\Facades\\EloquentSerializeFacade" + } + } + }, + "autoload": { + "psr-4": { + "AnourValar\\EloquentSerialize\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Laravel Query Builder (Eloquent) serialization", + "homepage": "https://github.com/AnourValar/eloquent-serialize", + "keywords": [ + "anourvalar", + "builder", + "copy", + "eloquent", + "job", + "laravel", + "query", + "querybuilder", + "queue", + "serializable", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/AnourValar/eloquent-serialize/issues", + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.22" + }, + "time": "2024-03-22T12:56:46+00:00" + }, { "name": "aws/aws-crt-php", "version": "v1.2.1", @@ -649,6 +715,156 @@ ], "time": "2023-02-06T13:24:48+00:00" }, + { + "name": "blade-ui-kit/blade-heroicons", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-heroicons.git", + "reference": "a265dbcf2a098121aad05752d0bba9f59022e4ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-heroicons/zipball/a265dbcf2a098121aad05752d0bba9f59022e4ba", + "reference": "a265dbcf2a098121aad05752d0bba9f59022e4ba", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-icons": "^1.6", + "illuminate/support": "^9.0|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Heroicons\\BladeHeroiconsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "BladeUI\\Heroicons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of Heroicons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-heroicons", + "keywords": [ + "Heroicons", + "blade", + "laravel" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-heroicons/issues", + "source": "https://github.com/blade-ui-kit/blade-heroicons/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/driesvints", + "type": "github" + }, + { + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" + } + ], + "time": "2024-02-07T16:33:46+00:00" + }, + { + "name": "blade-ui-kit/blade-icons", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/blade-ui-kit/blade-icons.git", + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/89660d93f9897d231e9113ba203cd17f4c5efade", + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0", + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "bin": [ + "bin/blade-icons-generate" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Icons\\BladeIconsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "BladeUI\\Icons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of icons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-icons", + "keywords": [ + "blade", + "icons", + "laravel", + "svg" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-icons/issues", + "source": "https://github.com/blade-ui-kit/blade-icons" + }, + "funding": [ + { + "url": "https://github.com/sponsors/driesvints", + "type": "github" + }, + { + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" + } + ], + "time": "2024-02-07T16:09:20+00:00" + }, { "name": "brick/math", "version": "0.11.0", @@ -762,6 +978,75 @@ ], "time": "2023-01-15T23:59:01+00:00" }, + { + "name": "carbonphp/carbon-doctrine-types", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "doctrine/dbal": "<3.7.0 || >=4.0.0" + }, + "require-dev": { + "doctrine/dbal": "^3.7.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2023-12-11T17:09:12+00:00" + }, { "name": "cyrildewit/eloquent-viewable", "version": "v7.0.1", @@ -840,6 +1125,111 @@ }, "time": "2023-04-14T12:04:10+00:00" }, + { + "name": "danharrin/date-format-converter", + "version": "v0.3.0", + "source": { + "type": "git", + "url": "https://github.com/danharrin/date-format-converter.git", + "reference": "42b6ddc52059d4ba228a67c15adaaa0c039e75f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danharrin/date-format-converter/zipball/42b6ddc52059d4ba228a67c15adaaa0c039e75f2", + "reference": "42b6ddc52059d4ba228a67c15adaaa0c039e75f2", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/helpers.php", + "src/standards.php" + ], + "psr-4": { + "DanHarrin\\DateFormatConverter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dan Harrin", + "email": "dan@danharrin.com" + } + ], + "description": "Convert token-based date formats between standards.", + "homepage": "https://github.com/danharrin/date-format-converter", + "support": { + "issues": "https://github.com/danharrin/date-format-converter/issues", + "source": "https://github.com/danharrin/date-format-converter" + }, + "funding": [ + { + "url": "https://github.com/danharrin", + "type": "github" + } + ], + "time": "2022-09-29T07:48:20+00:00" + }, + { + "name": "danharrin/livewire-rate-limiting", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/danharrin/livewire-rate-limiting.git", + "reference": "bf16003f0d977b5a41071526d697eec94ac41735" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bf16003f0d977b5a41071526d697eec94ac41735", + "reference": "bf16003f0d977b5a41071526d697eec94ac41735", + "shasum": "" + }, + "require": { + "illuminate/support": "^9.0|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "livewire/livewire": "^3.0", + "livewire/volt": "^1.3", + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DanHarrin\\LivewireRateLimiting\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dan Harrin", + "email": "dan@danharrin.com" + } + ], + "description": "Apply rate limiters to Laravel Livewire actions.", + "homepage": "https://github.com/danharrin/livewire-rate-limiting", + "support": { + "issues": "https://github.com/danharrin/livewire-rate-limiting/issues", + "source": "https://github.com/danharrin/livewire-rate-limiting" + }, + "funding": [ + { + "url": "https://github.com/danharrin", + "type": "github" + } + ], + "time": "2024-01-21T14:53:34+00:00" + }, { "name": "dasprid/enum", "version": "1.0.4", @@ -1060,16 +1450,16 @@ }, { "name": "doctrine/dbal", - "version": "3.6.3", + "version": "3.8.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "9a747d29e7e6b39509b8f1847e37a23a0163ea6a" + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/9a747d29e7e6b39509b8f1847e37a23a0163ea6a", - "reference": "9a747d29e7e6b39509b8f1847e37a23a0163ea6a", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/db922ba9436b7b18a23d1653a0b41ff2369ca41c", + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c", "shasum": "" }, "require": { @@ -1084,14 +1474,15 @@ "require-dev": { "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2022.3", - "phpstan/phpstan": "1.10.14", + "jetbrains/phpstorm-stubs": "2023.1", + "phpstan/phpstan": "1.10.58", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.7", + "phpunit/phpunit": "9.6.16", "psalm/plugin-phpunit": "0.18.4", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.9.0", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" }, "suggest": { @@ -1152,7 +1543,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.6.3" + "source": "https://github.com/doctrine/dbal/tree/3.8.3" }, "funding": [ { @@ -1168,20 +1559,20 @@ "type": "tidelift" } ], - "time": "2023-06-01T05:46:46+00:00" + "time": "2024-03-03T15:55:06+00:00" }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { @@ -1213,9 +1604,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { "name": "doctrine/event-manager", @@ -1310,28 +1701,28 @@ }, { "name": "doctrine/inflector", - "version": "2.0.6", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^10", + "doctrine/coding-standard": "^11.0", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-strict-rules": "^1.3", "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25" + "vimeo/psalm": "^4.25 || ^5.4" }, "type": "library", "autoload": { @@ -1381,7 +1772,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.6" + "source": "https://github.com/doctrine/inflector/tree/2.0.10" }, "funding": [ { @@ -1397,31 +1788,31 @@ "type": "tidelift" } ], - "time": "2022-10-20T09:10:12+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "name": "doctrine/lexer", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "84a527db05647743d50373e0ec53a152f2cde568" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", - "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -1458,7 +1849,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -1474,20 +1865,20 @@ "type": "tidelift" } ], - "time": "2022-12-15T16:57:16+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", "shasum": "" }, "require": { @@ -1527,7 +1918,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" }, "funding": [ { @@ -1535,20 +1926,20 @@ "type": "github" } ], - "time": "2022-09-10T18:51:20+00:00" + "time": "2023-08-10T19:36:49+00:00" }, { "name": "egulias/email-validator", - "version": "4.0.1", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff" + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff", - "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { @@ -1557,8 +1948,8 @@ "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^4.30" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1594,7 +1985,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.1" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" }, "funding": [ { @@ -1602,7 +1993,7 @@ "type": "github" } ], - "time": "2023-01-14T14:17:03+00:00" + "time": "2023-10-06T06:47:41+00:00" }, { "name": "elastic/transport", @@ -1777,22 +2168,527 @@ "time": "2023-05-14T12:31:37+00:00" }, { - "name": "fruitcake/php-cors", - "version": "v1.2.0", + "name": "filament/actions", + "version": "v3.2.0", "source": { "type": "git", - "url": "https://github.com/fruitcake/php-cors.git", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + "url": "https://github.com/filamentphp/actions.git", + "reference": "200073b0377a965ac55f1cf168829ab2751b8710" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", - "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/200073b0377a965ac55f1cf168829ab2751b8710", + "reference": "200073b0377a965ac55f1cf168829ab2751b8710", + "shasum": "" + }, + "require": { + "anourvalar/eloquent-serialize": "^1.2", + "filament/forms": "self.version", + "filament/infolists": "self.version", + "filament/notifications": "self.version", + "filament/support": "self.version", + "illuminate/contracts": "^10.0", + "illuminate/database": "^10.0", + "illuminate/support": "^10.0", + "league/csv": "9.11.0", + "openspout/openspout": "^4.23", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Actions\\ActionsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Actions\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful action modals to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:08+00:00" + }, + { + "name": "filament/filament", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/panels.git", + "reference": "107113f83e044deee8632e3c5f18c0d5fdb9cd10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/107113f83e044deee8632e3c5f18c0d5fdb9cd10", + "reference": "107113f83e044deee8632e3c5f18c0d5fdb9cd10", + "shasum": "" + }, + "require": { + "danharrin/livewire-rate-limiting": "^0.3|^1.0", + "filament/actions": "self.version", + "filament/forms": "self.version", + "filament/infolists": "self.version", + "filament/notifications": "self.version", + "filament/support": "self.version", + "filament/tables": "self.version", + "filament/widgets": "self.version", + "illuminate/auth": "^10.0", + "illuminate/console": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/cookie": "^10.0", + "illuminate/database": "^10.0", + "illuminate/http": "^10.0", + "illuminate/routing": "^10.0", + "illuminate/session": "^10.0", + "illuminate/support": "^10.0", + "illuminate/view": "^10.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\FilamentServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/global_helpers.php", + "src/helpers.php" + ], + "psr-4": { + "Filament\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A collection of full-stack components for accelerated Laravel app development.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:12+00:00" + }, + { + "name": "filament/forms", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/forms.git", + "reference": "cd00ace2061457c035a1740dcb04125d57696266" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/cd00ace2061457c035a1740dcb04125d57696266", + "reference": "cd00ace2061457c035a1740dcb04125d57696266", + "shasum": "" + }, + "require": { + "danharrin/date-format-converter": "^0.3", + "filament/actions": "self.version", + "filament/support": "self.version", + "illuminate/console": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/database": "^10.0", + "illuminate/filesystem": "^10.0", + "illuminate/support": "^10.0", + "illuminate/validation": "^10.0", + "illuminate/view": "^10.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Forms\\FormsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Filament\\Forms\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful forms to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:11+00:00" + }, + { + "name": "filament/infolists", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/infolists.git", + "reference": "fc299719a62a0ad3203f6d77a2b8de75bbd317c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/fc299719a62a0ad3203f6d77a2b8de75bbd317c2", + "reference": "fc299719a62a0ad3203f6d77a2b8de75bbd317c2", + "shasum": "" + }, + "require": { + "filament/actions": "self.version", + "filament/support": "self.version", + "illuminate/console": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/database": "^10.0", + "illuminate/filesystem": "^10.0", + "illuminate/support": "^10.0", + "illuminate/view": "^10.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Infolists\\InfolistsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Infolists\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful read-only infolists to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:07+00:00" + }, + { + "name": "filament/notifications", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/notifications.git", + "reference": "eaf2eccd085fa1fc67d0f13c99ae32da8d3ab93c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/eaf2eccd085fa1fc67d0f13c99ae32da8d3ab93c", + "reference": "eaf2eccd085fa1fc67d0f13c99ae32da8d3ab93c", + "shasum": "" + }, + "require": { + "filament/actions": "self.version", + "filament/support": "self.version", + "illuminate/contracts": "^10.0", + "illuminate/filesystem": "^10.0", + "illuminate/notifications": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Notifications\\NotificationsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Testing/Autoload.php" + ], + "psr-4": { + "Filament\\Notifications\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful notifications to any Livewire app.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:21+00:00" + }, + { + "name": "filament/support", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/support.git", + "reference": "cf74fe9e49042cc269cfdc3941aa9c9435f955e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/support/zipball/cf74fe9e49042cc269cfdc3941aa9c9435f955e0", + "reference": "cf74fe9e49042cc269cfdc3941aa9c9435f955e0", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-heroicons": "^2.2.1", + "doctrine/dbal": "^3.2", + "ext-intl": "*", + "illuminate/contracts": "^10.0", + "illuminate/support": "^10.0", + "illuminate/view": "^10.0", + "livewire/livewire": "^3.2.3", + "php": "^8.1", + "ryangjchandler/blade-capture-directive": "^0.2|^0.3", + "spatie/color": "^1.5", + "spatie/invade": "^1.0|^2.0", + "spatie/laravel-package-tools": "^1.9", + "symfony/html-sanitizer": "^6.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Support\\SupportServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Filament\\Support\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Core helper methods and foundation code for all Filament packages.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:07+00:00" + }, + { + "name": "filament/tables", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/tables.git", + "reference": "c25a46ba298187adf9438520658f35026611d9b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/c25a46ba298187adf9438520658f35026611d9b4", + "reference": "c25a46ba298187adf9438520658f35026611d9b4", + "shasum": "" + }, + "require": { + "filament/actions": "self.version", + "filament/forms": "self.version", + "filament/support": "self.version", + "illuminate/console": "^10.0", + "illuminate/contracts": "^10.0", + "illuminate/database": "^10.0", + "illuminate/filesystem": "^10.0", + "illuminate/support": "^10.0", + "illuminate/view": "^10.0", + "kirschbaum-development/eloquent-power-joins": "^3.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Tables\\TablesServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Tables\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful tables to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-15T12:25:09+00:00" + }, + { + "name": "filament/widgets", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/widgets.git", + "reference": "d9baa132c89f58f537b41cdfb319cc90d8a21e34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/d9baa132c89f58f537b41cdfb319cc90d8a21e34", + "reference": "d9baa132c89f58f537b41cdfb319cc90d8a21e34", + "shasum": "" + }, + "require": { + "filament/support": "self.version", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Widgets\\WidgetsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Widgets\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful dashboard widgets to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2024-01-02T23:08:01+00:00" + }, + { + "name": "flowframe/laravel-trend", + "version": "v0.2.0", + "source": { + "type": "git", + "url": "https://github.com/Flowframe/laravel-trend.git", + "reference": "bae1232325a59a7c9e99a372c80afab82309503b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Flowframe/laravel-trend/zipball/bae1232325a59a7c9e99a372c80afab82309503b", + "reference": "bae1232325a59a7c9e99a372c80afab82309503b", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.37|^9|^10.0|^11.0", + "php": "^8.2", + "spatie/laravel-package-tools": "^1.4.3" + }, + "require-dev": { + "nunomaduro/collision": "^5.3|^6.1|^8.0", + "orchestra/testbench": "^6.15|^7.0|^8.0|^9.0", + "pestphp/pest": "^1.18|^2.34", + "pestphp/pest-plugin-laravel": "^1.1|^2.3", + "spatie/laravel-ray": "^1.23", + "vimeo/psalm": "^4.8|^5.6" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Flowframe\\Trend\\TrendServiceProvider" + ], + "aliases": { + "Trend": "Flowframe\\Trend\\TrendFacade" + } + } + }, + "autoload": { + "psr-4": { + "Flowframe\\Trend\\": "src", + "Flowframe\\Trend\\Database\\Factories\\": "database/factories" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Klopstra", + "email": "lars@flowframe.nl", + "role": "Developer" + } + ], + "description": "Easily generate model trends", + "homepage": "https://github.com/flowframe/laravel-trend", + "keywords": [ + "Flowframe", + "laravel", + "laravel-trend" + ], + "support": { + "issues": "https://github.com/Flowframe/laravel-trend/issues", + "source": "https://github.com/Flowframe/laravel-trend/tree/v0.2.0" + }, + "funding": [ + { + "url": "https://github.com/larsklopstra", + "type": "github" + } + ], + "time": "2024-03-14T13:45:40+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6" + "symfony/http-foundation": "^4.4|^5.4|^6|^7" }, "require-dev": { "phpstan/phpstan": "^1.4", @@ -1802,7 +2698,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -1833,7 +2729,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" }, "funding": [ { @@ -1845,7 +2741,7 @@ "type": "github" } ], - "time": "2022-02-20T15:07:15+00:00" + "time": "2023-10-12T05:21:21+00:00" }, { "name": "graham-campbell/manager", @@ -1919,24 +2815,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.1", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831" + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", - "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.1" + "phpoption/phpoption": "^1.9.2" }, "require-dev": { - "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "autoload": { @@ -1965,7 +2861,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" }, "funding": [ { @@ -1977,26 +2873,26 @@ "type": "tidelift" } ], - "time": "2023-02-25T20:23:15+00:00" + "time": "2023-11-12T22:16:48+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.7.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -2005,11 +2901,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -2087,7 +2983,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.7.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -2103,7 +2999,7 @@ "type": "tidelift" } ], - "time": "2023-05-21T14:04:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", @@ -2186,16 +3082,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.5.0", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { @@ -2209,9 +3105,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -2282,7 +3178,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { @@ -2298,34 +3194,36 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:11:26+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.1", + "version": "v1.0.3", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2" + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2", - "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "symfony/polyfill-php80": "^1.17" + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "phpunit/phpunit": "^8.5.19 || ^9.5.8", + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "uri-template/tests": "1.0.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { @@ -2366,7 +3264,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.1" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" }, "funding": [ { @@ -2382,7 +3280,7 @@ "type": "tidelift" } ], - "time": "2021-10-07T12:57:01+00:00" + "time": "2023-12-03T19:50:20+00:00" }, { "name": "hashids/hashids", @@ -2577,6 +3475,68 @@ }, "time": "2023-06-05T21:32:18+00:00" }, + { + "name": "kirschbaum-development/eloquent-power-joins", + "version": "3.5.5", + "source": { + "type": "git", + "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", + "reference": "ed5af4788f0dad3ce35bb883cecac4293496139a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/ed5af4788f0dad3ce35bb883cecac4293496139a", + "reference": "ed5af4788f0dad3ce35bb883cecac4293496139a", + "shasum": "" + }, + "require": { + "illuminate/database": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "laravel/legacy-factories": "^1.0@dev", + "orchestra/testbench": "^4.0|^5.0|^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^8.0|^9.0|^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Kirschbaum\\PowerJoins\\PowerJoinsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kirschbaum\\PowerJoins\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Luis Dalmolin", + "email": "luis.nh@gmail.com", + "role": "Developer" + } + ], + "description": "The Laravel magic applied to joins.", + "homepage": "https://github.com/kirschbaum-development/eloquent-power-joins", + "keywords": [ + "eloquent", + "join", + "laravel", + "mysql" + ], + "support": { + "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/3.5.5" + }, + "time": "2024-03-27T11:14:14+00:00" + }, { "name": "laravel-notification-channels/discord", "version": "v1.5.0", @@ -2711,20 +3671,20 @@ }, { "name": "laravel/framework", - "version": "v10.13.5", + "version": "v10.48.4", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "03106ae9ba2ec4b36dc973b7bdca6fad81e032b4" + "reference": "7e0701bf59cb76a51f7c1f7bea51c0c0c29c0b72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/03106ae9ba2ec4b36dc973b7bdca6fad81e032b4", - "reference": "03106ae9ba2ec4b36dc973b7bdca6fad81e032b4", + "url": "https://api.github.com/repos/laravel/framework/zipball/7e0701bf59cb76a51f7c1f7bea51c0c0c29c0b72", + "reference": "7e0701bf59cb76a51f7c1f7bea51c0c0c29c0b72", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11", + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.3.2", @@ -2738,11 +3698,12 @@ "ext-tokenizer": "*", "fruitcake/php-cors": "^1.2", "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1.9", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.62.1", + "nesbot/carbon": "^2.67", "nunomaduro/termwind": "^1.13", "php": "^8.1", "psr/container": "^1.1.1|^2.0.1", @@ -2752,7 +3713,7 @@ "symfony/console": "^6.2", "symfony/error-handler": "^6.2", "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.2", + "symfony/http-foundation": "^6.4", "symfony/http-kernel": "^6.2", "symfony/mailer": "^6.2", "symfony/mime": "^6.2", @@ -2765,6 +3726,10 @@ "voku/portable-ascii": "^2.0" }, "conflict": { + "carbonphp/carbon-doctrine-types": ">=3.0", + "doctrine/dbal": ">=4.0", + "mockery/mockery": "1.6.8", + "phpunit/phpunit": ">=11.0.0", "tightenco/collect": "<5.5.33" }, "provide": { @@ -2819,14 +3784,15 @@ "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", - "orchestra/testbench-core": "^8.4", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.23.4", "pda/pheanstalk": "^4.0", - "phpstan/phpdoc-parser": "^1.15", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", "predis/predis": "^2.0.2", "symfony/cache": "^6.2", - "symfony/http-client": "^6.2.4" + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -2875,6 +3841,7 @@ "files": [ "src/Illuminate/Collections/helpers.php", "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Support/helpers.php" ], @@ -2907,7 +3874,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-06-08T20:25:36+00:00" + "time": "2024-03-21T13:36:36+00:00" }, { "name": "laravel/horizon", @@ -3177,6 +4144,63 @@ }, "time": "2023-05-17T12:47:45+00:00" }, + { + "name": "laravel/prompts", + "version": "v0.1.17", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", + "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/collections": "^10.0|^11.0", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.1.17" + }, + "time": "2024-03-13T16:05:43+00:00" + }, { "name": "laravel/sanctum", "version": "v3.2.5", @@ -3320,16 +4344,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.3.0", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37" + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", - "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, "require": { @@ -3376,7 +4400,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-01-30T18:31:20+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { "name": "laravel/telescope", @@ -3581,16 +4605,16 @@ }, { "name": "league/commonmark", - "version": "2.4.0", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048" + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048", - "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "shasum": "" }, "require": { @@ -3603,7 +4627,7 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", + "commonmark/cmark": "0.30.3", "commonmark/commonmark.js": "0.30.0", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", @@ -3613,10 +4637,10 @@ "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0" }, @@ -3683,7 +4707,7 @@ "type": "tidelift" } ], - "time": "2023-03-24T15:16:10+00:00" + "time": "2024-02-02T11:59:32+00:00" }, { "name": "league/config", @@ -3768,17 +4792,105 @@ "time": "2022-12-11T20:36:23+00:00" }, { - "name": "league/flysystem", - "version": "3.15.1", + "name": "league/csv", + "version": "9.11.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "a141d430414fcb8bf797a18716b09f759a385bed" + "url": "https://github.com/thephpleague/csv.git", + "reference": "33149c4bea4949aa4fa3d03fb11ed28682168b39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed", - "reference": "a141d430414fcb8bf797a18716b09f759a385bed", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/33149c4bea4949aa4fa3d03fb11ed28682168b39", + "reference": "33149c4bea4949aa4fa3d03fb11ed28682168b39", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.1.2" + }, + "require-dev": { + "doctrine/collections": "^2.1.3", + "ext-dom": "*", + "ext-xdebug": "*", + "friendsofphp/php-cs-fixer": "^v3.22.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/phpstan": "^1.10.26", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.13", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^10.3.1", + "symfony/var-dumper": "^6.3.3" + }, + "suggest": { + "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", + "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "League\\Csv\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://github.com/nyamsprod/", + "role": "Developer" + } + ], + "description": "CSV data manipulation made easy in PHP", + "homepage": "https://csv.thephpleague.com", + "keywords": [ + "convert", + "csv", + "export", + "filter", + "import", + "read", + "transform", + "write" + ], + "support": { + "docs": "https://csv.thephpleague.com", + "issues": "https://github.com/thephpleague/csv/issues", + "rss": "https://github.com/thephpleague/csv/releases.atom", + "source": "https://github.com/thephpleague/csv" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2023-09-23T10:09:54+00:00" + }, + { + "name": "league/flysystem", + "version": "3.26.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "072735c56cc0da00e10716dd90d5a7f7b40b36be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/072735c56cc0da00e10716dd90d5a7f7b40b36be", + "reference": "072735c56cc0da00e10716dd90d5a7f7b40b36be", "shasum": "" }, "require": { @@ -3787,6 +4899,8 @@ "php": "^8.0.2" }, "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", "aws/aws-sdk-php": "3.209.31 || 3.210.0", "guzzlehttp/guzzle": "<7.0", "guzzlehttp/ringphp": "<1.1.1", @@ -3794,9 +4908,9 @@ "symfony/http-client": "<5.2" }, "require-dev": { - "async-aws/s3": "^1.5", - "async-aws/simple-s3": "^1.1", - "aws/aws-sdk-php": "^3.220.0", + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", @@ -3804,10 +4918,10 @@ "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.14", - "phpstan/phpstan": "^0.12.26", - "phpunit/phpunit": "^9.5.11", - "sabre/dav": "^4.3.1" + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" }, "type": "library", "autoload": { @@ -3841,7 +4955,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.15.1" + "source": "https://github.com/thephpleague/flysystem/tree/3.26.0" }, "funding": [ { @@ -3853,7 +4967,7 @@ "type": "github" } ], - "time": "2023-05-04T09:04:26+00:00" + "time": "2024-03-25T11:49:53+00:00" }, { "name": "league/flysystem-aws-s3-v3", @@ -3923,16 +5037,16 @@ }, { "name": "league/flysystem-local", - "version": "3.15.0", + "version": "3.25.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3" + "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3", - "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92", + "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92", "shasum": "" }, "require": { @@ -3966,8 +5080,7 @@ "local" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.25.1" }, "funding": [ { @@ -3979,30 +5092,30 @@ "type": "github" } ], - "time": "2023-05-02T20:02:14+00:00" + "time": "2024-03-15T19:58:44+00:00" }, { "name": "league/mime-type-detection", - "version": "1.11.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -4023,7 +5136,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, "funding": [ { @@ -4035,20 +5148,411 @@ "type": "tidelift" } ], - "time": "2022-04-17T13:12:02+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { - "name": "monolog/monolog", - "version": "3.3.1", + "name": "league/uri", + "version": "7.4.1", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "9b5daeaffce5b926cac47923798bba91059e60e2" + "url": "https://github.com/thephpleague/uri.git", + "reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/9b5daeaffce5b926cac47923798bba91059e60e2", - "reference": "9b5daeaffce5b926cac47923798bba91059e60e2", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/bedb6e55eff0c933668addaa7efa1e1f2c417cc4", + "reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4", + "shasum": "" + }, + "require": { + "league/uri-interfaces": "^7.3", + "php": "^8.1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.4.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-03-23T07:42:40+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "7.4.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "8d43ef5c841032c87e2de015972c06f3865ef718" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/8d43ef5c841032c87e2de015972c06f3865ef718", + "reference": "8d43ef5c841032c87e2de015972c06f3865ef718", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1", + "psr/http-factory": "^1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interfaces and classes for URI representation and interaction", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.4.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-03-23T07:42:40+00:00" + }, + { + "name": "leandrocfe/filament-apex-charts", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/leandrocfe/filament-apex-charts.git", + "reference": "462df9378572e02d117c6ddef051921789e1f94d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/leandrocfe/filament-apex-charts/zipball/462df9378572e02d117c6ddef051921789e1f94d", + "reference": "462df9378572e02d117c6ddef051921789e1f94d", + "shasum": "" + }, + "require": { + "filament/filament": "^3.0@beta", + "illuminate/contracts": "^9.0|^10.0", + "livewire/livewire": "^3.0@beta", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.13.0" + }, + "require-dev": { + "larastan/larastan": "^2.0.1", + "laravel/pint": "^1.0", + "nunomaduro/collision": "^6.0|^7.0", + "orchestra/testbench": "8.14", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5|^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Leandrocfe\\FilamentApexCharts\\FilamentApexChartsServiceProvider" + ], + "aliases": { + "FilamentApexCharts": "Leandrocfe\\FilamentApexCharts\\Facades\\FilamentApexCharts" + } + } + }, + "autoload": { + "psr-4": { + "Leandrocfe\\FilamentApexCharts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Leandro Costa Ferreira", + "email": "leandrocfe@gmail.com", + "role": "Developer" + } + ], + "description": "Apex Charts integration for Filament PHP.", + "homepage": "https://github.com/leandrocfe/filament-apex-charts", + "keywords": [ + "apexcharts", + "filament-apex-charts", + "laravel", + "leandrocfe" + ], + "support": { + "issues": "https://github.com/leandrocfe/filament-apex-charts/issues", + "source": "https://github.com/leandrocfe/filament-apex-charts/tree/3.1.0" + }, + "time": "2024-01-11T20:32:13+00:00" + }, + { + "name": "livewire/livewire", + "version": "v3.4.10", + "source": { + "type": "git", + "url": "https://github.com/livewire/livewire.git", + "reference": "6f90e2d7f8e80a97a7406c22a0fbc61ca1256ed9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/livewire/zipball/6f90e2d7f8e80a97a7406c22a0fbc61ca1256ed9", + "reference": "6f90e2d7f8e80a97a7406c22a0fbc61ca1256ed9", + "shasum": "" + }, + "require": { + "illuminate/database": "^10.0|^11.0", + "illuminate/routing": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "illuminate/validation": "^10.0|^11.0", + "league/mime-type-detection": "^1.9", + "php": "^8.1", + "symfony/console": "^6.0|^7.0", + "symfony/http-kernel": "^6.2|^7.0" + }, + "require-dev": { + "calebporzio/sushi": "^2.1", + "laravel/framework": "^10.0|^11.0", + "laravel/prompts": "^0.1.6", + "mockery/mockery": "^1.3.1", + "orchestra/testbench": "^8.21.0|^9.0", + "orchestra/testbench-dusk": "^8.24|^9.1", + "phpunit/phpunit": "^10.4", + "psy/psysh": "^0.11.22|^0.12" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Livewire\\LivewireServiceProvider" + ], + "aliases": { + "Livewire": "Livewire\\Livewire" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Livewire\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "A front-end framework for Laravel.", + "support": { + "issues": "https://github.com/livewire/livewire/issues", + "source": "https://github.com/livewire/livewire/tree/v3.4.10" + }, + "funding": [ + { + "url": "https://github.com/livewire", + "type": "github" + } + ], + "time": "2024-04-02T14:22:50+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + }, + "time": "2024-03-31T07:05:07+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.5.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { @@ -4063,7 +5567,7 @@ "doctrine/couchdb": "~1.0@dev", "elasticsearch/elasticsearch": "^7 || ^8", "ext-json": "*", - "graylog2/gelf-php": "^1.4.2 || ^2@dev", + "graylog2/gelf-php": "^1.4.2 || ^2.0", "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", @@ -4071,7 +5575,7 @@ "phpstan/phpstan": "^1.9", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^9.5.26", + "phpunit/phpunit": "^10.1", "predis/predis": "^1.1 || ^2", "ruflin/elastica": "^7", "symfony/mailer": "^5.4 || ^6", @@ -4124,7 +5628,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.3.1" + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, "funding": [ { @@ -4136,7 +5640,7 @@ "type": "tidelift" } ], - "time": "2023-02-06T13:46:10+00:00" + "time": "2023-10-27T15:32:31+00:00" }, { "name": "mtdowling/jmespath.php", @@ -4201,28 +5705,33 @@ }, { "name": "nesbot/carbon", - "version": "2.67.0", + "version": "2.72.3", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8" + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c1001b3bc75039b07f38a79db5237c4c529e04c8", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", "shasum": "" }, "require": { + "carbonphp/carbon-doctrine-types": "*", "ext-json": "*", "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", "symfony/polyfill-mbstring": "^1.0", "symfony/polyfill-php80": "^1.16", "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, + "provide": { + "psr/clock-implementation": "1.0" + }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4", - "doctrine/orm": "^2.7", + "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", + "doctrine/orm": "^2.7 || ^3.0", "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", "ondrejmirtes/better-reflection": "*", @@ -4299,35 +5808,35 @@ "type": "tidelift" } ], - "time": "2023-05-25T22:09:47+00:00" + "time": "2024-01-25T10:35:09+00:00" }, { "name": "nette/schema", - "version": "v1.2.3", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.4", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -4359,26 +5868,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.3" + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2022-10-13T01:24:26+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { "name": "nette/utils", - "version": "v4.0.0", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e", - "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { - "php": ">=8.0 <8.3" + "php": ">=8.0 <8.4" }, "conflict": { "nette/finder": "<3", @@ -4386,7 +5895,7 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "dev-master", - "nette/tester": "^2.4", + "nette/tester": "^2.5", "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.9" }, @@ -4396,8 +5905,7 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { @@ -4446,9 +5954,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.0" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2023-02-02T10:41:53+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { "name": "nikic/php-parser", @@ -4594,16 +6102,16 @@ }, { "name": "openspout/openspout", - "version": "v4.14.0", + "version": "v4.23.0", "source": { "type": "git", "url": "https://github.com/openspout/openspout.git", - "reference": "528442c4051c8dfc53c164651156fa616c370931" + "reference": "28f6a0e45acc3377f34c26cc3866e21f0447e0c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/openspout/openspout/zipball/528442c4051c8dfc53c164651156fa616c370931", - "reference": "528442c4051c8dfc53c164651156fa616c370931", + "url": "https://api.github.com/repos/openspout/openspout/zipball/28f6a0e45acc3377f34c26cc3866e21f0447e0c8", + "reference": "28f6a0e45acc3377f34c26cc3866e21f0447e0c8", "shasum": "" }, "require": { @@ -4613,21 +6121,21 @@ "ext-libxml": "*", "ext-xmlreader": "*", "ext-zip": "*", - "php": "~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { "ext-zlib": "*", - "friendsofphp/php-cs-fixer": "^3.17.0", - "infection/infection": "^0.27", - "phpbench/phpbench": "^1.2.10", - "phpstan/phpstan": "^1.10.15", - "phpstan/phpstan-phpunit": "^1.3.12", - "phpstan/phpstan-strict-rules": "^1.5.1", - "phpunit/phpunit": "^10.1.3" + "friendsofphp/php-cs-fixer": "^3.46.0", + "infection/infection": "^0.27.9", + "phpbench/phpbench": "^1.2.15", + "phpstan/phpstan": "^1.10.55", + "phpstan/phpstan-phpunit": "^1.3.15", + "phpstan/phpstan-strict-rules": "^1.5.2", + "phpunit/phpunit": "^10.5.5" }, "suggest": { - "ext-iconv": "To handle non UTF-8 CSV files (if \"php-intl\" is not already installed or is too limited)", - "ext-intl": "To handle non UTF-8 CSV files (if \"iconv\" is not already installed)" + "ext-iconv": "To handle non UTF-8 CSV files (if \"php-mbstring\" is not already installed or is too limited)", + "ext-mbstring": "To handle non UTF-8 CSV files (if \"iconv\" is not already installed)" }, "type": "library", "extra": { @@ -4671,7 +6179,7 @@ ], "support": { "issues": "https://github.com/openspout/openspout/issues", - "source": "https://github.com/openspout/openspout/tree/v4.14.0" + "source": "https://github.com/openspout/openspout/tree/v4.23.0" }, "funding": [ { @@ -4683,7 +6191,7 @@ "type": "github" } ], - "time": "2023-05-24T09:26:05+00:00" + "time": "2024-01-09T09:30:37+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -4946,16 +6454,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.1", + "version": "1.9.2", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e" + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e", - "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", "shasum": "" }, "require": { @@ -4963,7 +6471,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "extra": { @@ -5005,7 +6513,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.1" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" }, "funding": [ { @@ -5017,7 +6525,7 @@ "type": "tidelift" } ], - "time": "2023-02-25T19:38:58+00:00" + "time": "2023-11-12T21:59:55+00:00" }, { "name": "pragmarx/google2fa", @@ -5195,6 +6703,54 @@ }, "time": "2021-02-03T23:26:27+00:00" }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, { "name": "psr/container", "version": "2.0.2", @@ -5300,16 +6856,16 @@ }, { "name": "psr/http-client", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { @@ -5346,9 +6902,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "source": "https://github.com/php-fig/http-client" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -5770,16 +7326,16 @@ }, { "name": "ramsey/uuid", - "version": "4.7.4", + "version": "4.7.5", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "60a4c63ab724854332900504274f6150ff26d286" + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286", - "reference": "60a4c63ab724854332900504274f6150ff26d286", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", "shasum": "" }, "require": { @@ -5846,7 +7402,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.4" + "source": "https://github.com/ramsey/uuid/tree/4.7.5" }, "funding": [ { @@ -5858,7 +7414,7 @@ "type": "tidelift" } ], - "time": "2023-04-15T23:01:58+00:00" + "time": "2023-11-08T05:53:05+00:00" }, { "name": "rap2hpoutre/fast-excel", @@ -5930,6 +7486,143 @@ ], "time": "2023-03-13T14:25:33+00:00" }, + { + "name": "ryangjchandler/blade-capture-directive", + "version": "v0.3.0", + "source": { + "type": "git", + "url": "https://github.com/ryangjchandler/blade-capture-directive.git", + "reference": "62fd2ecb50b938a46025093bcb64fcaddd531f89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/62fd2ecb50b938a46025093bcb64fcaddd531f89", + "reference": "62fd2ecb50b938a46025093bcb64fcaddd531f89", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.0|^10.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9.2" + }, + "require-dev": { + "nunomaduro/collision": "^6.0|^7.0", + "nunomaduro/larastan": "^2.0", + "orchestra/testbench": "^7.22|^8.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider" + ], + "aliases": { + "BladeCaptureDirective": "RyanChandler\\BladeCaptureDirective\\Facades\\BladeCaptureDirective" + } + } + }, + "autoload": { + "psr-4": { + "RyanChandler\\BladeCaptureDirective\\": "src", + "RyanChandler\\BladeCaptureDirective\\Database\\Factories\\": "database/factories" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ryan Chandler", + "email": "support@ryangjchandler.co.uk", + "role": "Developer" + } + ], + "description": "Create inline partials in your Blade templates with ease.", + "homepage": "https://github.com/ryangjchandler/blade-capture-directive", + "keywords": [ + "blade-capture-directive", + "laravel", + "ryangjchandler" + ], + "support": { + "issues": "https://github.com/ryangjchandler/blade-capture-directive/issues", + "source": "https://github.com/ryangjchandler/blade-capture-directive/tree/v0.3.0" + }, + "funding": [ + { + "url": "https://github.com/ryangjchandler", + "type": "github" + } + ], + "time": "2023-02-14T16:54:54+00:00" + }, + { + "name": "spatie/color", + "version": "1.5.3", + "source": { + "type": "git", + "url": "https://github.com/spatie/color.git", + "reference": "49739265900cabce4640cd26c3266fd8d2cca390" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/color/zipball/49739265900cabce4640cd26c3266fd8d2cca390", + "reference": "49739265900cabce4640cd26c3266fd8d2cca390", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^6.5||^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Color\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A little library to handle color conversions", + "homepage": "https://github.com/spatie/color", + "keywords": [ + "color", + "conversion", + "rgb", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/color/issues", + "source": "https://github.com/spatie/color/tree/1.5.3" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-12-18T12:58:32+00:00" + }, { "name": "spatie/db-dumper", "version": "3.3.1", @@ -5993,6 +7686,125 @@ ], "time": "2023-05-02T11:05:31+00:00" }, + { + "name": "spatie/invade", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/invade.git", + "reference": "7b20a25486de69198e402da20dc924d8bcc8024a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/invade/zipball/7b20a25486de69198e402da20dc924d8bcc8024a", + "reference": "7b20a25486de69198e402da20dc924d8bcc8024a", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "phpstan/phpstan": "^1.4", + "spatie/ray": "^1.28" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Spatie\\Invade\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "A PHP function to work with private properties and methods", + "homepage": "https://github.com/spatie/invade", + "keywords": [ + "invade", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/invade/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-07-19T18:55:36+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.16.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-03-20T07:29:11+00:00" + }, { "name": "spatie/laravel-permission", "version": "5.10.1", @@ -6350,16 +8162,16 @@ }, { "name": "symfony/console", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" + "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "url": "https://api.github.com/repos/symfony/console/zipball/a2708a5da5c87d1d0d52937bdeac625df659e11f", + "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f", "shasum": "" }, "require": { @@ -6367,7 +8179,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0" + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/dependency-injection": "<5.4", @@ -6381,12 +8193,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -6420,7 +8236,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.0" + "source": "https://github.com/symfony/console/tree/v6.4.6" }, "funding": [ { @@ -6436,24 +8252,24 @@ "type": "tidelift" } ], - "time": "2023-05-29T12:49:39+00:00" + "time": "2024-03-29T19:07:53+00:00" }, { "name": "symfony/css-selector", - "version": "v6.3.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf" + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", - "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -6485,7 +8301,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.3.0" + "source": "https://github.com/symfony/css-selector/tree/v7.0.3" }, "funding": [ { @@ -6501,11 +8317,11 @@ "type": "tidelift" } ], - "time": "2023-03-20T16:43:42+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", @@ -6552,7 +8368,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { @@ -6572,30 +8388,31 @@ }, { "name": "symfony/error-handler", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "99d2d814a6351461af350ead4d963bd67451236f" + "reference": "64db1c1802e3a4557e37ba33031ac39f452ac5d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/99d2d814a6351461af350ead4d963bd67451236f", - "reference": "99d2d814a6351461af350ead4d963bd67451236f", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/64db1c1802e3a4557e37ba33031ac39f452ac5d4", + "reference": "64db1c1802e3a4557e37ba33031ac39f452ac5d4", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5" + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" }, "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -6626,7 +8443,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.3.0" + "source": "https://github.com/symfony/error-handler/tree/v6.4.6" }, "funding": [ { @@ -6642,28 +8459,28 @@ "type": "tidelift" } ], - "time": "2023-05-10T12:03:13+00:00" + "time": "2024-03-19T11:56:30+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.3.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa" + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", - "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -6672,13 +8489,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6706,7 +8523,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" }, "funding": [ { @@ -6722,20 +8539,20 @@ "type": "tidelift" } ], - "time": "2023-04-21T14:41:17+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.3.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "4e64b49bf370ade88e567de29465762e316e4224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224", + "reference": "4e64b49bf370ade88e567de29465762e316e4224", "shasum": "" }, "require": { @@ -6782,7 +8599,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2" }, "funding": [ { @@ -6798,27 +8615,27 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/finder", - "version": "v6.3.0", + "version": "v6.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2" + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2", - "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2", + "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^6.0" + "symfony/filesystem": "^6.0|^7.0" }, "type": "library", "autoload": { @@ -6846,7 +8663,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.0" + "source": "https://github.com/symfony/finder/tree/v6.4.0" }, "funding": [ { @@ -6862,7 +8679,76 @@ "type": "tidelift" } ], - "time": "2023-04-02T01:25:41+00:00" + "time": "2023-10-31T17:30:12+00:00" + }, + { + "name": "symfony/html-sanitizer", + "version": "v6.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/html-sanitizer.git", + "reference": "83e1dc8b49345e078cfa21bd4c563dfa99c5ed63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/83e1dc8b49345e078cfa21bd4c563dfa99c5ed63", + "reference": "83e1dc8b49345e078cfa21bd4c563dfa99c5ed63", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "league/uri": "^6.5|^7.0", + "masterminds/html5": "^2.7.2", + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HtmlSanitizer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to sanitize untrusted HTML input for safe insertion into a document's DOM.", + "homepage": "https://symfony.com", + "keywords": [ + "Purifier", + "html", + "sanitizer" + ], + "support": { + "source": "https://github.com/symfony/html-sanitizer/tree/v6.4.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-13T16:25:19+00:00" }, { "name": "symfony/http-client", @@ -6958,16 +8844,16 @@ }, { "name": "symfony/http-client-contracts", - "version": "v3.3.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" + "reference": "b6b5c876b3a4ed74460e2c5ac53bbce2f12e2a7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/b6b5c876b3a4ed74460e2c5ac53bbce2f12e2a7e", + "reference": "b6b5c876b3a4ed74460e2c5ac53bbce2f12e2a7e", "shasum": "" }, "require": { @@ -7016,7 +8902,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.4.2" }, "funding": [ { @@ -7032,20 +8918,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-01T18:51:09+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.3.0", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "718a97ed430d34e5c568ea2c44eab708c6efbefb" + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/718a97ed430d34e5c568ea2c44eab708c6efbefb", - "reference": "718a97ed430d34e5c568ea2c44eab708c6efbefb", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304", + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304", "shasum": "" }, "require": { @@ -7055,17 +8941,17 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.2" + "symfony/cache": "<6.3" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^5.4|^6.0", - "symfony/rate-limiter": "^5.2|^6.0" + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -7093,7 +8979,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.4" }, "funding": [ { @@ -7109,29 +8995,29 @@ "type": "tidelift" } ], - "time": "2023-05-19T12:46:45+00:00" + "time": "2024-02-08T15:01:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "241973f3dd900620b1ca052fe409144f11aea748" + "reference": "060038863743fd0cd982be06acecccf246d35653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/241973f3dd900620b1ca052fe409144f11aea748", - "reference": "241973f3dd900620b1ca052fe409144f11aea748", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/060038863743fd0cd982be06acecccf246d35653", + "reference": "060038863743fd0cd982be06acecccf246d35653", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.2.7", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -7139,7 +9025,7 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.3", + "symfony/dependency-injection": "<6.4", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", @@ -7149,7 +9035,7 @@ "symfony/translation": "<5.4", "symfony/translation-contracts": "<2.5", "symfony/twig-bridge": "<5.4", - "symfony/validator": "<5.4", + "symfony/validator": "<6.4", "symfony/var-dumper": "<6.3", "twig/twig": "<2.13" }, @@ -7158,26 +9044,26 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/clock": "^6.2", - "symfony/config": "^6.1", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.3", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0", - "symfony/property-access": "^5.4.5|^6.0.5", - "symfony/routing": "^5.4|^6.0", - "symfony/serializer": "^6.3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^6.3", - "symfony/var-exporter": "^6.2", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", "twig/twig": "^2.13|^3.0.4" }, "type": "library", @@ -7206,7 +9092,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.3.0" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.6" }, "funding": [ { @@ -7222,20 +9108,20 @@ "type": "tidelift" } ], - "time": "2023-05-30T19:03:32+00:00" + "time": "2024-04-03T06:09:15+00:00" }, { "name": "symfony/mailer", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435" + "reference": "677f34a6f4b4559e08acf73ae0aec460479e5859" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b03d9be1dea29bfec0a6c7b603f5072a4c97435", - "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435", + "url": "https://api.github.com/repos/symfony/mailer/zipball/677f34a6f4b4559e08acf73ae0aec460479e5859", + "reference": "677f34a6f4b4559e08acf73ae0aec460479e5859", "shasum": "" }, "require": { @@ -7243,8 +9129,8 @@ "php": ">=8.1", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/mime": "^6.2", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -7255,10 +9141,10 @@ "symfony/twig-bridge": "<6.2.1" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/messenger": "^6.2", - "symfony/twig-bridge": "^6.2" + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/messenger": "^6.2|^7.0", + "symfony/twig-bridge": "^6.2|^7.0" }, "type": "library", "autoload": { @@ -7286,7 +9172,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.3.0" + "source": "https://github.com/symfony/mailer/tree/v6.4.6" }, "funding": [ { @@ -7302,7 +9188,7 @@ "type": "tidelift" } ], - "time": "2023-05-29T12:49:39+00:00" + "time": "2024-03-27T21:14:17+00:00" }, { "name": "symfony/mailgun-mailer", @@ -7375,20 +9261,21 @@ }, { "name": "symfony/mime", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad" + "reference": "14762b86918823cb42e3558cdcca62e58b5227fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", - "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", + "url": "https://api.github.com/repos/symfony/mime/zipball/14762b86918823cb42e3558cdcca62e58b5227fe", + "reference": "14762b86918823cb42e3558cdcca62e58b5227fe", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -7397,16 +9284,17 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<6.2" + "symfony/serializer": "<6.3.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^6.2" + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.4|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3.2|^7.0" }, "type": "library", "autoload": { @@ -7438,7 +9326,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.3.0" + "source": "https://github.com/symfony/mime/tree/v6.4.6" }, "funding": [ { @@ -7454,20 +9342,20 @@ "type": "tidelift" } ], - "time": "2023-04-28T15:57:00+00:00" + "time": "2024-03-21T19:36:20+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -7481,9 +9369,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7520,7 +9405,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -7536,20 +9421,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -7560,9 +9445,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7601,7 +9483,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -7617,7 +9499,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-icu", @@ -7708,16 +9590,16 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { @@ -7730,9 +9612,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7775,7 +9654,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -7791,20 +9670,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -7815,9 +9694,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7859,7 +9735,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -7875,20 +9751,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -7902,9 +9778,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7942,7 +9815,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -7958,20 +9831,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", "shasum": "" }, "require": { @@ -7979,9 +9852,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -8018,7 +9888,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" }, "funding": [ { @@ -8034,20 +9904,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -8055,9 +9925,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -8101,7 +9968,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -8117,20 +9984,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "508c652ba3ccf69f8c97f251534f229791b52a57" + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/508c652ba3ccf69f8c97f251534f229791b52a57", - "reference": "508c652ba3ccf69f8c97f251534f229791b52a57", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { @@ -8139,9 +10006,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -8153,7 +10017,10 @@ ], "psr-4": { "Symfony\\Polyfill\\Php83\\": "" - } + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8178,7 +10045,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -8194,20 +10061,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.27.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166" + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166", - "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", "shasum": "" }, "require": { @@ -8221,9 +10088,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -8260,7 +10124,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" }, "funding": [ { @@ -8276,20 +10140,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v6.3.0", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628" + "reference": "710e27879e9be3395de2b98da3f52a946039f297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628", - "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628", + "url": "https://api.github.com/repos/symfony/process/zipball/710e27879e9be3395de2b98da3f52a946039f297", + "reference": "710e27879e9be3395de2b98da3f52a946039f297", "shasum": "" }, "require": { @@ -8321,7 +10185,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.3.0" + "source": "https://github.com/symfony/process/tree/v6.4.4" }, "funding": [ { @@ -8337,24 +10201,25 @@ "type": "tidelift" } ], - "time": "2023-05-19T08:06:44+00:00" + "time": "2024-02-20T12:31:00+00:00" }, { "name": "symfony/routing", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b" + "reference": "f2591fd1f8c6e3734656b5d6b3829e8bf81f507c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b", - "reference": "827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b", + "url": "https://api.github.com/repos/symfony/routing/zipball/f2591fd1f8c6e3734656b5d6b3829e8bf81f507c", + "reference": "f2591fd1f8c6e3734656b5d6b3829e8bf81f507c", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "doctrine/annotations": "<1.12", @@ -8365,11 +10230,11 @@ "require-dev": { "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "symfony/config": "^6.2|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -8403,7 +10268,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.0" + "source": "https://github.com/symfony/routing/tree/v6.4.6" }, "funding": [ { @@ -8419,25 +10284,25 @@ "type": "tidelift" } ], - "time": "2023-04-28T15:57:00+00:00" + "time": "2024-03-28T13:28:49+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.3.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", - "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -8485,7 +10350,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" }, "funding": [ { @@ -8501,24 +10366,24 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2023-12-19T21:51:00+00:00" }, { "name": "symfony/string", - "version": "v6.3.0", + "version": "v7.0.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", + "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -8528,11 +10393,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/intl": "^6.2", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8571,7 +10436,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.0" + "source": "https://github.com/symfony/string/tree/v7.0.4" }, "funding": [ { @@ -8587,24 +10452,25 @@ "type": "tidelift" } ], - "time": "2023-03-21T21:06:29+00:00" + "time": "2024-02-01T13:17:36+00:00" }, { "name": "symfony/translation", - "version": "v6.3.0", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f" + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f", + "url": "https://api.github.com/repos/symfony/translation/zipball/bce6a5a78e94566641b2594d17e48b0da3184a8e", + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, @@ -8622,19 +10488,19 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -8665,7 +10531,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.0" + "source": "https://github.com/symfony/translation/tree/v6.4.4" }, "funding": [ { @@ -8681,20 +10547,20 @@ "type": "tidelift" } ], - "time": "2023-05-19T12:46:45+00:00" + "time": "2024-02-20T13:16:58+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.3.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", - "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", + "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", "shasum": "" }, "require": { @@ -8743,7 +10609,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.2" }, "funding": [ { @@ -8759,20 +10625,20 @@ "type": "tidelift" } ], - "time": "2023-05-30T17:17:10+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/uid", - "version": "v6.3.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384" + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/01b0f20b1351d997711c56f1638f7a8c3061e384", - "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", "shasum": "" }, "require": { @@ -8780,7 +10646,7 @@ "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -8817,7 +10683,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.3.0" + "source": "https://github.com/symfony/uid/tree/v6.4.3" }, "funding": [ { @@ -8833,24 +10699,25 @@ "type": "tidelift" } ], - "time": "2023-04-08T07:25:02+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.3.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6acdcd5c122074ee9f7b051e4fb177025c277a0e" + "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6acdcd5c122074ee9f7b051e4fb177025c277a0e", - "reference": "6acdcd5c122074ee9f7b051e4fb177025c277a0e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/95bd2706a97fb875185b51ecaa6112ec184233d4", + "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4", "shasum": "" }, "require": { "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { @@ -8858,9 +10725,11 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", "twig/twig": "^2.13|^3.0.4" }, "bin": [ @@ -8899,7 +10768,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.6" }, "funding": [ { @@ -8915,7 +10784,7 @@ "type": "tidelift" } ], - "time": "2023-05-25T13:09:35+00:00" + "time": "2024-03-19T11:56:30+00:00" }, { "name": "textalk/websocket", @@ -8968,23 +10837,23 @@ }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.6", + "version": "v2.2.7", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c" + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" @@ -9015,9 +10884,9 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" }, - "time": "2023-01-03T09:29:04+00:00" + "time": "2023-12-08T13:03:43+00:00" }, { "name": "vinkla/hashids", @@ -9088,31 +10957,31 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.5.0", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "suggest": { "ext-filter": "Required to use the boolean validator." @@ -9124,7 +10993,7 @@ "forward-command": true }, "branch-alias": { - "dev-master": "5.5-dev" + "dev-master": "5.6-dev" } }, "autoload": { @@ -9156,7 +11025,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" }, "funding": [ { @@ -9168,7 +11037,7 @@ "type": "tidelift" } ], - "time": "2022-10-16T01:01:54+00:00" + "time": "2023-11-12T22:43:29+00:00" }, { "name": "voku/portable-ascii", @@ -9771,37 +11640,31 @@ }, { "name": "mockery/mockery", - "version": "1.6.2", + "version": "1.6.11", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "13a7fa2642c76c58fa2806ef7f565344c817a191" + "reference": "81a161d0b135df89951abd52296adf97deb0723d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/13a7fa2642c76c58fa2806ef7f565344c817a191", - "reference": "13a7fa2642c76c58fa2806ef7f565344c817a191", + "url": "https://api.github.com/repos/mockery/mockery/zipball/81a161d0b135df89951abd52296adf97deb0723d", + "reference": "81a161d0b135df89951abd52296adf97deb0723d", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": "^7.4 || ^8.0" + "php": ">=7.3" }, "conflict": { "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3", - "psalm/plugin-phpunit": "^0.18", - "vimeo/psalm": "^5.9" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.6.x-dev" - } - }, "autoload": { "files": [ "library/helpers.php", @@ -9819,12 +11682,20 @@ { "name": "Pádraic Brady", "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "homepage": "https://github.com/padraic", + "role": "Author" }, { "name": "Dave Marshall", "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" } ], "description": "Mockery is a simple yet flexible PHP mock object framework", @@ -9842,10 +11713,13 @@ "testing" ], "support": { + "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.6.2" + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" }, - "time": "2023-06-07T09:07:52+00:00" + "time": "2024-03-21T18:34:15+00:00" }, { "name": "myclabs/deep-copy", diff --git a/config/app.php b/config/app.php index 36c19342f..42f22a052 100644 --- a/config/app.php +++ b/config/app.php @@ -221,6 +221,7 @@ return [ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, + App\Providers\FilamentPanelProvider::class, App\Providers\FortifyServiceProvider::class, App\Providers\HorizonServiceProvider::class, App\Providers\NovaServiceProvider::class, diff --git a/config/filament.php b/config/filament.php new file mode 100644 index 000000000..25b062098 --- /dev/null +++ b/config/filament.php @@ -0,0 +1,101 @@ + [ + + // 'echo' => [ + // 'broadcaster' => 'pusher', + // 'key' => env('VITE_PUSHER_APP_KEY'), + // 'cluster' => env('VITE_PUSHER_APP_CLUSTER'), + // 'wsHost' => env('VITE_PUSHER_HOST'), + // 'wsPort' => env('VITE_PUSHER_PORT'), + // 'wssPort' => env('VITE_PUSHER_PORT'), + // 'authEndpoint' => '/api/v1/broadcasting/auth', + // 'disableStats' => true, + // 'encrypted' => true, + // ], + + ], + + /* + |-------------------------------------------------------------------------- + | Filament Domain Name + |-------------------------------------------------------------------------- + | + | This value is the "domain name" associated with your application. This + | can be used to prevent Filament's internal routes from being registered + | on subdomains which do not need access to your admin application. + | + */ + 'domain' => env('FILAMENT_DOMAIN_NAME'), + + /* + |-------------------------------------------------------------------------- + | Filament Path + |-------------------------------------------------------------------------- + | + | This is the URI path where Filament will be accessible from. Feel free to + | change this path to anything you like. Note that this URI will not + | affect Filament's internal API routes which aren't exposed to users. + | + */ + + 'path' => env('FILAMENT_PATH'), + + /* + |-------------------------------------------------------------------------- + | Default Filesystem Disk + |-------------------------------------------------------------------------- + | + | This is the storage disk Filament will use to put media. You may use any + | of the disks defined in the `config/filesystems.php`. + | + */ + + 'default_filesystem_disk' => env('FILAMENT_FILESYSTEM_DISK', 'public'), + + /* + |-------------------------------------------------------------------------- + | Assets Path + |-------------------------------------------------------------------------- + | + | This is the directory where Filament's assets will be published to. It + | is relative to the `public` directory of your Laravel application. + | + | After changing the path, you should run `php artisan filament:assets`. + | + */ + + 'assets_path' => null, + + /* + |-------------------------------------------------------------------------- + | Livewire Loading Delay + |-------------------------------------------------------------------------- + | + | This sets the delay before loading indicators appear. + | + | Setting this to 'none' makes indicators appear immediately, which can be + | desirable for high-latency connections. Setting it to 'default' applies + | Livewire's standard 200ms delay. + | + */ + + 'livewire_loading_delay' => 'default', + +]; diff --git a/config/livewire.php b/config/livewire.php new file mode 100644 index 000000000..eb8f6201c --- /dev/null +++ b/config/livewire.php @@ -0,0 +1,161 @@ + 'App\\Livewire', + + /* + |--------------------------------------------------------------------------- + | View Path + |--------------------------------------------------------------------------- + | + | This value is used to specify where Livewire component Blade templates are + | stored when running file creation commands like `artisan make:livewire`. + | It is also used if you choose to omit a component's render() method. + | + */ + + 'view_path' => resource_path('views/livewire'), + + /* + |--------------------------------------------------------------------------- + | Layout + |--------------------------------------------------------------------------- + | The view that will be used as the layout when rendering a single component + | as an entire page via `Route::get('/post/create', CreatePost::class);`. + | In this case, the view returned by CreatePost will render into $slot. + | + */ + + 'layout' => 'components.layouts.app', + + /* + |--------------------------------------------------------------------------- + | Lazy Loading Placeholder + |--------------------------------------------------------------------------- + | Livewire allows you to lazy load components that would otherwise slow down + | the initial page load. Every component can have a custom placeholder or + | you can define the default placeholder view for all components below. + | + */ + + 'lazy_placeholder' => null, + + /* + |--------------------------------------------------------------------------- + | Temporary File Uploads + |--------------------------------------------------------------------------- + | + | Livewire handles file uploads by storing uploads in a temporary directory + | before the file is stored permanently. All file uploads are directed to + | a global endpoint for temporary storage. You may configure this below: + | + */ + + 'temporary_file_upload' => [ + 'disk' => null, // Example: 'local', 's3' | Default: 'default' + 'rules' => ['file', 'max:204800'], // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB) + 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp' + 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1' + 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs... + 'png', 'gif', 'bmp', 'svg', 'wav', 'mp4', + 'mov', 'avi', 'wmv', 'mp3', 'm4a', + 'jpg', 'jpeg', 'mpga', 'webp', 'wma', + ], + 'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated... + ], + + /* + |--------------------------------------------------------------------------- + | Render On Redirect + |--------------------------------------------------------------------------- + | + | This value determines if Livewire will run a component's `render()` method + | after a redirect has been triggered using something like `redirect(...)` + | Setting this to true will render the view once more before redirecting + | + */ + + 'render_on_redirect' => false, + + /* + |--------------------------------------------------------------------------- + | Eloquent Model Binding + |--------------------------------------------------------------------------- + | + | Previous versions of Livewire supported binding directly to eloquent model + | properties using wire:model by default. However, this behavior has been + | deemed too "magical" and has therefore been put under a feature flag. + | + */ + + 'legacy_model_binding' => false, + + /* + |--------------------------------------------------------------------------- + | Auto-inject Frontend Assets + |--------------------------------------------------------------------------- + | + | By default, Livewire automatically injects its JavaScript and CSS into the + | and of pages containing Livewire components. By disabling + | this behavior, you need to use @livewireStyles and @livewireScripts. + | + */ + + 'inject_assets' => true, + + /* + |--------------------------------------------------------------------------- + | Navigate (SPA mode) + |--------------------------------------------------------------------------- + | + | By adding `wire:navigate` to links in your Livewire application, Livewire + | will prevent the default link handling and instead request those pages + | via AJAX, creating an SPA-like effect. Configure this behavior here. + | + */ + + 'navigate' => [ + 'show_progress_bar' => true, + 'progress_bar_color' => '#2299dd', + ], + + /* + |--------------------------------------------------------------------------- + | HTML Morph Markers + |--------------------------------------------------------------------------- + | + | Livewire intelligently "morphs" existing HTML into the newly rendered HTML + | after each update. To make this process more reliable, Livewire injects + | "markers" into the rendered Blade surrounding @if, @class & @foreach. + | + */ + + 'inject_morph_markers' => true, + + /* + |--------------------------------------------------------------------------- + | Pagination Theme + |--------------------------------------------------------------------------- + | + | When enabling Livewire's pagination feature by using the `WithPagination` + | trait, Livewire will use Tailwind templates to render pagination views + | on the page. If you want Bootstrap CSS, you can specify: "bootstrap" + | + */ + + 'pagination_theme' => 'tailwind', +]; diff --git a/database/factories/Auth/UserFactory.php b/database/factories/Auth/UserFactory.php index 616d64d24..e5f9cf26f 100644 --- a/database/factories/Auth/UserFactory.php +++ b/database/factories/Auth/UserFactory.php @@ -9,6 +9,7 @@ use App\Models\Auth\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Arr; use Illuminate\Support\Facades\App; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; use Spatie\Permission\PermissionRegistrar; @@ -40,7 +41,7 @@ class UserFactory extends Factory User::ATTRIBUTE_NAME => fake()->name(), User::ATTRIBUTE_EMAIL => fake()->safeEmail(), User::ATTRIBUTE_EMAIL_VERIFIED_AT => now(), - User::ATTRIBUTE_PASSWORD => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + User::ATTRIBUTE_PASSWORD => Hash::make('password'), User::ATTRIBUTE_REMEMBER_TOKEN => Str::random(10), ]; } diff --git a/database/migrations/2024_04_11_024316_create_notifications_table.php b/database/migrations/2024_04_11_024316_create_notifications_table.php new file mode 100644 index 000000000..8d9105e04 --- /dev/null +++ b/database/migrations/2024_04_11_024316_create_notifications_table.php @@ -0,0 +1,35 @@ +uuid('id')->primary(); + $table->string('type'); + $table->morphs('notifiable'); + $table->text('data'); + $table->timestamp('read_at')->nullable(); + $table->timestamps(); + }); + } + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('notifications'); + } +}; diff --git a/database/seeders/Auth/Role/DeveloperRoleSeeder.php b/database/seeders/Auth/Role/DeveloperRoleSeeder.php index 0486c6eba..3988689e3 100644 --- a/database/seeders/Auth/Role/DeveloperRoleSeeder.php +++ b/database/seeders/Auth/Role/DeveloperRoleSeeder.php @@ -70,7 +70,13 @@ class DeveloperRoleSeeder extends RoleSeeder $this->configureResource($role, VideoScript::class, [CrudPermission::VIEW]); // Special Permissions - $this->configureAbilities($role, [SpecialPermission::VIEW_NOVA->value]); + $this->configureAbilities( + $role, + [ + SpecialPermission::VIEW_NOVA->value, + SpecialPermission::VIEW_FILAMENT->value, + ] + ); $role->color = '#FF69B4'; $role->priority = 125000; diff --git a/database/seeders/Auth/Role/EncoderRoleSeeder.php b/database/seeders/Auth/Role/EncoderRoleSeeder.php index 329e15bcb..b74b83a8c 100644 --- a/database/seeders/Auth/Role/EncoderRoleSeeder.php +++ b/database/seeders/Auth/Role/EncoderRoleSeeder.php @@ -77,7 +77,13 @@ class EncoderRoleSeeder extends RoleSeeder $this->configureResource($role, VideoScript::class, $extendedCrudPermissions); // Special Permissions - $this->configureAbilities($role, [SpecialPermission::VIEW_NOVA->value]); + $this->configureAbilities( + $role, + [ + SpecialPermission::VIEW_NOVA->value, + SpecialPermission::VIEW_FILAMENT->value, + ] + ); $role->color = '#FFC107'; $role->priority = 150000; diff --git a/database/seeders/Auth/Role/PatronRoleSeeder.php b/database/seeders/Auth/Role/PatronRoleSeeder.php index 1511feb37..6d0cf336d 100644 --- a/database/seeders/Auth/Role/PatronRoleSeeder.php +++ b/database/seeders/Auth/Role/PatronRoleSeeder.php @@ -75,6 +75,7 @@ class PatronRoleSeeder extends RoleSeeder [ SpecialPermission::BYPASS_FEATURE_FLAGS->value, SpecialPermission::VIEW_NOVA->value, + SpecialPermission::VIEW_FILAMENT->value, ] ); diff --git a/database/seeders/Auth/Role/WikiEditorRoleSeeder.php b/database/seeders/Auth/Role/WikiEditorRoleSeeder.php index f9fa5ef12..633e7eec3 100644 --- a/database/seeders/Auth/Role/WikiEditorRoleSeeder.php +++ b/database/seeders/Auth/Role/WikiEditorRoleSeeder.php @@ -77,7 +77,13 @@ class WikiEditorRoleSeeder extends RoleSeeder $this->configureResource($role, VideoScript::class, [CrudPermission::VIEW]); // Special Permissions - $this->configureAbilities($role, [SpecialPermission::VIEW_NOVA->value]); + $this->configureAbilities( + $role, + [ + SpecialPermission::VIEW_NOVA->value, + SpecialPermission::VIEW_FILAMENT->value, + ] + ); $role->color = '#2E5A88'; $role->priority = 100000; diff --git a/database/seeders/Auth/Role/WikiViewerRoleSeeder.php b/database/seeders/Auth/Role/WikiViewerRoleSeeder.php index 3c8f52c45..0c6495ccd 100644 --- a/database/seeders/Auth/Role/WikiViewerRoleSeeder.php +++ b/database/seeders/Auth/Role/WikiViewerRoleSeeder.php @@ -70,7 +70,13 @@ class WikiViewerRoleSeeder extends RoleSeeder $this->configureResource($role, VideoScript::class, [CrudPermission::VIEW]); // Special Permissions - $this->configureAbilities($role, [SpecialPermission::VIEW_NOVA->value]); + $this->configureAbilities( + $role, + [ + SpecialPermission::VIEW_NOVA->value, + SpecialPermission::VIEW_FILAMENT->value, + ] + ); $role->color = '#2596D1'; $role->priority = 25000; diff --git a/lang/en/filament.php b/lang/en/filament.php new file mode 100644 index 000000000..d4acc5dcb --- /dev/null +++ b/lang/en/filament.php @@ -0,0 +1,1007 @@ + [ + 'anime' => [ + 'backfill' => [ + 'confirmButtonText' => 'Backfill', + 'fields' => [ + 'images' => [ + 'large_cover' => [ + 'help' => 'Use Anilist Resource to map Large Cover Image', + 'name' => 'Backfill Large Cover', + ], + 'name' => 'Backfill Images', + 'small_cover' => [ + 'help' => 'Use Anilist Resource to map Small Cover Image', + 'name' => 'Backfill Small Cover', + ], + ], + 'resources' => [ + 'anidb' => [ + 'help' => 'Use the Manami Project Anime Offline Database hosted by yuna.moe to find an AniDB mapping from a MAL, Anilist or Kitsu Resource', + 'name' => 'Backfill AniDB Resource', + ], + 'anilist' => [ + 'help' => 'Use the MAL, Kitsu or AniDB Resource to find an Anilist mapping', + 'name' => 'Backfill Anilist Resource', + ], + 'ann' => [ + 'help' => 'Use the Kitsu resource to find an ANN mapping', + 'name' => 'Backfill ANN Resource', + ], + 'kitsu' => [ + 'help' => 'Use the Kitsu API to find a mapping from a MAL, Anilist, AniDB or ANN Resource', + 'name' => 'Backfill Kitsu Resource', + ], + 'mal' => [ + 'help' => 'Use the Kitsu, Anilist or AniDB Resource to find a MAL mapping', + 'name' => 'Backfill MyAnimeList Resource', + ], + 'external_links' => [ + 'help' => 'Use Anilist Resource to find other resources as Official Sites and Streamings', + 'name' => 'Backfill Other Resources' + ], + 'name' => 'Backfill Resources', + ], + 'studios' => [ + 'anime' => [ + 'help' => 'Use the MAL, Anilist or Kitsu Resource to map Anime Studios', + 'name' => 'Backfill Anime Studios', + ], + 'name' => 'Backfill Studios', + ], + 'synonyms' => [ + 'help' => 'Use the Anilist Resource to map Anime Synonyms', + 'name' => 'Backfill Synonyms', + ], + ], + 'message' => [ + 'resource_required_failure' => 'At least one Resource is required to backfill Anime', + ], + 'name' => 'Backfill Anime', + ], + 'discord' => [ + 'thread' => [ + 'name' => 'Create Discord Thread', + ], + ], + ], + 'audio' => [ + 'delete' => [ + 'confirmText' => 'Remove Audio from configured storage disks and from the database?', + 'name' => 'Remove Audio', + ], + 'move' => [ + 'name' => 'Move Audio', + ], + 'upload' => [ + 'name' => 'Upload Audio', + ], + 'attach_related_videos' => [ + 'name' => 'Attach Audio to Related Videos', + ], + ], + 'base' => [ + 'cancelButtonText' => 'Cancel', + 'confirmButtonText' => 'Confirm', + 'copied' => 'Copied', + 'delete' => 'Delete', + 'detach' => 'Detach', + 'edit' => 'Edit', + 'forcedelete' => 'Force Delete', + 'restore' => 'Restore', + 'view' => 'View', + ], + 'discord' => [ + 'thread' => [ + 'name' => 'Name', + 'help' => 'The name of the thread to be created. Use the default name or a shorter synonym if it exceeds 100 characters.' + ] + ], + 'dump' => [ + 'dump' => [ + 'confirmButtonText' => 'Dump', + 'fields' => [ + 'mysql' => [ + 'comments' => [ + 'help' => 'Add comments to dump file', + 'name' => 'Comments', + ], + 'default_character_set' => [ + 'help' => 'Specify default character set', + 'name' => 'Default Character Set', + ], + 'extended_insert' => [ + 'help' => 'Use multiple-row INSERT syntax', + 'name' => 'Extended Insert', + ], + 'lock_tables' => [ + 'help' => 'Lock all tables before dumping them', + 'name' => 'Lock Tables', + ], + 'no_create_info' => [ + 'help' => 'Do not write CREATE TABLE statements that re-create each dumped table', + 'name' => 'No Create Info', + ], + 'quick' => [ + 'help' => 'Retrieve rows for a table from the server a row at a time', + 'name' => 'Quick', + ], + 'set_gtid_purged' => [ + 'help' => 'Whether to add SET @@GLOBAL.GTID_PURGED to output', + 'name' => 'Set GTID Purged', + 'options' => [ + 'auto' => 'AUTO', + 'off' => 'OFF', + 'on' => 'ON', + ], + ], + 'single_transaction' => [ + 'help' => 'Issue a BEGIN SQL statement before dumping data from server', + 'name' => 'Single Transaction', + ], + 'skip_column_statistics' => [ + 'help' => 'Do not add analyze table statements to generate histogram statistics', + 'name' => 'Skip Column Statistics', + ], + 'skip_comments' => [ + 'help' => 'Do not add comments to dump file', + 'name' => 'Skip Comments', + ], + 'skip_extended_insert' => [ + 'help' => 'Turn off extended-insert', + 'name' => 'Skip Extended Insert', + ], + 'skip_lock_tables' => [ + 'help' => 'Do not lock tables before dumping them', + 'name' => 'Skip Lock Tables', + ], + 'skip_quick' => [ + 'help' => 'Do not retrieve rows for a table from the server a row at a time', + 'name' => 'Skip Quick', + ], + ], + 'postgresql' => [ + 'data_only' => [ + 'help' => 'Dump only the data, not the schema (data definitions).', + 'name' => 'Data Only', + ], + 'inserts' => [ + 'help' => 'Dump data as INSERT commands (rather than COPY).', + 'name' => 'Inserts', + ], + ], + ], + 'name' => [ + 'document' => 'Dump Document Tables', + 'wiki' => 'Dump Wiki Tables', + ], + ], + 'prune' => [ + 'name' => 'Prune Dumps', + ], + ], + 'models' => [ + 'assign_hashids' => [ + 'name' => 'Assign Hashids', + 'confirmButtonText' => 'Assign', + ], + 'wiki' => [ + 'attach_resource' => [ + 'confirmButtonText' => 'Attach', + 'fields' => [ + 'official_site' => [ + 'help' => 'Ex: https://kaguya.love/', + ], + 'twitter' => [ + 'help' => 'Ex: https://twitter.com/AnimeThemesMoe', + ], + 'anidb' => [ + 'help' => 'Ex: https://anidb.net/anime/11746, https://anidb.net/creator/10759', + ], + 'anilist' => [ + 'help' => 'Ex: https://anilist.co/anime/21460, https://anilist.co/staff/106030', + ], + 'anime_planet' => [ + 'help' => 'Ex: https://www.anime-planet.com/anime/sound-euphonium-2, https://www.anime-planet.com/people/chika-anzai', + ], + 'ann' => [ + 'help' => 'Ex: https://www.animenewsnetwork.com/encyclopedia/anime.php?id=18558', + ], + 'kitsu' => [ + 'help' => 'Ex: https://kitsu.io/anime/hibike-euphonium-2', + ], + 'mal' => [ + 'help' => 'Ex: https://myanimelist.net/anime/31988, https://myanimelist.net/people/11030', + ], + 'wiki' => [ + 'help' => 'Ex: https://unite-up.fandom.com/wiki/Protostar', + ], + 'spotify' => [ + 'help' => 'Ex: https://open.spotify.com/track/5dmkAW2HpEJgFDSgkywm8N', + ], + 'youtube_music' => [ + 'help' => 'Ex: https://music.youtube.com/watch?v=dHasNhuseU8', + ], + 'youtube' => [ + 'help' => 'Ex: https://www.youtube.com/@liyuuchannel', + ], + 'apple_music' => [ + 'help' => 'Ex: https://music.apple.com/jp/album/1711324281', + ], + 'amazon_music' => [ + 'help' => 'Ex: https://music.amazon.co.jp/tracks/B0CKVQGSJY', + ], + 'crunchyroll' => [ + 'help' => 'Ex: https://www.crunchyroll.com/series/GRDQNQW9Y', + ], + 'hidive' => [ + 'help' => 'Ex: https://www.hidive.com/tv/the-eminence-in-shadow', + ], + 'netflix' => [ + 'help' => 'Ex: https://www.netflix.com/title/81564905', + ], + 'disney_plus' => [ + 'help' => 'Ex: https://www.disneyplus.com/series/tokyo-revengers/4HFbN55sAh0i', + ], + 'hulu' => [ + 'help' => 'Ex: https://www.hulu.com/series/the-eminence-in-shadow-66f37cf4-dba5-4511-ae26-e4092df1668b', + ], + 'amazon_prime_video' => [ + 'help' => 'Ex: https://www.primevideo.com/detail/0PXZCO5NGDNH8OWTJIDTEB8IEF', + ], + ], + 'name' => 'Attach Resources', + ], + 'attach_streaming_resource' => [ + 'name' => 'Attach Streaming Resources', + ], + 'attach_image' => [ + 'confirmButtonText' => 'Upload', + 'name' => 'Attach Images' + ], + 'upload_image' => [ + 'name' => 'Upload Image', + ], + ], + ], + 'permission' => [ + 'give_role' => [ + 'name' => 'Give Role', + ], + 'revoke_role' => [ + 'name' => 'Revoke Role', + ], + ], + 'repositories' => [ + 'confirmButtonText' => 'Reconcile', + 'name' => 'Reconcile :label', + 'storage' => [ + 'fields' => [ + 'path' => [ + 'help' => 'The directory to reconcile. Ex: 2022/Spring/.', + 'name' => 'Path', + ], + ], + ], + ], + 'role' => [ + 'give_permission' => [ + 'name' => 'Give Permission', + ], + 'revoke_permission' => [ + 'name' => 'Revoke Permission', + ], + ], + 'storage' => [ + 'delete' => [ + 'confirmButtonText' => 'Remove', + ], + 'move' => [ + 'confirmButtonText' => 'Move', + 'fields' => [ + 'path' => [ + 'help' => 'The new location of the file. Ex: 2009/Summer/Bakemonogatari-OP1.webm.', + 'name' => 'Path', + ], + ], + ], + 'prune' => [ + 'confirmButtonText' => 'Prune', + 'fields' => [ + 'hours' => [ + 'help' => 'Files last modified before the specified time in hours before the present time will be deleted.', + 'name' => 'Hours', + ], + ], + ], + 'upload' => [ + 'confirmButtonText' => 'Upload', + 'fields' => [ + 'file' => [ + 'help' => 'The file to upload. Files will be uploaded to each configured storage disk.', + 'name' => 'File', + ], + 'path' => [ + 'help' => 'The directory the file will be uploaded to. Ex: 2022/Spring.', + 'name' => 'Path', + ], + ], + ], + ], + 'studio' => [ + 'backfill' => [ + 'confirmButtonText' => 'Backfill', + 'fields' => [ + 'images' => [ + 'large_cover' => [ + 'help' => 'Use MAL Resource to map Large Cover Image', + 'name' => 'Backfill Large Cover', + ], + 'name' => 'Backfill Images', + ], + ], + 'message' => [ + 'resource_required_failure' => 'At least one Resource is required to backfill Studio', + ], + 'name' => 'Backfill Studio', + ], + ], + 'user' => [ + 'give_permission' => [ + 'name' => 'Give Permission', + ], + 'give_role' => [ + 'name' => 'Give Role', + ], + 'revoke_permission' => [ + 'name' => 'Revoke Permission', + ], + 'revoke_role' => [ + 'name' => 'Revoke Role', + ], + ], + 'video_script' => [ + 'delete' => [ + 'confirmText' => 'Remove Video Script from configured storage disks and from the database?', + 'name' => 'Remove Video Script', + ], + 'move' => [ + 'name' => 'Move Video Script', + ], + 'upload' => [ + 'name' => 'Upload Video Script', + ], + ], + 'video' => [ + 'backfill' => [ + 'confirmButtonText' => 'Backfill', + 'fields' => [ + 'derive_source' => [ + 'help' => 'If Yes, use the source Video to backfill Audio. If No, use this Video to backfill Audio. Yes should be used in most cases. No is useful for outlier videos where we may want an additional Audio to represent the song like a second verse or an SFX version.', + 'name' => 'Derive Source Video', + ], + 'overwrite' => [ + 'help' => 'If Yes, the Audio will be extracted from the Video even if the Audio already exists. If No, the Audio will only be extracted from the Video if the Audio doesn\'t exist. No should be used in most cases. Yes is useful if we are replacing Audio for a Video.', + 'name' => 'Overwrite Audio', + ], + ], + 'name' => 'Backfill Audio', + ], + 'delete' => [ + 'confirmText' => 'Remove Video from configured storage disks and from the database?', + 'name' => 'Remove Video', + ], + 'move' => [ + 'name' => 'Move Video', + ], + 'upload' => [ + 'name' => 'Upload Video', + ], + ], + ], + 'bulk_actions' => [ + 'base' => [ + 'delete' => 'Delete Selected', + 'detach' => 'Detach Selected', + 'forcedelete' => 'Force Delete Selected', + 'restore' => 'Restore Selected', + ], + ], + 'dashboards' => [ + 'icon' => [ + 'admin' => 'heroicon-m-home', + 'wiki' => 'heroicon-m-home', + ], + 'label' => [ + 'admin' => 'Admin', + 'wiki' => 'Wiki', + ], + ], + 'fields' => [ + 'anime_synonym' => [ + 'text' => [ + 'help' => 'For alternative titles, licensed titles, common abbreviations and/or shortenings', + 'name' => 'Text', + ], + 'type' => [ + 'help' => 'The title type.', + 'name' => 'Type', + ] + ], + 'anime_theme_entry' => [ + 'episodes' => [ + 'help' => 'The range(s) of episodes that the theme entry is used. Can be left blank if used for all episodes or if there are not episodes as with movies. Ex: "1-", "1-11", "1-2, 10, 12".', + 'name' => 'Episodes', + ], + 'notes' => [ + 'help' => 'Any additional information not included in other fields that may be useful', + 'name' => 'Notes', + ], + 'nsfw' => [ + 'help' => 'Does the entry include Not Safe For Work content? Set at your discretion. There will not be rigid guidelines to define when this property should be set.', + 'name' => 'NSFW', + ], + 'spoiler' => [ + 'help' => 'Does the entry include content that spoils the show? You may also include up to which episode is spoiled in Notes (Ex: Ep 6 spoilers).', + 'name' => 'Spoiler', + ], + 'version' => [ + 'help' => 'The Version number of the Theme. Can be left blank if there is only one version. Version is only required if there exist at least 2 in the sequence.', + 'name' => 'Version', + ], + ], + 'anime_theme' => [ + 'sequence' => [ + 'help' => 'Numeric ordering of theme. If only one theme of this type exists for the show, this can be left blank.', + 'name' => 'Sequence', + ], + 'slug' => [ + 'help' => 'Used as the URL Slug / Model Route Key. By default, this should be the Type and Sequence lowercased and "-" replacing spaces. These should be unique within the scope of the anime. Ex: "OP1", "ED1", "OP2-Dub".', + 'name' => 'Slug', + ], + 'type' => [ + 'help' => 'Is this an OP or an ED?', + 'name' => 'Type', + ], + ], + 'anime' => [ + 'name' => [ + 'help' => 'The display title of the Anime. By default, we will use the same title as MAL. Ex: "Bakemonogatari", "Code Geass: Hangyaku no Lelouch", "Dungeon ni Deai wo Motomeru no wa Machigatteiru Darou ka".', + 'name' => 'Name', + ], + 'season' => [ + 'help' => 'The Season in which the Anime premiered. By default, we will use the Premiered Field on the MAL page.', + 'name' => 'Season', + ], + 'slug' => [ + 'help' => 'Used as the URL Slug / Model Route Key. By default, this should be the Name lowercased and "_" replacing spaces. Shortenings/Abbreviations are also accepted. Ex: "monogatari", "code_geass", "danmachi".', + 'name' => 'Slug', + ], + 'synopsis' => [ + 'help' => 'The brief description of the Anime', + 'name' => 'Synopsis', + ], + 'year' => [ + 'help' => 'The Year in which the Anime premiered. By default, we will use the Premiered Field on the MAL page.', + 'name' => 'Year', + ], + 'media_format' => [ + 'help' => 'The Format of the Anime. By default, we will use the Type Field on the MAL page.', + 'name' => 'Media Format' + ], + 'resources' => [ + 'as' => [ + 'help' => 'Used to distinguish resources that map to the same anime. For example, Aware! Meisaku-kun has one MAL page and many aniDB pages.', + 'name' => 'As', + ], + ], + ], + 'artist' => [ + 'groups' => [ + 'as' => [ + 'help' => 'Used in place of the Artist name if the performance is made as a character or group/unit member.', + 'name' => 'As', + ], + ], + 'members' => [ + 'as' => [ + 'help' => 'Used in place of the Artist name if the performance is made as a character or group/unit member', + 'name' => 'As', + ], + ], + 'name' => [ + 'help' => 'The display title of the Artist. By default, we will use the same title as MAL, but we will prefer "[Given Name] [Family name]". Ex: "Aimer", "Yui Horie", "Fear, and Loathing in Las Vegas".', + 'name' => 'Name', + ], + 'resources' => [ + 'as' => [ + 'help' => 'Used to distinguish resources that map to the same artist. For example, the OxT music unit has a dedicated AnidB page but ANN does not.', + 'name' => 'As', + ], + ], + 'slug' => [ + 'help' => 'Used as the URL Slug / Model Route Key. By default, this should be the Name lowercased and "_" replacing spaces. Shortenings/Abbreviations are also accepted. Ex: "aimer", "yui_horie", "falilv"', + 'name' => 'Slug', + ], + 'songs' => [ + 'as' => [ + 'help' => 'Used in place of the Artist name if the performance is made as a character or group/unit member.', + 'name' => 'As', + ], + ], + ], + 'announcement' => [ + 'content' => 'Content', + ], + 'audio' => [ + 'basename' => [ + 'name' => 'Basename', + ], + 'filename' => [ + 'name' => 'Filename', + ], + 'mimetype' => [ + 'name' => 'MIME Type', + ], + 'path' => [ + 'name' => 'Path', + ], + 'size' => [ + 'name' => 'Size', + ], + ], + 'base' => [ + 'created_at' => 'Created At', + 'deleted_at' => 'Deleted At', + 'file_properties' => 'File Properties', + 'id' => 'ID', + 'timestamps' => 'Timestamps', + 'updated_at' => 'Updated At', + ], + 'dump' => [ + 'path' => 'Path', + ], + 'external_resource' => [ + 'external_id' => [ + 'help' => 'The identifier used by the external site.', + 'name' => 'External ID', + ], + 'link' => [ + 'help' => 'The URL of the resource. Ex: https://myanimelist.net/people/8/, https://anidb.net/creator/3/, https://kaguya.love/', + 'name' => 'Link', + ], + 'site' => [ + 'help' => 'The site that we are linking to.', + 'name' => 'Site', + ], + ], + 'feature' => [ + 'key' => [ + 'help' => 'The name of the feature. Class strings label features that require business logic to resolve. Otherwise, this is global value.', + 'name' => 'Key', + ], + 'value' => [ + 'help' => 'Binary state features should be true or false. Rich Feature values can be any string.', + 'name' => 'Value', + ], + ], + 'featured_theme' => [ + 'end_at' => [ + 'help' => 'The datetime that the featured theme should stop being featured.', + 'name' => 'End At', + ], + 'start_at' => [ + 'help' => 'The datetime that the featured theme should start being featured.', + 'name' => 'Start At', + ], + ], + 'group' => [ + 'name' => [ + 'name' => 'Name', + 'help' => 'The name of the group.', + ], + 'slug' => [ + 'name' => 'Slug', + 'help' => 'The slug that will be appended to the slug of the theme that has the group.', + ], + ], + 'image' => [ + 'facet' => [ + 'help' => 'The page component that the image is intended for. Example: Is this a small cover image or a large cover image?', + 'name' => 'Facet', + ], + 'image' => [ + 'name' => 'Image', + ], + 'path' => [ + 'name' => 'Path', + ], + ], + 'page' => [ + 'body' => [ + 'help' => 'The content of the Page.', + 'name' => 'Body', + ], + 'name' => [ + 'help' => 'The display title of the Page.', + 'name' => 'Name', + ], + 'slug' => [ + 'help' => 'Used as the URL Slug / Model Route Key. By default, this should be the Name lowercased and "_" replacing spaces.', + 'name' => 'Slug', + ], + ], + 'permission' => [ + 'name' => 'Name', + ], + 'playlist_track' => [ + 'hashid' => [ + 'help' => 'The short, unique, non-sequential id derived from model identifiers.', + 'name' => 'Hashid', + ], + 'next' => [ + 'help' => 'The next Track in the Playlist', + 'name' => 'Next Track', + ], + 'previous' => [ + 'help' => 'The previous Track in the Playlist', + 'name' => 'Previous Track', + ], + ], + 'playlist' => [ + 'first' => [ + 'help' => 'The first Track of the Playlist', + 'name' => 'First Track', + ], + 'hashid' => [ + 'help' => 'The short, unique, non-sequential id derived from model identifiers.', + 'name' => 'Hashid', + ], + 'last' => [ + 'help' => 'The last Track of the Playlist', + 'name' => 'Last Track', + ], + 'name' => [ + 'help' => 'The display title of the Playlist', + 'name' => 'Name', + ], + 'visibility' => [ + 'help' => 'Who can view this playlist? Private: only the owner. Unlisted: anyone directly linked to the playlist. Public: anyone can search for the playlist.', + 'name' => 'Visibility', + ], + ], + 'role' => [ + 'color' => [ + 'help' => 'The color that will be used on the profile screen to designate the user.', + 'name' => 'Color', + ], + 'default' => [ + 'help' => 'Should this role be assigned to new users upon email verification?', + 'name' => 'Default', + ], + 'name' => 'Name', + 'priority' => [ + 'help' => 'The weight assigned to a role. Higher numbers are higher priority.', + 'name' => 'Priority', + ], + ], + 'series' => [ + 'name' => [ + 'help' => 'The display title of the Series. Ex: "Monogatari", "Code Geass", "Dungeon ni Deai wo Motomeru no wa Machigatteiru Darou ka".', + 'name' => 'Name', + ], + 'slug' => [ + 'help' => 'Used as the URL Slug / Model Route Key. By default, this should be the Name lowercased and "_" replacing spaces. Shortenings/Abbreviations are also accepted. Ex: "monogatari", "code_geass", "danmachi".', + 'name' => 'Slug', + ], + ], + 'song' => [ + 'title' => [ + 'help' => 'The title of the song', + 'name' => 'Title', + ], + 'resources' => [ + 'as' => [ + 'help' => 'Used to distinguish resources that map to the same song.', + 'name' => 'As' + ] + ] + ], + 'studio' => [ + 'name' => [ + 'help' => 'The display title of the Studio', + 'name' => 'Name', + ], + 'resources' => [ + 'as' => [ + 'help' => 'Used to distinguish resources that map to the same studio.', + 'name' => 'As', + ], + ], + 'slug' => [ + 'help' => 'Used as the URL Slug / Model Route Key. By default, this should be the Name lowercased and "_" replacing spaces. Shortenings/Abbreviations are also accepted.', + 'name' => 'Slug', + ], + ], + 'user' => [ + 'avatar' => 'Avatar', + 'email' => 'Email', + 'name' => 'Name', + ], + 'video_script' => [ + 'path' => 'Path', + ], + 'video' => [ + 'basename' => [ + 'name' => 'Basename', + ], + 'filename' => [ + 'name' => 'Filename', + ], + 'lyrics' => [ + 'help' => 'Set if this video has subtitles for song lyrics.', + 'name' => 'Lyrics', + ], + 'mimetype' => [ + 'name' => 'MIME Type', + ], + 'nc' => [ + 'help' => 'Set if this video is creditless.', + 'name' => 'NC', + ], + 'overlap' => [ + 'help' => 'The degree to which the sequence and episode content overlap. None: No overlap. Transition: partial overlap. Over: full overlap.', + 'name' => 'Overlap', + ], + 'path' => [ + 'name' => 'Path', + ], + 'resolution' => [ + 'help' => 'Frame height of the video', + 'name' => 'Resolution', + ], + 'size' => [ + 'name' => 'Size', + ], + 'source' => [ + 'help' => 'Where did this video come from?', + 'name' => 'Source', + ], + 'subbed' => [ + 'help' => 'Set if this video has subtitles of dialogue.', + 'name' => 'Subbed', + ], + 'uncen' => [ + 'help' => 'Set if this video is an uncensored version of a censored sequence.', + 'name' => 'Uncensored', + ], + ], + ], + 'filters' => [ + 'anime' => [ + 'year_from' => 'Year - From', + 'year_to' => 'Year - To', + ], + 'anime_theme' => [ + 'sequence_from' => 'Sequence - From', + 'sequence_to' => 'Sequence - To', + ], + 'anime_theme_entry' => [ + 'version_from' => 'Version - From', + 'version_to' => 'Version - To', + ], + 'audio' => [ + 'size_from' => 'Size - From', + 'size_to' => 'Size - To' + ], + 'base' => [ + 'created_at_from' => 'Created At - From', + 'created_at_to' => 'Created At - To', + 'updated_at_from' => 'Updated At - From', + 'updated_at_to' => 'Updated At - To', + 'deleted_at_from' => 'Deleted At - From', + 'deleted_at_to' => 'Deleted At - To', + ], + 'external_resource' => [ + 'external_id_from' => 'External ID - From', + 'external_id_to' => 'External ID - To', + ], + 'role' => [ + 'priority_from' => 'Priority - From', + 'priority_to' => 'Priority - To', + ], + 'video' => [ + 'resolution_from' => 'Resolution - From', + 'resolution_to' => 'Resolution - To', + 'size_from' => 'Size - From', + 'size_to' => 'Size - To' + ], + ], + 'resources' => [ + 'group' => [ + 'admin' => 'Admin', + 'auth' => 'Auth', + 'document' => 'Document', + 'list' => 'List', + 'wiki' => 'Wiki', + ], + 'icon' => [ + 'anime_synonyms' => 'heroicon-o-list-bullet', + 'anime_theme_entries' => 'heroicon-o-list-bullet', + 'anime_themes' => 'heroicon-o-list-bullet', + 'anime' => 'heroicon-o-tv', + 'announcements' => 'heroicon-o-megaphone', + 'artists' => 'heroicon-o-user-circle', + 'audios' => 'heroicon-o-speaker-wave', + 'dumps' => 'heroicon-o-circle-stack', + 'external_resources' => 'heroicon-o-arrow-top-right-on-square', + 'features' => 'heroicon-o-cog-6-tooth', + 'featured_themes' => 'heroicon-o-list-bullet', + 'groups' => 'heroicon-o-folder-open', + 'images' => 'heroicon-o-photo', + 'members' => '', + 'pages' => 'heroicon-o-document-text', + 'permissions' => 'heroicon-o-information-circle', + 'playlist_tracks' => 'heroicon-o-play', + 'playlists' => 'heroicon-o-play', + 'roles' => 'heroicon-o-briefcase', + 'series' => 'heroicon-o-folder', + 'songs' => 'heroicon-o-musical-note', + 'studios' => 'heroicon-o-building-office', + 'users' => 'heroicon-o-users', + 'video_scripts' => 'heroicon-o-document-text', + 'videos' => 'heroicon-o-film', + ], + 'label' => [ + 'anime_synonyms' => 'Anime Synonyms', + 'anime_theme_entries' => 'Anime Theme Entries', + 'anime_themes' => 'Anime Themes', + 'anime' => 'Anime', + 'announcements' => 'Announcements', + 'artists' => 'Artists', + 'audios' => 'Audios', + 'dumps' => 'Dumps', + 'external_resources' => 'External Resources', + 'features' => 'Features', + 'featured_themes' => 'Featured Themes', + 'groups' => 'Groups', + 'images' => 'Images', + 'members' => 'Members', + 'pages' => 'Pages', + 'permissions' => 'Permissions', + 'playlist_tracks' => 'Playlist Tracks', + 'playlists' => 'Playlists', + 'roles' => 'Roles', + 'series' => 'Series', + 'songs' => 'Songs', + 'studios' => 'Studios', + 'users' => 'Users', + 'video_scripts' => 'Video Scripts', + 'videos' => 'Videos', + ], + 'singularLabel' => [ + 'anime_synonym' => 'Anime Synonym', + 'anime_theme_entry' => 'Anime Theme Entry', + 'anime_theme' => 'Anime Theme', + 'anime' => 'Anime', + 'announcement' => 'Announcement', + 'artist' => 'Artist', + 'audio' => 'Audio', + 'dump' => 'Dump', + 'external_resource' => 'External Resource', + 'feature' => 'Feature', + 'featured_theme' => 'Featured Theme', + 'group' => 'Group', + 'image' => 'Image', + 'page' => 'Page', + 'permission' => 'Permission', + 'playlist_track' => 'Playlist Track', + 'playlist' => 'Playlist', + 'role' => 'Role', + 'series' => 'Series', + 'song' => 'Song', + 'studio' => 'Studio', + 'user' => 'User', + 'video_script' => 'Video Script', + 'video' => 'Video', + ], + ], + 'tabs' => [ + 'anime' => [ + 'images' => [ + 'name' => 'Without :facet Image', + ], + 'resources' => [ + 'name' => 'Without :site Resource', + ], + 'streaming_resources' => [ + 'name' => 'Without Streaming Resources', + ], + 'studios' => [ + 'name' => 'Without Studios', + ], + ], + 'artist' => [ + 'images' => [ + 'name' => 'Without :facet Image', + ], + 'resources' => [ + 'name' => 'Without :site Resource', + ], + 'songs' => [ + 'name' => 'Without Songs', + ], + ], + 'audio' => [ + 'video' => [ + 'name' => 'Without Video', + ], + ], + 'external_resource' => [ + 'unlinked' => [ + 'name' => 'Without Anime or Artist or Song or Studio', + ], + ], + 'image' => [ + 'unlinked' => [ + 'name' => 'Without Anime or Artist or Studio', + ], + ], + 'song' => [ + 'artist' => [ + 'name' => 'Without Artists', + ], + 'resources' => [ + 'name' => 'Without :site Resource', + ] + ], + 'studio' => [ + 'images' => [ + 'name' => 'Without :facet Image', + ], + 'resources' => [ + 'name' => 'Without :site Resource', + ], + 'unlinked' => [ + 'name' => 'Without Anime', + ], + ], + 'video' => [ + 'audio' => [ + 'name' => 'Without Audio', + ], + 'resolution' => [ + 'name' => 'With Unset Resolution', + ], + 'script' => [ + 'name' => 'Without Script', + ], + 'source' => [ + 'name' => 'With Unknown Source Type', + ], + 'unlinked' => [ + 'name' => 'Without Entries', + ], + ], + ], + 'widgets' => [ + 'month' => [ + 'jan' => 'Jan', + 'feb' => 'Feb', + 'mar' => 'Mar', + 'apr' => 'Apr', + 'may' => 'May', + 'jun' => 'Jun', + 'jul' => 'Jul', + 'aug' => 'Aug', + 'sep' => 'Sep', + 'oct' => 'Oct', + 'nov' => 'Nov', + 'dec' => 'Dec', + ], + ], +]; diff --git a/phpstan.neon b/phpstan.neon index 08caf257b..a5573f6d9 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -21,3 +21,6 @@ parameters: - '#Call to an undefined method Mockery\\ExpectationInterface|Mockery\\HigherOrderMessage::once\(\).#' - '#Strict comparison using === between class-string and null will always evaluate to false.#' - '#Call to an undefined method Database\\Factories.*::trashed\(\).#' + - + message: '#Call to an undefined static method App\\Models\\BaseModel::search\(\).#' + path: app/Filament/Components/Fields/Select.php diff --git a/public/css/filament/filament/app.css b/public/css/filament/filament/app.css new file mode 100644 index 000000000..5fa28f939 --- /dev/null +++ b/public/css/filament/filament/app.css @@ -0,0 +1 @@ +/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgba(var(--gray-200),1);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgba(var(--gray-400),1);opacity:1}input::placeholder,textarea::placeholder{color:rgba(var(--gray-400),1);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:rgba(var(--gray-500),var(--tw-border-opacity,1));border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,input:where(:not([type])):focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:rgba(var(--gray-500),var(--tw-text-opacity,1));opacity:1}input::placeholder,textarea::placeholder{color:rgba(var(--gray-500),var(--tw-text-opacity,1));opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='rgba(var(--gray-500), var(--tw-stroke-opacity, 1))' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:rgba(var(--gray-500),var(--tw-border-opacity,1));border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active) {[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active) {[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media (forced-colors:active) {[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}:root.dark{color-scheme:dark}[data-field-wrapper]{scroll-margin-top:8rem}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-left-color:var(--tw-prose-quote-borders);border-left-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-left:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-bottom:2em;margin-top:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);color:var(--tw-prose-kbd);font-family:inherit;font-size:.875em;font-weight:500;padding:.1875em .375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;text-align:left;width:100%}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.8888889em;margin-top:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;line-height:1.2;margin-bottom:.8em;margin-top:0}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;line-height:1.4;margin-bottom:.8em;margin-top:1.6em}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.5555556em}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.4285714;margin-bottom:.5714286em;margin-top:1.4285714em}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8571429em;padding:.1428571em .3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.25rem;font-size:.8571429em;line-height:1.6666667;margin-bottom:1.6666667em;margin-top:1.6666667em;padding:.6666667em 1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-left:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-left:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.2857143em;margin-top:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(.prose-sm>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-left:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2.8571429em;margin-top:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.6666667em;padding-left:1em;padding-right:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.6666667em 1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-base{font-size:1rem;line-height:1.75}.prose-base :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose-base :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose-base :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6em;margin-top:1.6em;padding-left:1em}.prose-base :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.25em;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose-base :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5em;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose-base :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose-base :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose-base :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-base :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.875em;padding:.1875em .375em}.prose-base :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-base :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.875em;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;padding:.8571429em 1.1428571em}.prose-base :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose-base :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose-base :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose-base :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose-base :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose-base :where(.prose-base>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(.prose-base>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose-base>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose-base :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose-base :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3em;margin-top:3em}.prose-base :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857}.prose-base :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em}.prose-base :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-base :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-base :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-base :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-base :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose-base :where(.prose-base>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(.prose-base>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-left:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8888889em;padding:.2222222em .4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding:1em 1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.6666667em;margin-top:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(.prose-lg>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-left:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.75em;padding-left:.75em;padding-right:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-4{inset:1rem}.inset-x-0{left:0;right:0}.inset-x-4{left:1rem;right:1rem}.inset-y-0{bottom:0;top:0}.-bottom-1\/2{bottom:-50%}.-top-1{top:-.25rem}.-top-1\/2{top:-50%}.-top-2{top:-.5rem}.-top-3{top:-.75rem}.bottom-0{bottom:0}.bottom-1\/2{bottom:50%}.end-0{inset-inline-end:0}.end-4{inset-inline-end:1rem}.end-6{inset-inline-end:1.5rem}.left-3{left:.75rem}.start-0{inset-inline-start:0}.start-full{inset-inline-start:100%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-6{top:1.5rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-\[--col-span-default\]{grid-column:var(--col-span-default)}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-\[--col-start-default\]{grid-column-start:var(--col-start-default)}.-m-0{margin:0}.-m-0\.5{margin:-.125rem}.-m-1{margin:-.25rem}.-m-1\.5{margin:-.375rem}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.-m-3{margin:-.75rem}.-m-3\.5{margin:-.875rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-16{margin-bottom:4rem;margin-top:4rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-auto{margin-bottom:auto;margin-top:auto}.\!mt-0{margin-top:0!important}.-mb-4{margin-bottom:-1rem}.-mb-6{margin-bottom:-1.5rem}.-me-2{margin-inline-end:-.5rem}.-ms-0{margin-inline-start:0}.-ms-0\.5{margin-inline-start:-.125rem}.-ms-1{margin-inline-start:-.25rem}.-ms-2{margin-inline-start:-.5rem}.-mt-3{margin-top:-.75rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.-mt-7{margin-top:-1.75rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.me-1{margin-inline-end:.25rem}.me-4{margin-inline-end:1rem}.me-6{margin-inline-end:1.5rem}.ml-auto{margin-left:auto}.ms-1{margin-inline-start:.25rem}.ms-auto{margin-inline-start:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:24rem}.min-h-\[theme\(spacing\.48\)\]{min-height:12rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[calc\(100\%\+2rem\)\]{width:calc(100% + 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[theme\(spacing\.4\)\]{min-width:1rem}.min-w-\[theme\(spacing\.5\)\]{min-width:1.25rem}.min-w-\[theme\(spacing\.6\)\]{min-width:1.5rem}.min-w-\[theme\(spacing\.8\)\]{min-width:2rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[14rem\]{max-width:14rem}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-12,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-12{--tw-translate-x:-3rem}.-translate-x-5{--tw-translate-x:-1.25rem}.-translate-x-5,.-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.-translate-y-12{--tw-translate-y:-3rem}.-translate-y-12,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-12{--tw-translate-x:3rem}.translate-x-12,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-12{--tw-translate-y:3rem}.-rotate-180{--tw-rotate:-180deg}.-rotate-180,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.scroll-mt-9{scroll-margin-top:2.25rem}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.columns-\[--cols-default\]{-moz-columns:var(--cols-default);columns:var(--cols-default)}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[--cols-default\]{grid-template-columns:var(--cols-default)}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[repeat\(7\2c minmax\(theme\(spacing\.7\)\2c 1fr\)\)\]{grid-template-columns:repeat(7,minmax(1.75rem,1fr))}.grid-cols-\[repeat\(auto-fit\2c minmax\(0\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-6{row-gap:1.5rem}.gap-y-7{row-gap:1.75rem}.gap-y-8{row-gap:2rem}.gap-y-px{row-gap:1px}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.25rem*var(--tw-space-x-reverse))}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.5rem*var(--tw-space-x-reverse))}.-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.75rem*var(--tw-space-x-reverse))}.-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1rem*var(--tw-space-x-reverse))}.-space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.25rem*var(--tw-space-x-reverse))}.-space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.5rem*var(--tw-space-x-reverse))}.-space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.75rem*var(--tw-space-x-reverse))}.-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(1px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(var(--gray-100),var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(var(--gray-200),var(--tw-divide-opacity))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-x-\[0\.5px\]{border-left-width:.5px;border-right-width:.5px}.border-y{border-bottom-width:1px;border-top-width:1px}.\!border-t-0{border-top-width:0!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-e{border-inline-end-width:1px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.\!border-none{border-style:none!important}.border-none{border-style:none}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--gray-100),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--gray-300),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--gray-600),var(--tw-border-opacity))}.border-primary-500{--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}.border-primary-600{--tw-border-opacity:1;border-color:rgba(var(--primary-600),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-t-gray-200{--tw-border-opacity:1;border-top-color:rgba(var(--gray-200),var(--tw-border-opacity))}.\!bg-gray-50{--tw-bg-opacity:1!important;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))!important}.\!bg-gray-700{--tw-bg-opacity:1!important;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))!important}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-custom-100{--tw-bg-opacity:1;background-color:rgba(var(--c-100),var(--tw-bg-opacity))}.bg-custom-50{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.bg-custom-600{--tw-bg-opacity:1;background-color:rgba(var(--c-600),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(var(--gray-200),var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.bg-gray-950\/50{background-color:rgba(var(--gray-950),.5)}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/0{background-color:hsla(0,0%,100%,0)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-6{padding-inline-end:1.5rem}.pe-8{padding-inline-end:2rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-\[5\.25rem\]{padding-inline-start:5.25rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-loose{line-height:2}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.text-custom-400{--tw-text-opacity:1;color:rgba(var(--c-400),var(--tw-text-opacity))}.text-custom-50{--tw-text-opacity:1;color:rgba(var(--c-50),var(--tw-text-opacity))}.text-custom-500{--tw-text-opacity:1;color:rgba(var(--c-500),var(--tw-text-opacity))}.text-custom-600{--tw-text-opacity:1;color:rgba(var(--c-600),var(--tw-text-opacity))}.text-custom-700\/50{color:rgba(var(--c-700),.5)}.text-danger-600{--tw-text-opacity:1;color:rgba(var(--danger-600),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--gray-100),var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.text-gray-700\/50{color:rgba(var(--gray-700),.5)}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-custom-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-600),var(--tw-ring-opacity))}.ring-custom-600\/10{--tw-ring-color:rgba(var(--c-600),0.1)}.ring-custom-600\/20{--tw-ring-color:rgba(var(--c-600),0.2)}.ring-danger-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-300),var(--tw-ring-opacity))}.ring-gray-600\/10{--tw-ring-color:rgba(var(--gray-600),0.1)}.ring-gray-900\/10{--tw-ring-color:rgba(var(--gray-900),0.1)}.ring-gray-950\/10{--tw-ring-color:rgba(var(--gray-950),0.1)}.ring-gray-950\/5{--tw-ring-color:rgba(var(--gray-950),0.05)}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.ring-white\/10{--tw-ring-color:hsla(0,0%,100%,.1)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[transform\:translateZ\(0\)\]{transform:translateZ(0)}:is(.dark .dark\:prose-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-y-0:before{bottom:0;content:var(--tw-content);top:0}.before\:start-0:before{content:var(--tw-content);inset-inline-start:0}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-0:before{content:var(--tw-content);width:0}.before\:w-0\.5:before{content:var(--tw-content);width:.125rem}.before\:bg-primary-600:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity));content:var(--tw-content)}.first\:border-s-0:first-child{border-inline-start-width:0}.first\:border-t-0:first-child{border-top-width:0}.last\:border-e-0:last-child{border-inline-end-width:0}.first-of-type\:ps-1:first-of-type{padding-inline-start:.25rem}.last-of-type\:pe-1:last-of-type{padding-inline-end:.25rem}.checked\:ring-0:checked{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:bg-gray-50:focus-within{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-danger-600:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.focus-within\:ring-primary-600:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.hover\:bg-custom-400\/10:hover{background-color:rgba(var(--c-400),.1)}.hover\:bg-custom-50:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.hover\:bg-custom-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.hover\:bg-gray-400\/10:hover{background-color:rgba(var(--gray-400),.1)}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.hover\:text-custom-600:hover{--tw-text-opacity:1;color:rgba(var(--c-600),var(--tw-text-opacity))}.hover\:text-custom-700\/75:hover{color:rgba(var(--c-700),.75)}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.hover\:text-gray-700\/75:hover{color:rgba(var(--gray-700),.75)}.hover\:opacity-100:hover{opacity:1}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-danger-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.focus\:ring-primary-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.checked\:focus\:ring-danger-500\/50:focus:checked{--tw-ring-color:rgba(var(--danger-500),0.5)}.checked\:focus\:ring-primary-500\/50:focus:checked{--tw-ring-color:rgba(var(--primary-500),0.5)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-primary-500:focus-visible{--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}.focus-visible\:bg-custom-50:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.focus-visible\:bg-gray-100:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.focus-visible\:bg-gray-50:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.focus-visible\:text-custom-700\/75:focus-visible{color:rgba(var(--c-700),.75)}.focus-visible\:text-gray-500:focus-visible{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.focus-visible\:text-gray-700\/75:focus-visible{color:rgba(var(--gray-700),.75)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-custom-500\/50:focus-visible{--tw-ring-color:rgba(var(--c-500),0.5)}.focus-visible\:ring-custom-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-600),var(--tw-ring-opacity))}.focus-visible\:ring-gray-400\/40:focus-visible{--tw-ring-color:rgba(var(--gray-400),0.4)}.focus-visible\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}.focus-visible\:ring-primary-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.enabled\:cursor-wait:enabled{cursor:wait}.enabled\:opacity-70:enabled{opacity:.7}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:bg-gray-50:disabled{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.disabled\:text-gray-50:disabled{--tw-text-opacity:1;color:rgba(var(--gray-50),var(--tw-text-opacity))}.disabled\:text-gray-500:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled{-webkit-text-fill-color:rgba(var(--gray-500),1)}.disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled::-moz-placeholder{-webkit-text-fill-color:rgba(var(--gray-400),1)}.disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled::placeholder{-webkit-text-fill-color:rgba(var(--gray-400),1)}.disabled\:checked\:bg-current:checked:disabled{background-color:currentColor}.disabled\:checked\:text-gray-400:checked:disabled{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.group\/item:first-child .group-first\/item\:rounded-s-lg{border-end-start-radius:.5rem;border-start-start-radius:.5rem}.group\/item:last-child .group-last\/item\:rounded-e-lg{border-end-end-radius:.5rem;border-start-end-radius:.5rem}.group:hover .group-hover\:text-gray-500,.group\/button:hover .group-hover\/button\:text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.group\/item:hover .group-hover\/item\:underline,.group\/link:hover .group-hover\/link\:underline{text-decoration-line:underline}.group:focus-visible .group-focus-visible\:text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.group:focus-visible .group-focus-visible\:text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.group\/item:focus-visible .group-focus-visible\/item\:underline{text-decoration-line:underline}.group\/link:focus-visible .group-focus-visible\/link\:underline{text-decoration-line:underline}:is(.dark .dark\:inline-flex){display:inline-flex}:is(.dark .dark\:hidden){display:none}:is(.dark .dark\:divide-white\/10)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:divide-white\/5)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:border-gray-600){--tw-border-opacity:1;border-color:rgba(var(--gray-600),var(--tw-border-opacity))}:is(.dark .dark\:border-gray-700){--tw-border-opacity:1;border-color:rgba(var(--gray-700),var(--tw-border-opacity))}:is(.dark .dark\:border-primary-500){--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}:is(.dark .dark\:border-white\/10){border-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:border-white\/5){border-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:border-t-white\/10){border-top-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:\!bg-gray-700){--tw-bg-opacity:1!important;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))!important}:is(.dark .dark\:bg-custom-400\/10){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:bg-custom-500){--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-custom-500\/20){background-color:rgba(var(--c-500),.2)}:is(.dark .dark\:bg-gray-400\/10){background-color:rgba(var(--gray-400),.1)}:is(.dark .dark\:bg-gray-500){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-500\/20){background-color:rgba(var(--gray-500),.2)}:is(.dark .dark\:bg-gray-600){--tw-bg-opacity:1;background-color:rgba(var(--gray-600),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-700){--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900){--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900\/30){background-color:rgba(var(--gray-900),.3)}:is(.dark .dark\:bg-gray-950){--tw-bg-opacity:1;background-color:rgba(var(--gray-950),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-950\/75){background-color:rgba(var(--gray-950),.75)}:is(.dark .dark\:bg-primary-400){--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity))}:is(.dark .dark\:bg-primary-500){--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:bg-white\/10){background-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:bg-white\/5){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:fill-current){fill:currentColor}:is(.dark .dark\:text-custom-300\/50){color:rgba(var(--c-300),.5)}:is(.dark .dark\:text-custom-400){--tw-text-opacity:1;color:rgba(var(--c-400),var(--tw-text-opacity))}:is(.dark .dark\:text-custom-400\/10){color:rgba(var(--c-400),.1)}:is(.dark .dark\:text-danger-400){--tw-text-opacity:1;color:rgba(var(--danger-400),var(--tw-text-opacity))}:is(.dark .dark\:text-danger-500){--tw-text-opacity:1;color:rgba(var(--danger-500),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-300\/50){color:rgba(var(--gray-300),.5)}:is(.dark .dark\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-500){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-700){--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-800){--tw-text-opacity:1;color:rgba(var(--gray-800),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-400){--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-500){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-white\/5){color:hsla(0,0%,100%,.05)}:is(.dark .dark\:ring-custom-400\/30){--tw-ring-color:rgba(var(--c-400),0.3)}:is(.dark .dark\:ring-custom-500){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-500),var(--tw-ring-opacity))}:is(.dark .dark\:ring-danger-500){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-400\/20){--tw-ring-color:rgba(var(--gray-400),0.2)}:is(.dark .dark\:ring-gray-50\/10){--tw-ring-color:rgba(var(--gray-50),0.1)}:is(.dark .dark\:ring-gray-700){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-700),var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-900){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-900),var(--tw-ring-opacity))}:is(.dark .dark\:ring-white\/10){--tw-ring-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:ring-white\/20){--tw-ring-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:placeholder\:text-gray-500)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:placeholder\:text-gray-500)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:before\:bg-primary-500):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity));content:var(--tw-content)}:is(.dark .dark\:checked\:bg-danger-500:checked){--tw-bg-opacity:1;background-color:rgba(var(--danger-500),var(--tw-bg-opacity))}:is(.dark .dark\:checked\:bg-primary-500:checked){--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}:is(.dark .dark\:focus-within\:bg-white\/5:focus-within){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:focus-within\:ring-danger-500:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus-within\:ring-primary-500:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:hover\:bg-custom-400:hover){--tw-bg-opacity:1;background-color:rgba(var(--c-400),var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-custom-400\/10:hover){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:hover\:bg-white\/10:hover){background-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:hover\:bg-white\/5:hover){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:hover\:text-custom-300:hover){--tw-text-opacity:1;color:rgba(var(--c-300),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-custom-300\/75:hover){color:rgba(var(--c-300),.75)}:is(.dark .dark\:hover\:text-gray-200:hover){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-gray-300\/75:hover){color:rgba(var(--gray-300),.75)}:is(.dark .dark\:hover\:text-gray-400:hover){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:hover\:ring-white\/20:hover){--tw-ring-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:focus\:ring-danger-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-primary-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:checked\:focus\:ring-danger-400\/50:focus:checked){--tw-ring-color:rgba(var(--danger-400),0.5)}:is(.dark .dark\:checked\:focus\:ring-primary-400\/50:focus:checked){--tw-ring-color:rgba(var(--primary-400),0.5)}:is(.dark .dark\:focus-visible\:border-primary-500:focus-visible){--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}:is(.dark .dark\:focus-visible\:bg-custom-400\/10:focus-visible){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:focus-visible\:bg-white\/5:focus-visible){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:focus-visible\:text-custom-300\/75:focus-visible){color:rgba(var(--c-300),.75)}:is(.dark .dark\:focus-visible\:text-gray-300\/75:focus-visible){color:rgba(var(--gray-300),.75)}:is(.dark .dark\:focus-visible\:text-gray-400:focus-visible){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:focus-visible\:ring-custom-400\/50:focus-visible){--tw-ring-color:rgba(var(--c-400),0.5)}:is(.dark .dark\:focus-visible\:ring-custom-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus-visible\:ring-primary-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:disabled\:bg-transparent:disabled){background-color:transparent}:is(.dark .dark\:disabled\:text-gray-400:disabled){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:disabled\:ring-white\/10:disabled){--tw-ring-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:disabled\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled){-webkit-text-fill-color:rgba(var(--gray-400),1)}:is(.dark .dark\:disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled)::-moz-placeholder{-webkit-text-fill-color:rgba(var(--gray-500),1)}:is(.dark .dark\:disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled)::placeholder{-webkit-text-fill-color:rgba(var(--gray-500),1)}:is(.dark .dark\:disabled\:checked\:bg-gray-600:checked:disabled){--tw-bg-opacity:1;background-color:rgba(var(--gray-600),var(--tw-bg-opacity))}:is(.dark .group\/button:hover .dark\:group-hover\/button\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .group:focus-visible .dark\:group-focus-visible\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .group:focus-visible .dark\:group-focus-visible\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}@media (min-width:640px){.sm\:relative{position:relative}.sm\:inset-x-auto{left:auto;right:auto}.sm\:end-0{inset-inline-end:0}.sm\:col-\[--col-span-sm\]{grid-column:var(--col-span-sm)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-start-\[--col-start-sm\]{grid-column-start:var(--col-start-sm)}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:mt-7{margin-top:1.75rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:table-cell{display:table-cell}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:hidden{display:none}.sm\:w-\[calc\(100\%\+3rem\)\]{width:calc(100% + 3rem)}.sm\:w-screen{width:100vw}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-5xl{max-width:64rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-7xl{max-width:80rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:max-w-xs{max-width:20rem}.sm\:columns-\[--cols-sm\]{-moz-columns:var(--cols-sm);columns:var(--cols-sm)}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[--cols-sm\]{grid-template-columns:var(--cols-sm)}.sm\:grid-cols-\[repeat\(auto-fit\2c minmax\(0\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-1{gap:.25rem}.sm\:gap-3{gap:.75rem}.sm\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:rounded-xl{border-radius:.75rem}.sm\:p-10{padding:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-1{padding-bottom:.25rem;padding-top:.25rem}.sm\:py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:pt-1{padding-top:.25rem}.sm\:pt-1\.5{padding-top:.375rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}.sm\:first-of-type\:ps-3:first-of-type{padding-inline-start:.75rem}.sm\:first-of-type\:ps-6:first-of-type{padding-inline-start:1.5rem}.sm\:last-of-type\:pe-3:last-of-type{padding-inline-end:.75rem}.sm\:last-of-type\:pe-6:last-of-type{padding-inline-end:1.5rem}}@media (min-width:768px){.md\:bottom-4{bottom:1rem}.md\:order-first{order:-9999}.md\:col-\[--col-span-md\]{grid-column:var(--col-span-md)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-start-\[--col-start-md\]{grid-column-start:var(--col-start-md)}.md\:block{display:block}.md\:flex{display:flex}.md\:table-cell{display:table-cell}.md\:inline-grid{display:inline-grid}.md\:hidden{display:none}.md\:columns-\[--cols-md\]{-moz-columns:var(--cols-md);columns:var(--cols-md)}.md\:grid-flow-col{grid-auto-flow:column}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[--cols-md\]{grid-template-columns:var(--cols-md)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:gap-1{gap:.25rem}.md\:gap-3{gap:.75rem}.md\:divide-y-0>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(0px*var(--tw-divide-y-reverse));border-top-width:calc(0px*(1 - var(--tw-divide-y-reverse)))}.md\:rounded-xl{border-radius:.75rem}.md\:p-20{padding:5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:ps-3{padding-inline-start:.75rem}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:z-0{z-index:0}.lg\:col-\[--col-span-lg\]{grid-column:var(--col-span-lg)}.lg\:col-start-\[--col-start-lg\]{grid-column-start:var(--col-start-lg)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:table-cell{display:table-cell}.lg\:inline-grid{display:inline-grid}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:max-w-xs{max-width:20rem}.lg\:-translate-x-full{--tw-translate-x:-100%}.lg\:-translate-x-full,.lg\:translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:translate-x-0{--tw-translate-x:0px}.lg\:columns-\[--cols-lg\]{-moz-columns:var(--cols-lg);columns:var(--cols-lg)}.lg\:grid-cols-\[--cols-lg\]{grid-template-columns:var(--cols-lg)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:gap-1{gap:.25rem}.lg\:gap-3{gap:.75rem}.lg\:bg-transparent{background-color:transparent}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pe-8{padding-inline-end:2rem}.lg\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.lg\:shadow-none,.lg\:shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lg\:shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lg\:ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lg\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.lg\:transition-none{transition-property:none}.lg\:delay-100{transition-delay:.1s}:is(.dark .dark\:lg\:bg-transparent){background-color:transparent}}@media (min-width:1280px){.xl\:col-\[--col-span-xl\]{grid-column:var(--col-span-xl)}.xl\:col-start-\[--col-start-xl\]{grid-column-start:var(--col-start-xl)}.xl\:block{display:block}.xl\:table-cell{display:table-cell}.xl\:inline-grid{display:inline-grid}.xl\:hidden{display:none}.xl\:columns-\[--cols-xl\]{-moz-columns:var(--cols-xl);columns:var(--cols-xl)}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[--cols-xl\]{grid-template-columns:var(--cols-xl)}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:gap-1{gap:.25rem}.xl\:gap-3{gap:.75rem}}@media (min-width:1536px){.\32xl\:col-\[--col-span-2xl\]{grid-column:var(--col-span-2xl)}.\32xl\:col-start-\[--col-start-2xl\]{grid-column-start:var(--col-start-2xl)}.\32xl\:block{display:block}.\32xl\:table-cell{display:table-cell}.\32xl\:inline-grid{display:inline-grid}.\32xl\:hidden{display:none}.\32xl\:columns-\[--cols-2xl\]{-moz-columns:var(--cols-2xl);columns:var(--cols-2xl)}.\32xl\:grid-cols-\[--cols-2xl\]{grid-template-columns:var(--cols-2xl)}.\32xl\:flex-row{flex-direction:row}.\32xl\:items-start{align-items:flex-start}.\32xl\:items-end{align-items:flex-end}.\32xl\:items-center{align-items:center}.\32xl\:gap-1{gap:.25rem}.\32xl\:gap-3{gap:.75rem}}.ltr\:hidden:where([dir=ltr],[dir=ltr] *){display:none}.rtl\:hidden:where([dir=rtl],[dir=rtl] *){display:none}.rtl\:-translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-5:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-1\/2:where([dir=rtl],[dir=rtl] *){--tw-translate-x:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.rtl\:divide-x-reverse:where([dir=rtl],[dir=rtl] *)>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}@media (min-width:1024px){.rtl\:lg\:-translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:lg\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.\[\&\.trix-active\]\:bg-gray-50.trix-active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.\[\&\.trix-active\]\:text-primary-600.trix-active{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity))}:is(.dark .dark\:\[\&\.trix-active\]\:bg-white\/5.trix-active){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:\[\&\.trix-active\]\:text-primary-400.trix-active){--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}.\[\&\:not\(\:first-of-type\)\]\:border-s:not(:first-of-type){border-inline-start-width:1px}.\[\&\:not\(\:last-of-type\)\]\:border-e:not(:last-of-type){border-inline-end-width:1px}.\[\&\:not\(\:nth-child\(1_of_\.fi-btn\)\)\]\:shadow-\[-1px_0_0_0_theme\(colors\.gray\.200\)\]:not(:nth-child(1 of .fi-btn)){--tw-shadow:-1px 0 0 0 rgba(var(--gray-200),1);--tw-shadow-colored:-1px 0 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .dark\:\[\&\:not\(\:nth-child\(1_of_\.fi-btn\)\)\]\:shadow-\[-1px_0_0_0_theme\(colors\.white\/20\%\)\]:not(:nth-child(1 of .fi-btn))){--tw-shadow:-1px 0 0 0 hsla(0,0%,100%,.2);--tw-shadow-colored:-1px 0 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.\[\&\:not\(\:nth-last-child\(1_of_\.fi-btn\)\)\]\:me-px:not(:nth-last-child(1 of .fi-btn)){margin-inline-end:1px}.\[\&\:nth-child\(1_of_\.fi-btn\)\]\:rounded-s-lg:nth-child(1 of .fi-btn){border-end-start-radius:.5rem;border-start-start-radius:.5rem}.\[\&\:nth-last-child\(1_of_\.fi-btn\)\]\:rounded-e-lg:nth-last-child(1 of .fi-btn){border-end-end-radius:.5rem;border-start-end-radius:.5rem}.\[\&\>\*\:first-child\]\:relative>:first-child{position:relative}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\*\:first-child\]\:before\:absolute>:first-child:before{content:var(--tw-content);position:absolute}.\[\&\>\*\:first-child\]\:before\:inset-y-0>:first-child:before{bottom:0;content:var(--tw-content);top:0}.\[\&\>\*\:first-child\]\:before\:start-0>:first-child:before{content:var(--tw-content);inset-inline-start:0}.\[\&\>\*\:first-child\]\:before\:w-0\.5>:first-child:before{content:var(--tw-content);width:.125rem}.\[\&\>\*\:first-child\]\:before\:bg-primary-600>:first-child:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity));content:var(--tw-content)}:is(.dark .\[\&\>\*\:first-child\]\:dark\:before\:bg-primary-500)>:first-child:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity));content:var(--tw-content)}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&_\.choices\\_\\_inner\]\:ps-0 .choices__inner{padding-inline-start:0}.\[\&_\.fi-badge-delete-button\]\:hidden .fi-badge-delete-button{display:none}.\[\&_\.filepond--root\]\:font-sans .filepond--root{font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\[\&_optgroup\]\:bg-white optgroup{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .\[\&_optgroup\]\:dark\:bg-gray-900) optgroup{--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}.\[\&_option\]\:bg-white option{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .\[\&_option\]\:dark\:bg-gray-900) option{--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}:checked+*>.\[\:checked\+\*\>\&\]\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[\@media\(hover\:hover\)\]\:duration-75{transition-duration:75ms}}input:checked+.\[input\:checked\+\&\]\:bg-custom-600{--tw-bg-opacity:1;background-color:rgba(var(--c-600),var(--tw-bg-opacity))}input:checked+.\[input\:checked\+\&\]\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}input:checked+.\[input\:checked\+\&\]\:ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}input:checked+.\[input\:checked\+\&\]\:hover\:bg-custom-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark input:checked+.dark\:\[input\:checked\+\&\]\:bg-custom-500){--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark input:checked+.dark\:\[input\:checked\+\&\]\:hover\:bg-custom-400:hover){--tw-bg-opacity:1;background-color:rgba(var(--c-400),var(--tw-bg-opacity))}input:checked:focus-visible+.\[input\:checked\:focus-visible\+\&\]\:ring-custom-500\/50{--tw-ring-color:rgba(var(--c-500),0.5)}:is(.dark input:checked:focus-visible+.dark\:\[input\:checked\:focus-visible\+\&\]\:ring-custom-400\/50){--tw-ring-color:rgba(var(--c-400),0.5)}input:focus-visible+.\[input\:focus-visible\+\&\]\:z-10{z-index:10}input:focus-visible+.\[input\:focus-visible\+\&\]\:ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}input:focus-visible+.\[input\:focus-visible\+\&\]\:ring-gray-950\/10{--tw-ring-color:rgba(var(--gray-950),0.1)}:is(.dark input:focus-visible+.dark\:\[input\:focus-visible\+\&\]\:ring-white\/20){--tw-ring-color:hsla(0,0%,100%,.2)} \ No newline at end of file diff --git a/public/css/filament/forms/forms.css b/public/css/filament/forms/forms.css new file mode 100644 index 000000000..a9458cb7a --- /dev/null +++ b/public/css/filament/forms/forms.css @@ -0,0 +1,49 @@ +input::-webkit-datetime-edit{display:block;padding:0}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{inset:0;position:absolute}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.filepond--assistant{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--browser.filepond--browser{font-size:0;left:1em;margin:0;opacity:0;padding:0;position:absolute;top:1.75em;width:calc(100% - 2em)}.filepond--data{border:none;contain:strict;height:0;margin:0;padding:0;visibility:hidden;width:0}.filepond--data,.filepond--drip{pointer-events:none;position:absolute}.filepond--drip{background:rgba(0,0,0,.01);border-radius:.5em;inset:0;opacity:.1;overflow:hidden}.filepond--drip-blob{background:#292625;border-radius:50%;height:8em;margin-left:-4em;margin-top:-4em;transform-origin:center center;width:8em}.filepond--drip-blob,.filepond--drop-label{left:0;position:absolute;top:0;will-change:transform,opacity}.filepond--drop-label{align-items:center;color:#4f4f4f;display:flex;height:0;justify-content:center;margin:0;right:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;line-height:1.5;text-align:center}.filepond--label-action{-webkit-text-decoration-skip:ink;cursor:pointer;text-decoration:underline;text-decoration-color:#a7a4a4;text-decoration-skip-ink:auto}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{border:none;font-family:inherit;font-size:1em;height:1.625em;line-height:inherit;margin:0;outline:none;padding:0;width:1.625em;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file-action-button.filepond--file-action-button svg{height:100%;width:100%}.filepond--file-action-button.filepond--file-action-button:after{content:"";inset:-.75em;position:absolute}.filepond--file-action-button{background-color:#00000080;background-image:none;border-radius:50%;box-shadow:0 0 #fff0;color:#fff;cursor:auto;transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em #ffffffe6}.filepond--file-action-button[disabled]{background-color:#00000040;color:#ffffff80}.filepond--file-action-button[hidden]{display:none}.filepond--file-info{align-items:flex-start;display:flex;flex:1;flex-direction:column;margin:0 .5em 0 0;min-width:0;pointer-events:none;position:static;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{align-items:flex-end;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;pointer-events:none;position:static;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;height:100%;margin:0;min-width:0;padding:0}.filepond--file-wrapper.filepond--file-wrapper>legend{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file{align-items:flex-start;border-radius:.5em;color:#fff;display:flex;height:100%;padding:.5625em;position:static}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes shake{10%,90%{transform:translate(-.0625em)}20%,80%{transform:translate(.125em)}30%,50%,70%{transform:translate(-.25em)}40%,60%{transform:translate(.25em)}}@keyframes fall{0%{animation-timing-function:ease-out;opacity:0;transform:scale(.5)}70%{animation-timing-function:ease-in-out;opacity:1;transform:scale(1.1)}to{animation-timing-function:ease-out;transform:scale(1)}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:"";inset:0;position:absolute;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{left:0;margin:.25em;padding:0;position:absolute;right:0;top:0;will-change:transform,opacity;z-index:1}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em #00000040}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{box-shadow:0 0 0 transparent;transition:box-shadow .125s ease-in-out}.filepond--item[data-drag-state=drag]{cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em #00000053}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{left:0;margin:0;position:absolute;right:0;top:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);overflow-x:hidden;overflow-y:scroll}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#0000004d;border:.3125em solid transparent;border-radius:99999px}.filepond--list.filepond--list{list-style-type:none;margin:0;padding:0;position:absolute;top:0;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{height:100%;margin:0;max-width:none;width:100%}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{align-items:center;bottom:0;display:flex;height:auto;justify-content:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{height:100%;margin-bottom:0;margin-top:0;overflow:hidden}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{height:100%;left:0;right:0}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status,.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{background-color:#f1f0ef;border-radius:.5em}.filepond--panel{height:100%!important;left:0;margin:0;pointer-events:none;position:absolute;right:0;top:0}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{background-color:transparent!important;border:none!important;transform-style:preserve-3d}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{left:0;margin:0;padding:0;position:absolute;right:0;top:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom:none!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.filepond--panel-top:after{background-color:inherit;bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.filepond--panel-bottom,.filepond--panel-center{backface-visibility:hidden;transform:translate3d(0,.5em,0);transform-origin:left top;will-change:transform}.filepond--panel-bottom{border-top:none!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.filepond--panel-bottom:before{background-color:inherit;content:"";height:2px;left:0;position:absolute;right:0;top:-1px}.filepond--panel-center{border-bottom:none!important;border-radius:0!important;border-top:none!important;height:100px!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{color:#fff;height:1.25em;margin:0;pointer-events:none;position:static;width:1.25em;will-change:transform,opacity}.filepond--progress-indicator svg{height:100%;transform-box:fill-box;vertical-align:top;width:100%}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;contain:layout style size;direction:ltr;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1rem;font-weight:450;line-height:normal;margin-bottom:1em;position:relative;text-align:left;text-rendering:optimizeLegibility}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-bottom:1em;margin-top:1em}.filepond--root .filepond--credits{bottom:-14px;color:inherit;font-size:11px;line-height:.85;opacity:.175;position:absolute;right:0;text-decoration:none;z-index:3}.filepond--root .filepond--credits[style]{bottom:auto;margin-top:14px;top:0}.filepond--action-edit-item.filepond--action-edit-item{height:2em;padding:.1875em;width:2em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{background:transparent;border:none;color:inherit;font-family:inherit;line-height:inherit;margin:0 0 0 .25em;outline:none;padding:0;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{height:1.3125em;width:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}.filepond--image-preview-markup{left:0;position:absolute;top:0}.filepond--image-preview-wrapper{z-index:2}.filepond--image-preview-overlay{display:block;left:0;margin:0;max-height:7rem;min-height:5rem;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:2}.filepond--image-preview-overlay svg{color:inherit;height:auto;max-height:inherit;width:100%}.filepond--image-preview-overlay-idle{color:#282828d9;mix-blend-mode:multiply}.filepond--image-preview-overlay-success{color:#369763;mix-blend-mode:normal}.filepond--image-preview-overlay-failure{color:#c44e47;mix-blend-mode:normal}@supports (-webkit-marquee-repetition:infinite) and ((-o-object-fit:fill) or (object-fit:fill)){.filepond--image-preview-overlay-idle{mix-blend-mode:normal}}.filepond--image-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--image-preview{align-items:center;background:#222;display:flex;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;will-change:transform,opacity;z-index:1}.filepond--image-clip{margin:0 auto;overflow:hidden;position:relative}.filepond--image-clip[data-transparency-indicator=grid] canvas,.filepond--image-clip[data-transparency-indicator=grid] img{background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0h50v50H0M50 50h50v50H50'/%3E%3C/svg%3E");background-size:1.25em 1.25em}.filepond--image-bitmap,.filepond--image-vector{left:0;position:absolute;top:0;will-change:transform}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview-wrapper{border-radius:0}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview{align-items:center;display:flex;height:100%;justify-content:center}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-wrapper{border-radius:99999rem}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-overlay{bottom:0;top:auto;transform:scaleY(-1)}.filepond--root[data-style-panel-layout~=circle] .filepond--file .filepond--file-action-button[data-align*=bottom]:not([data-align*=center]){margin-bottom:.325em}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=left]{left:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=right]{right:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=left],.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=right]{margin-bottom:.5125em}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=center]{margin-bottom:.1875em;margin-left:.1875em;margin-top:0}.filepond--media-preview audio{display:none}.filepond--media-preview .audioplayer{margin:2.3em auto auto;width:calc(100% - 1.4em)}.filepond--media-preview .playpausebtn{background-position:50%;background-repeat:no-repeat;border:none;border-radius:25px;cursor:pointer;float:left;height:25px;margin-right:.3em;margin-top:.3em;outline:none;width:25px}.filepond--media-preview .playpausebtn:hover{background-color:#00000080}.filepond--media-preview .play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAyElEQVQ4T9XUsWoCQRRG4XPaFL5SfIy8gKYKBCysrax8Ahs7qzQ2qVIFOwsrsbEWLEK6EBFGBrIQhN2d3dnGgalm+Jh7789Ix8uOPe4YDCH0gZ66atKW0pJDCE/AEngDXtRjCpwCRucbGANzNVTBqWBhfAJDdV+GNgWj8wtM41bPt3AbsDB2f69d/0dzwC0wUDe54A8wAWbqJbfkD+BZPeQO5QsYqYu6LKb0MIb7VT3VYfG8CnwEHtT3FKi4c8e/TZMyk3LYFrwCgMdHFbRDKS8AAAAASUVORK5CYII=)}.filepond--media-preview .pause{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAh0lEQVQ4T+2UsQkCURBE30PLMbAMMResQrAPsQ0TK9AqDKxGZeTLD74aGNwlhzfZssvADDMrPcOe+RggYZIJcG2s2KinMidZAvu6u6uzT8u+JCeZArfmcKUeK+EaONTdQy23bxgJX8aPHvIHsSnVuzTx36rn2pQFsGuqN//ZlK7vbIDvq6vkJ9yteBXzecYbAAAAAElFTkSuQmCC)}.filepond--media-preview .timeline{background:hsla(0,0%,100%,.3);border-radius:15px;float:left;height:3px;margin-top:1em;width:calc(100% - 2.5em)}.filepond--media-preview .playhead{background:#fff;border-radius:50%;height:13px;margin-top:-5px;width:13px}.filepond--media-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;pointer-events:auto;position:absolute;right:0;top:0}.filepond--media-preview-wrapper:before{background:linear-gradient(180deg,#000 0,transparent);content:" ";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#00000000",GradientType=0);height:2em;position:absolute;width:100%;z-index:3}.filepond--media-preview{display:block;height:100%;position:relative;transform-origin:center center;width:100%;will-change:transform,opacity;z-index:1}.filepond--media-preview audio,.filepond--media-preview video{width:100%;will-change:transform}.filepond--root{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:0}:is(.dark .filepond--root){--tw-ring-color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.05)}.filepond--root[data-disabled=disabled]{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .filepond--root[data-disabled=disabled]){--tw-ring-color:hsla(0,0%,100%,.1);background-color:transparent}.filepond--panel-root{background-color:transparent}.filepond--drop-label label{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem;padding:.75rem!important}:is(.dark .filepond--drop-label label){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.filepond--label-action{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity));font-weight:500;text-decoration-line:none;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.filepond--label-action:hover{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}:is(.dark .filepond--label-action){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .filepond--label-action:hover){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}.filepond--drip-blob{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity))}:is(.dark .filepond--drip-blob){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity))}.filepond--root[data-style-panel-layout=grid] .filepond--item{display:inline;width:calc(50% - .5rem)}@media (min-width:1024px){.filepond--root[data-style-panel-layout=grid] .filepond--item{width:calc(33.33% - .5rem)}}.filepond--download-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--download-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--download-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--open-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--open-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--open-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--file-action-button.filepond--action-edit-item{background-color:rgba(0,0,0,.5)}.cropper-drag-box.cropper-crop.cropper-modal{background-color:rgba(var(--gray-100),.5);opacity:1}:is(.dark .cropper-drag-box.cropper-crop.cropper-modal){background-color:rgba(var(--gray-900),.8)}.fi-fo-file-upload-circle-cropper .cropper-face,.fi-fo-file-upload-circle-cropper .cropper-view-box{border-radius:50%}.CodeMirror{color:#000;direction:ltr;font-family:monospace;height:300px}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{background-color:#f7f7f7;border-right:1px solid #ddd;white-space:nowrap}.CodeMirror-linenumber{color:#999;min-width:20px;padding:0 3px 0 5px;text-align:right;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;border:0!important;width:auto}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{inset:-50px 0 0;overflow:hidden;position:absolute}.CodeMirror-ruler{border-left:1px solid #ccc;bottom:0;position:absolute;top:0}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:#fff;overflow:hidden;position:relative}.CodeMirror-scroll{height:100%;margin-bottom:-50px;margin-right:-50px;outline:0;overflow:scroll!important;padding-bottom:50px;position:relative;z-index:0}.CodeMirror-sizer{border-right:50px solid transparent;position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{display:none;outline:0;position:absolute;z-index:6}.CodeMirror-vscrollbar{overflow-x:hidden;overflow-y:scroll;right:0;top:0}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-x:scroll;overflow-y:hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{left:0;min-height:100%;position:absolute;top:0;z-index:3}.CodeMirror-gutter{display:inline-block;height:100%;margin-bottom:-50px;vertical-align:top;white-space:normal}.CodeMirror-gutter-wrapper{background:0 0!important;border:none!important;position:absolute;z-index:4}.CodeMirror-gutter-background{bottom:0;position:absolute;top:0;z-index:4}.CodeMirror-gutter-elt{cursor:default;position:absolute;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{word-wrap:normal;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-variant-ligatures:contextual;line-height:inherit;margin:0;overflow:visible;position:relative;white-space:pre;z-index:2}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{inset:0;position:absolute;z-index:0}.CodeMirror-linewidget{padding:.1px;position:relative;z-index:2}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{position:relative;visibility:hidden;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{word-wrap:break-word;border:1px solid #ced4da;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-sizing:border-box;font:inherit;height:auto;padding:10px;z-index:0}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;border-bottom-right-radius:0!important;border-right:none!important;height:auto;inset:50px 0 0;position:fixed!important;z-index:8}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-bottom-right-radius:0;border-right:none!important;flex:1 1 auto;position:relative}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{border-left:1px solid #ced4da;border-right:1px solid #ced4da;border-top:1px solid #ced4da;border-top-left-radius:4px;border-top-right-radius:4px;padding:9px 10px;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.editor-toolbar.fullscreen{background:#fff;border:0;box-sizing:border-box;height:50px;left:0;opacity:1;padding-bottom:10px;padding-top:10px;position:fixed;top:0;width:100%;z-index:9}.editor-toolbar.fullscreen:before{background:linear-gradient(90deg,#fff 0,hsla(0,0%,100%,0));height:50px;left:0;margin:0;padding:0;position:fixed;top:0;width:20px}.editor-toolbar.fullscreen:after{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:50px;margin:0;padding:0;position:fixed;right:0;top:0;width:20px}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;border:1px solid transparent;border-radius:3px;cursor:pointer;display:inline-block;height:30px;margin:0;padding:0;text-align:center;text-decoration:none!important}.editor-toolbar button{font-weight:700;min-width:30px;padding:0 6px;white-space:nowrap}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;display:inline-block;margin:0 6px;text-indent:-10px;width:0}.editor-toolbar button:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;position:relative;top:2px;vertical-align:text-bottom}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"\25b2"}.editor-toolbar button.heading-smaller:after{content:"\25bc"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{color:#959694;font-size:12px;padding:8px 10px;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;margin-left:1em;min-width:4em}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview-full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:7}.editor-preview-full,.editor-preview-side{box-sizing:border-box;display:none;overflow:auto}.editor-preview-side{word-wrap:break-word;border:1px solid #ddd;bottom:0;position:fixed;right:0;top:50px;width:50%;z-index:9}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{background:#fafafa;padding:10px}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:calc(1.375rem + 1.5vw)}.cm-s-easymde .cm-header-2{font-size:calc(1.325rem + .9vw)}.cm-s-easymde .cm-header-3{font-size:calc(1.3rem + .6vw)}.cm-s-easymde .cm-header-4{font-size:calc(1.275rem + .3vw)}.cm-s-easymde .cm-header-5{font-size:1.25rem}.cm-s-easymde .cm-header-6{font-size:1rem}.cm-s-easymde .cm-header-1,.cm-s-easymde .cm-header-2,.cm-s-easymde .cm-header-3,.cm-s-easymde .cm-header-4,.cm-s-easymde .cm-header-5,.cm-s-easymde .cm-header-6{line-height:1.2;margin-bottom:.5rem}.cm-s-easymde .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{border:1px solid #fff;border-radius:0;position:relative}.editor-toolbar .easymde-dropdown,.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff,#fff 84%,#333 0,#333)}.easymde-dropdown-content{background-color:#f9f9f9;box-shadow:0 8px 16px #0003;display:block;padding:8px;position:absolute;top:30px;visibility:hidden;z-index:2}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}.easymde-dropdown-content button{display:block}span[data-img-src]:after{background-image:var(--bg-image);background-repeat:no-repeat;background-size:contain;content:"";display:block;height:0;max-height:100%;max-width:100%;padding-top:var(--height);width:var(--width)}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}:root{--color-cm-red:#991b1b;--color-cm-orange:#9a3412;--color-cm-amber:#92400e;--color-cm-yellow:#854d0e;--color-cm-lime:#3f6212;--color-cm-green:#166534;--color-cm-emerald:#065f46;--color-cm-teal:#115e59;--color-cm-cyan:#155e75;--color-cm-sky:#075985;--color-cm-blue:#1e40af;--color-cm-indigo:#3730a3;--color-cm-violet:#5b21b6;--color-cm-purple:#6b21a8;--color-cm-fuchsia:#86198f;--color-cm-pink:#9d174d;--color-cm-rose:#9f1239;--color-cm-gray:#18181b;--color-cm-gray-muted:#71717a;--color-cm-gray-background:#e4e4e7}.dark{--color-cm-red:#f87171;--color-cm-orange:#fb923c;--color-cm-amber:#fbbf24;--color-cm-yellow:#facc15;--color-cm-lime:#a3e635;--color-cm-green:#4ade80;--color-cm-emerald:#4ade80;--color-cm-teal:#2dd4bf;--color-cm-cyan:#22d3ee;--color-cm-sky:#38bdf8;--color-cm-blue:#60a5fa;--color-cm-indigo:#818cf8;--color-cm-violet:#a78bfa;--color-cm-purple:#c084fc;--color-cm-fuchsia:#e879f9;--color-cm-pink:#f472b6;--color-cm-rose:#fb7185;--color-cm-gray:#fafafa;--color-cm-gray-muted:#a1a1aa;--color-cm-gray-background:#52525b}.cm-s-easymde .cm-comment{background-color:transparent;color:var(--color-cm-gray-muted)}.EasyMDEContainer .CodeMirror-cursor{border-color:currentColor}.dark .EasyMDEContainer .cm-s-easymde span.CodeMirror-selectedtext{filter:invert(100%)}.EasyMDEContainer .cm-s-easymde .cm-keyword{color:var(--color-cm-violet)}.EasyMDEContainer .cm-s-easymde .cm-atom{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-number{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-def{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-variable{color:var(--color-cm-yellow)}.EasyMDEContainer .cm-s-easymde .cm-variable-2{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-variable-3{color:var(--color-cm-emerald)}.EasyMDEContainer .cm-s-easymde .cm-operator,.EasyMDEContainer .cm-s-easymde .cm-property{color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-string,.EasyMDEContainer .cm-s-easymde .cm-string-2{color:var(--color-cm-rose)}.EasyMDEContainer .cm-s-easymde .cm-meta{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-error{color:var(--color-cm-red)}.EasyMDEContainer .cm-s-easymde .cm-qualifier{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-builtin{color:var(--color-cm-violet)}.EasyMDEContainer .cm-s-easymde .cm-bracket{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-tag{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-attribute{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-hr{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-formatting-quote{color:var(--color-cm-sky)}.EasyMDEContainer .cm-s-easymde .cm-formatting-quote+.cm-quote{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-formatting-list,.EasyMDEContainer .cm-s-easymde .cm-formatting-list+.cm-variable-2,.EasyMDEContainer .cm-s-easymde .cm-tab+.cm-variable-2{color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-link{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-tag{color:var(--color-cm-red)}.EasyMDEContainer .cm-s-easymde .cm-attribute{color:var(--color-cm-amber)}.EasyMDEContainer .cm-s-easymde .cm-attribute+.cm-string{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-formatting-code+.cm-comment:not(.cm-formatting-code){background-color:var(--color-cm-gray-background);color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-header-1{font-size:1.875rem;line-height:2.25rem}.EasyMDEContainer .cm-s-easymde .cm-header-2{font-size:1.5rem;line-height:2rem}.EasyMDEContainer .cm-s-easymde .cm-header-3{font-size:1.25rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-4{font-size:1.125rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-5{font-size:1rem;line-height:1.5rem}.EasyMDEContainer .cm-s-easymde .cm-header-6{font-size:.875rem;line-height:1.25rem}.EasyMDEContainer .cm-s-easymde .cm-comment{background-image:none}.EasyMDEContainer .CodeMirror,.EasyMDEContainer .cm-s-easymde .cm-formatting-code-block,.EasyMDEContainer .cm-s-easymde .cm-tab+.cm-comment{background-color:transparent;color:inherit}.EasyMDEContainer .CodeMirror{border-style:none;padding:.375rem .75rem}.EasyMDEContainer .CodeMirror-scroll{height:auto}.EasyMDEContainer .editor-toolbar{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity));border-radius:0;border-width:0 0 1px;-moz-column-gap:.25rem;column-gap:.25rem;display:flex;overflow-x:auto;padding:.5rem .625rem}:is(.dark .EasyMDEContainer .editor-toolbar){border-color:hsla(0,0%,100%,.1)}.EasyMDEContainer .editor-toolbar button{border-radius:.5rem;border-style:none;cursor:pointer;display:grid;height:2rem;padding:0;place-content:center;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.EasyMDEContainer .editor-toolbar button:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar button:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button:hover){background-color:hsla(0,0%,100%,.05)}:is(.dark .EasyMDEContainer .editor-toolbar button:focus-visible){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button.active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button.active){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button:before{--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity));display:block;height:1rem;width:1rem}:is(.dark .EasyMDEContainer .editor-toolbar button):before{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar button:before{content:"";-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.EasyMDEContainer .editor-toolbar button.active:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button.active):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar .separator{border-style:none;margin:0!important;width:.25rem}.EasyMDEContainer .editor-toolbar .bold:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M321.1 242.4c19-22.3 30.9-50.8 30.9-82.4 0-70.59-57.42-128-128-128l-192 .01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128 0-46.71-25.4-87.21-62.9-109.61zM112 96.01h112c35.3 0 64 28.72 64 64s-28.7 64-64 64H112v-128zM256 416H112V288h144c35.3 0 64 28.71 64 63.1S291.3 416 256 416z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M321.1 242.4c19-22.3 30.9-50.8 30.9-82.4 0-70.59-57.42-128-128-128l-192 .01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128 0-46.71-25.4-87.21-62.9-109.61zM112 96.01h112c35.3 0 64 28.72 64 64s-28.7 64-64 64H112v-128zM256 416H112V288h144c35.3 0 64 28.71 64 63.1S291.3 416 256 416z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .italic:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192c17.7 0 32 14.32 32 32z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192c17.7 0 32 14.32 32 32z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .strikethrough:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21-3.031 17.59-10.88 29.34-24.72 36.99-35.44 19.75-108.5 11.96-186-19.68-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37 29.62 0 58.81-5.156 83.72-18.96 30.81-17.09 50.44-45.46 56.72-82.11 3.998-23.27 2.168-42.58-3.488-59.05H332.2zm155.8-80-176.5-.03c-15.85-5.614-31.83-10.34-46.7-14.62-85.47-24.62-110.9-39.05-103.7-81.33 2.5-14.53 10.16-25.96 22.72-34.03 20.47-13.15 64.06-23.84 155.4.343 17.09 4.53 34.59-5.654 39.13-22.74 4.531-17.09-5.656-34.59-22.75-39.12-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1c-8.83 51.4 9.81 84.2 39.11 106.8H24c-13.25 0-24 10.75-24 23.1 0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1 0-12.3-10.7-23.1-24-23.1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21-3.031 17.59-10.88 29.34-24.72 36.99-35.44 19.75-108.5 11.96-186-19.68-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37 29.62 0 58.81-5.156 83.72-18.96 30.81-17.09 50.44-45.46 56.72-82.11 3.998-23.27 2.168-42.58-3.488-59.05H332.2zm155.8-80-176.5-.03c-15.85-5.614-31.83-10.34-46.7-14.62-85.47-24.62-110.9-39.05-103.7-81.33 2.5-14.53 10.16-25.96 22.72-34.03 20.47-13.15 64.06-23.84 155.4.343 17.09 4.53 34.59-5.654 39.13-22.74 4.531-17.09-5.656-34.59-22.75-39.12-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1c-8.83 51.4 9.81 84.2 39.11 106.8H24c-13.25 0-24 10.75-24 23.1 0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1 0-12.3-10.7-23.1-24-23.1z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .link:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M598.6 41.41C570.1 13.8 534.8 0 498.6 0s-72.36 13.8-99.96 41.41l-43.36 43.36c15.11 8.012 29.47 17.58 41.91 30.02 3.146 3.146 5.898 6.518 8.742 9.838l37.96-37.96C458.5 72.05 477.1 64 498.6 64c20.67 0 40.1 8.047 54.71 22.66 14.61 14.61 22.66 34.04 22.66 54.71s-8.049 40.1-22.66 54.71l-133.3 133.3C405.5 343.1 386 352 365.4 352s-40.1-8.048-54.71-22.66C296 314.7 287.1 295.3 287.1 274.6s8.047-40.1 22.66-54.71l4.44-3.49c-2.1-3.9-4.3-7.9-7.5-11.1-8.6-8.6-19.9-13.3-32.1-13.3-11.93 0-23.1 4.664-31.61 12.97-30.71 53.96-23.63 123.6 22.39 169.6C293 402.2 329.2 416 365.4 416c36.18 0 72.36-13.8 99.96-41.41L598.6 241.3c28.45-28.45 42.24-66.01 41.37-103.3-.87-35.9-14.57-69.84-41.37-96.59zM234 387.4l-37.9 37.9C181.5 439.1 162 448 141.4 448c-20.67 0-40.1-8.047-54.71-22.66-14.61-14.61-22.66-34.04-22.66-54.71s8.049-40.1 22.66-54.71l133.3-133.3C234.5 168 253.1 160 274.6 160s40.1 8.048 54.71 22.66c14.62 14.61 22.66 34.04 22.66 54.71s-8.047 40.1-22.66 54.71l-3.51 3.52c2.094 3.939 4.219 7.895 7.465 11.15C341.9 315.3 353.3 320 365.4 320c11.93 0 23.1-4.664 31.61-12.97 30.71-53.96 23.63-123.6-22.39-169.6C346.1 109.8 310.8 96 274.6 96c-36.2 0-72.3 13.8-99.9 41.4L41.41 270.7C13.81 298.3 0 334.48 0 370.66c0 36.18 13.8 72.36 41.41 99.97C69.01 498.2 105.2 512 141.4 512c36.18 0 72.36-13.8 99.96-41.41l43.36-43.36c-15.11-8.012-29.47-17.58-41.91-30.02-3.21-3.11-5.91-6.51-8.81-9.81z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M598.6 41.41C570.1 13.8 534.8 0 498.6 0s-72.36 13.8-99.96 41.41l-43.36 43.36c15.11 8.012 29.47 17.58 41.91 30.02 3.146 3.146 5.898 6.518 8.742 9.838l37.96-37.96C458.5 72.05 477.1 64 498.6 64c20.67 0 40.1 8.047 54.71 22.66 14.61 14.61 22.66 34.04 22.66 54.71s-8.049 40.1-22.66 54.71l-133.3 133.3C405.5 343.1 386 352 365.4 352s-40.1-8.048-54.71-22.66C296 314.7 287.1 295.3 287.1 274.6s8.047-40.1 22.66-54.71l4.44-3.49c-2.1-3.9-4.3-7.9-7.5-11.1-8.6-8.6-19.9-13.3-32.1-13.3-11.93 0-23.1 4.664-31.61 12.97-30.71 53.96-23.63 123.6 22.39 169.6C293 402.2 329.2 416 365.4 416c36.18 0 72.36-13.8 99.96-41.41L598.6 241.3c28.45-28.45 42.24-66.01 41.37-103.3-.87-35.9-14.57-69.84-41.37-96.59zM234 387.4l-37.9 37.9C181.5 439.1 162 448 141.4 448c-20.67 0-40.1-8.047-54.71-22.66-14.61-14.61-22.66-34.04-22.66-54.71s8.049-40.1 22.66-54.71l133.3-133.3C234.5 168 253.1 160 274.6 160s40.1 8.048 54.71 22.66c14.62 14.61 22.66 34.04 22.66 54.71s-8.047 40.1-22.66 54.71l-3.51 3.52c2.094 3.939 4.219 7.895 7.465 11.15C341.9 315.3 353.3 320 365.4 320c11.93 0 23.1-4.664 31.61-12.97 30.71-53.96 23.63-123.6-22.39-169.6C346.1 109.8 310.8 96 274.6 96c-36.2 0-72.3 13.8-99.9 41.4L41.41 270.7C13.81 298.3 0 334.48 0 370.66c0 36.18 13.8 72.36 41.41 99.97C69.01 498.2 105.2 512 141.4 512c36.18 0 72.36-13.8 99.96-41.41l43.36-43.36c-15.11-8.012-29.47-17.58-41.91-30.02-3.21-3.11-5.91-6.51-8.81-9.81z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .heading:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v112h224V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v320h16c17.7 0 32 14.3 32 32s-14.3 32-32 32h-96c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112v144h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v112h224V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v320h16c17.7 0 32 14.3 32 32s-14.3 32-32 32h-96c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112v144h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .quote:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 224c-11.28 0-21.95 2.3-32 5.9V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.3-32-32-32C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96zm256 0c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 224c-11.28 0-21.95 2.3-32 5.9V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.3-32-32-32C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96zm256 0c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .code:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M416 31.94C416 21.75 408.1 0 384.1 0c-13.98 0-26.87 9.072-30.89 23.18l-128 448a31.933 31.933 0 0 0-1.241 8.801C223.1 490.3 232 512 256 512c13.92 0 26.73-9.157 30.75-23.22l128-448c.85-2.97 1.25-5.93 1.25-8.84zM176 143.1c0-18.28-14.95-32-32-32-8.188 0-16.38 3.125-22.62 9.376l-112 112C3.125 239.6 0 247.8 0 255.1s3.125 17.3 9.375 23.5l112 112c6.225 6.3 14.425 8.5 22.625 8.5 17.05 0 32-13.73 32-32 0-8.188-3.125-16.38-9.375-22.63L77.25 255.1l89.38-89.38c6.27-5.42 9.37-13.52 9.37-22.62zm464 112c0-8.188-3.125-16.38-9.375-22.63l-112-112C512.4 115.1 504.2 111.1 496 111.1c-17.05 0-32 13.73-32 32 0 8.188 3.125 16.38 9.375 22.63l89.38 89.38-89.38 89.38C467.1 351.6 464 359.8 464 367.1c0 18.28 14.95 32 32 32 8.188 0 16.38-3.125 22.62-9.376l112-112C636.9 272.4 640 264.2 640 255.1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M416 31.94C416 21.75 408.1 0 384.1 0c-13.98 0-26.87 9.072-30.89 23.18l-128 448a31.933 31.933 0 0 0-1.241 8.801C223.1 490.3 232 512 256 512c13.92 0 26.73-9.157 30.75-23.22l128-448c.85-2.97 1.25-5.93 1.25-8.84zM176 143.1c0-18.28-14.95-32-32-32-8.188 0-16.38 3.125-22.62 9.376l-112 112C3.125 239.6 0 247.8 0 255.1s3.125 17.3 9.375 23.5l112 112c6.225 6.3 14.425 8.5 22.625 8.5 17.05 0 32-13.73 32-32 0-8.188-3.125-16.38-9.375-22.63L77.25 255.1l89.38-89.38c6.27-5.42 9.37-13.52 9.37-22.62zm464 112c0-8.188-3.125-16.38-9.375-22.63l-112-112C512.4 115.1 504.2 111.1 496 111.1c-17.05 0-32 13.73-32 32 0 8.188 3.125 16.38 9.375 22.63l89.38 89.38-89.38 89.38C467.1 351.6 464 359.8 464 367.1c0 18.28 14.95 32 32 32 8.188 0 16.38-3.125 22.62-9.376l112-112C636.9 272.4 640 264.2 640 255.1z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .unordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M16 96c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.5-21.49 48-48 48s-48-21.5-48-48zm464-32c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zM16 416c0-26.5 21.49-48 48-48s48 21.5 48 48-21.49 48-48 48-48-21.5-48-48zm96-160c0 26.5-21.49 48-48 48s-48-21.5-48-48 21.49-48 48-48 48 21.5 48 48z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M16 96c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.5-21.49 48-48 48s-48-21.5-48-48zm464-32c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zM16 416c0-26.5 21.49-48 48-48s48 21.5 48 48-21.49 48-48 48-48-21.5-48-48zm96-160c0 26.5-21.49 48-48 48s-48-21.5-48-48 21.49-48 48-48 48 21.5 48 48z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .ordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.1 56.04c0-13.26 11.64-24 24-24h32c14.2 0 24 10.74 24 24V176h16c14.2 0 24 10.8 24 24 0 13.3-9.8 24-24 24h-80c-12.36 0-24-10.7-24-24 0-13.2 11.64-24 24-24h16V80.04h-8c-12.36 0-24-10.75-24-24zm63.6 285.16c-6.6-7.4-18.3-6.9-24.05 1.2l-11.12 15.5c-7.7 10.8-22.69 13.3-33.48 5.6-10.79-7.7-13.28-22.7-5.58-33.4l11.12-15.6c23.74-33.3 72.31-35.7 99.21-4.9 21.3 23.5 20.8 60.9-1.1 84.7L118.8 432H152c13.3 0 24 10.7 24 24s-10.7 24-24 24H64c-9.53 0-18.16-5.6-21.98-14.4-3.83-8.7-2.12-18.9 4.34-25.9l72.04-78c5.3-5.8 5.4-14.6.3-20.5zM512 64c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.1 56.04c0-13.26 11.64-24 24-24h32c14.2 0 24 10.74 24 24V176h16c14.2 0 24 10.8 24 24 0 13.3-9.8 24-24 24h-80c-12.36 0-24-10.7-24-24 0-13.2 11.64-24 24-24h16V80.04h-8c-12.36 0-24-10.75-24-24zm63.6 285.16c-6.6-7.4-18.3-6.9-24.05 1.2l-11.12 15.5c-7.7 10.8-22.69 13.3-33.48 5.6-10.79-7.7-13.28-22.7-5.58-33.4l11.12-15.6c23.74-33.3 72.31-35.7 99.21-4.9 21.3 23.5 20.8 60.9-1.1 84.7L118.8 432H152c13.3 0 24 10.7 24 24s-10.7 24-24 24H64c-9.53 0-18.16-5.6-21.98-14.4-3.83-8.7-2.12-18.9 4.34-25.9l72.04-78c5.3-5.8 5.4-14.6.3-20.5zM512 64c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .table:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath d='M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath d='M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .upload-image:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M447.1 32h-484C28.64 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm-336 64c26.51 0 48 21.49 48 48s-20.6 48-48 48-48-21.49-48-48 22.38-48 48-48zm335 311.6c-2.8 5.2-8.2 8.4-14.1 8.4H82.01a15.993 15.993 0 0 1-14.26-8.75 16 16 0 0 1 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51 93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192c3.29 4.875 3.59 11.175.79 16.475z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M447.1 32h-484C28.64 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm-336 64c26.51 0 48 21.49 48 48s-20.6 48-48 48-48-21.49-48-48 22.38-48 48-48zm335 311.6c-2.8 5.2-8.2 8.4-14.1 8.4H82.01a15.993 15.993 0 0 1-14.26-8.75 16 16 0 0 1 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51 93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192c3.29 4.875 3.59 11.175.79 16.475z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .undo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M480 256c0 123.4-100.5 223.9-223.9 223.9-48.84 0-95.17-15.58-134.2-44.86-14.12-10.59-16.97-30.66-6.375-44.81 10.59-14.12 30.62-16.94 44.81-6.375 27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256S344.31 96.2 256.2 96.2c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04C16 35 45.07 22.96 62.07 39.97l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11 379.5 32.11 480 132.6 480 256z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M480 256c0 123.4-100.5 223.9-223.9 223.9-48.84 0-95.17-15.58-134.2-44.86-14.12-10.59-16.97-30.66-6.375-44.81 10.59-14.12 30.62-16.94 44.81-6.375 27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256S344.31 96.2 256.2 96.2c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04C16 35 45.07 22.96 62.07 39.97l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11 379.5 32.11 480 132.6 480 256z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .redo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2 0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31 18.48 0 31.97 15.04 31.97 31.96 0 35.04-81.59 70.41-147 70.41-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26L450 40.07c5.5-5.5 12.3-7.96 18.9-7.96z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2 0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31 18.48 0 31.97 15.04 31.97 31.96 0 35.04-81.59 70.41-147 70.41-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26L450 40.07c5.5-5.5 12.3-7.96 18.9-7.96z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-statusbar{display:none}.fi-fo-rich-editor trix-toolbar .trix-dialogs{position:relative}.fi-fo-rich-editor trix-toolbar .trix-dialog{--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgba(var(--gray-50),var(--tw-bg-opacity));border-radius:.5rem;bottom:auto;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);left:0;padding:.5rem;position:absolute;right:0;top:1rem}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields{display:flex;flex-direction:column;gap:.5rem;width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group{display:flex;gap:.5rem}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;border-style:none;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--gray-950),var(--tw-text-opacity));display:block;font-size:.875rem;line-height:1.25rem;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:.75rem;padding-top:.375rem;padding-inline-start:.75rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input){--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-color:hsla(0,0%,100%,.2);background-color:rgba(var(--gray-700),var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}@media (min-width:640px){.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{font-size:.875rem;line-height:1.5rem}}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity));background-color:rgba(var(--gray-50),var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);font-size:.75rem;line-height:1rem;padding:.125rem .5rem}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button){--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-600),var(--tw-ring-opacity));background-color:rgba(var(--gray-700),var(--tw-bg-opacity))}.fi-fo-rich-editor trix-editor:empty:before{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-editor:empty):before{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.fi-fo-rich-editor trix-editor:empty:before{content:attr(placeholder)}.fi-fo-rich-editor trix-editor.prose :where(ol):not(:where([class~=not-prose] *)),.fi-fo-rich-editor trix-editor.prose :where(ul):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:1.625em!important}.fi-fo-rich-editor trix-editor.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:.375em!important}select:not(.choices){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}[dir=rtl] select{background-position:left .5rem center!important}.choices{outline:2px solid transparent;outline-offset:2px;position:relative}.choices [hidden]{display:none!important}.choices[data-type*=select-one] .has-no-choices{display:none}.choices[data-type*=select-one] .choices__input{display:block;margin:0;width:100%}.choices__inner{background-repeat:no-repeat;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:2rem;padding-top:.375rem;padding-inline-start:.75rem}@media (min-width:640px){.choices__inner{font-size:.875rem;line-height:1.5rem}}.choices__inner{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-size:1.5em 1.5em}.choices.is-disabled .choices__inner{cursor:default}[dir=rtl] .choices__inner{background-position:left .5rem center}.choices__list--single{display:inline-block}.choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity))}:is(.dark .choices__list--single .choices__item){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.choices.is-disabled .choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices.is-disabled .choices__list--single .choices__item){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__list--multiple{display:flex;flex-wrap:wrap;gap:.375rem}.choices__list--multiple:not(:empty){margin-bottom:.25rem;margin-left:-.25rem;margin-right:-.25rem;padding-bottom:.125rem;padding-top:.125rem}.choices__list--multiple .choices__item{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-inset:inset;--tw-ring-color:rgba(var(--primary-600),0.1);align-items:center;background-color:rgba(var(--primary-50),var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--primary-600),var(--tw-text-opacity));display:inline-flex;font-size:.75rem;font-weight:500;gap:.25rem;line-height:1rem;padding:.25rem .5rem;word-break:break-all}:is(.dark .choices__list--multiple .choices__item){--tw-text-opacity:1;--tw-ring-color:rgba(var(--primary-400),0.3);background-color:rgba(var(--primary-400),.1);color:rgba(var(--primary-400),var(--tw-text-opacity))}.choices__list--dropdown,.choices__list[aria-expanded]{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.05);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:none;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;overflow:hidden;overflow-wrap:break-word;position:absolute;top:100%;width:100%;will-change:visibility;z-index:10}:is(.dark .choices__list--dropdown),:is(.dark .choices__list[aria-expanded]){--tw-bg-opacity:1;--tw-ring-color:hsla(0,0%,100%,.1);background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{display:block;padding:.25rem}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{max-height:15rem;overflow:auto;will-change:scroll-position}.choices__item--choice{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity));padding:.5rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}:is(.dark .choices__item--choice){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__item--choice.choices__item--selectable{--tw-text-opacity:1;border-radius:.375rem;color:rgba(var(--gray-950),var(--tw-text-opacity))}:is(.dark .choices__item--choice.choices__item--selectable){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .choices__list--dropdown .choices__item--selectable.is-highlighted),:is(.dark .choices__list[aria-expanded] .choices__item--selectable.is-highlighted){background-color:hsla(0,0%,100%,.05)}.choices__item{cursor:default}.choices__item--disabled{pointer-events:none}.choices__item--disabled:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__item--disabled:disabled){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices.is-disabled .choices__placeholder.choices__item,.choices__placeholder.choices__item{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity));cursor:default}:is(.dark .choices.is-disabled .choices__placeholder.choices__item),:is(.dark .choices__placeholder.choices__item){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.choices__button{background-color:transparent;background-position:50%;background-repeat:no-repeat;border-width:0;outline:2px solid transparent;outline-offset:2px;text-indent:-9999px}.choices[data-type*=select-one] .choices__button{height:1rem;inset-inline-end:0;margin-inline-end:2.25rem;opacity:.5;padding:0;position:absolute;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:1rem}:is(.dark .choices[data-type*=select-one] .choices__button){opacity:.4}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em;top:calc(50% - .5714em)}.dark .choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button{height:1rem;opacity:.5;width:1rem}:is(.dark .choices[data-type*=select-multiple] .choices__button){opacity:.4}.choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em}.dark .choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button:focus-visible,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus-visible,.choices[data-type*=select-one] .choices__button:hover{opacity:.7}:is(.dark .choices[data-type*=select-multiple] .choices__button:focus-visible),:is(.dark .choices[data-type*=select-multiple] .choices__button:hover),:is(.dark .choices[data-type*=select-one] .choices__button:focus-visible),:is(.dark .choices[data-type*=select-one] .choices__button:hover){opacity:.6}.choices.is-disabled .choices__button,.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices__input{--tw-text-opacity:1;background-color:transparent!important;border-style:none;color:rgba(var(--gray-950),var(--tw-text-opacity));font-size:1rem!important;line-height:1.5rem!important;padding:0!important;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.choices__input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__input:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.choices__input:disabled{--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-500),1);color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .choices__input)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input:disabled){--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-400),1);color:rgba(var(--gray-400),var(--tw-text-opacity))}@media (min-width:640px){.choices__input{font-size:.875rem!important;line-height:1.5rem}}.choices__list--dropdown .choices__input{padding:.5rem!important}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;height:0;width:0}.choices__group{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity));padding:1rem .5rem .5rem}.choices__group:first-child{padding-top:.5rem}:is(.dark .choices__group){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.webkit-calendar-picker-indicator\:opacity-0::-webkit-calendar-picker-indicator{opacity:0}/*! Bundled license information: + +cropperjs/dist/cropper.min.css: + (*! + * Cropper.js v1.6.1 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2023-09-17T03:44:17.565Z + *) + +filepond/dist/filepond.min.css: + (*! + * FilePond 4.30.6 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css: + (*! + * FilePondPluginImageEdit 1.6.3 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css: + (*! + * FilePondPluginImagePreview 4.6.12 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-media-preview/dist/filepond-plugin-media-preview.css: + (*! + * FilePondPluginmediaPreview 1.0.11 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit undefined for details. + *) + +easymde/dist/easymde.min.css: + (** + * easymde v2.18.0 + * Copyright Jeroen Akkerman + * @link https://github.com/ionaru/easy-markdown-editor + * @license MIT + *) +*/ \ No newline at end of file diff --git a/public/css/filament/support/support.css b/public/css/filament/support/support.css new file mode 100644 index 000000000..a80d070c8 --- /dev/null +++ b/public/css/filament/support/support.css @@ -0,0 +1 @@ +.fi-pagination-items,.fi-pagination-overview,.fi-pagination-records-per-page-select:not(.fi-compact){display:none}@supports (container-type:inline-size){.fi-pagination{container-type:inline-size}@container (min-width: 28rem){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@container (min-width: 56rem){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}@supports not (container-type:inline-size){@media (min-width:640px){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@media (min-width:768px){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{background-color:#333;border-radius:4px;color:#fff;font-size:14px;line-height:1.4;outline:0;position:relative;transition-property:transform,visibility,opacity;white-space:normal}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=light]{background-color:#fff;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;color:#26323d}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fi-sortable-ghost{opacity:.3} \ No newline at end of file diff --git a/public/js/app/components/apexcharts.js b/public/js/app/components/apexcharts.js new file mode 100644 index 000000000..57b5d7c76 --- /dev/null +++ b/public/js/app/components/apexcharts.js @@ -0,0 +1,709 @@ +var bi=Object.create;var pt=Object.defineProperty;var mi=Object.getOwnPropertyDescriptor;var vi=Object.getOwnPropertyNames;var yi=Object.getPrototypeOf,wi=Object.prototype.hasOwnProperty;var xt=(f,e)=>()=>(e||f((e={exports:{}}).exports,e),e.exports);var ki=(f,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of vi(e))!wi.call(f,a)&&a!==t&&pt(f,a,{get:()=>e[a],enumerable:!(i=mi(e,a))||i.enumerable});return f};var Ai=(f,e,t)=>(t=f!=null?bi(yi(f)):{},ki(e||!f||!f.__esModule?pt(t,"default",{value:f,enumerable:!0}):t,f));var Dt=xt((it,Ye)=>{"use strict";function bt(f,e){var t=Object.keys(f);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(f);e&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(f,a).enumerable})),t.push.apply(t,i)}return t}function E(f){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var t,i=Me(f);if(e){var a=Me(this).constructor;t=Reflect.construct(i,arguments,a)}else t=i.apply(this,arguments);return function(s,r){if(r&&(typeof r=="object"||typeof r=="function"))return r;if(r!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return St(s)}(this,t)}}function Ct(f,e){return function(t){if(Array.isArray(t))return t}(f)||function(t,i){var a=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(a!=null){var s,r,n=[],o=!0,h=!1;try{for(a=a.call(t);!(o=(s=a.next()).done)&&(n.push(s.value),!i||n.length!==i);o=!0);}catch(c){h=!0,r=c}finally{try{o||a.return==null||a.return()}finally{if(h)throw r}}return n}}(f,e)||Lt(f,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function J(f){return function(e){if(Array.isArray(e))return Qe(e)}(f)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(f)||Lt(f)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Lt(f,e){if(f){if(typeof f=="string")return Qe(f,e);var t=Object.prototype.toString.call(f).slice(8,-1);return t==="Object"&&f.constructor&&(t=f.constructor.name),t==="Map"||t==="Set"?Array.from(f):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Qe(f,e):void 0}}function Qe(f,e){(e==null||e>f.length)&&(e=f.length);for(var t=0,i=new Array(e);t>16,n=i>>8&255,o=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-n)*s)+n)+(Math.round((a-o)*s)+o)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,t){return f.isColorHex(t)?this.shadeHexColor(e,t):this.shadeRGBColor(e,t)}}],[{key:"bind",value:function(e,t){return function(){return e.apply(t,arguments)}}},{key:"isObject",value:function(e){return e&&_(e)==="object"&&!Array.isArray(e)&&e!=null}},{key:"is",value:function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"}},{key:"listToArray",value:function(e){var t,i=[];for(t=0;t1&&arguments[1]!==void 0?arguments[1]:2;return Number.isInteger(e)?e:parseFloat(e.toPrecision(t))}},{key:"randomId",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:"noExponents",value:function(e){var t=String(e).split(/[eE]/);if(t.length===1)return t[0];var i="",a=e<0?"-":"",s=t[0].replace(".",""),r=Number(t[1])+1;if(r<0){for(i=a+"0.";r++;)i+="0";return i+s.replace(/^-/,"")}for(r-=s.length;r--;)i+="0";return s+i}},{key:"getDimensions",value:function(e){var t=getComputedStyle(e,null),i=e.clientHeight,a=e.clientWidth;return i-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),[a-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),i]}},{key:"getBoundingClientRect",value:function(e){var t=e.getBoundingClientRect();return{top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:e.clientWidth,height:e.clientHeight,x:t.left,y:t.top}}},{key:"getLargestStringFromArr",value:function(e){return e.reduce(function(t,i){return Array.isArray(i)&&(i=i.reduce(function(a,s){return a.length>s.length?a:s})),t.length>i.length?t:i},0)}},{key:"hexToRgba",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"#999999",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:.6;e.substring(0,1)!=="#"&&(e="#999999");var i=e.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:"x",i=e.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,t)}},{key:"negToZero",value:function(e){return e<0?0:e}},{key:"moveIndexInArray",value:function(e,t,i){if(i>=e.length)for(var a=i-e.length+1;a--;)e.push(void 0);return e.splice(i,0,e.splice(t,1)[0]),e}},{key:"extractNumber",value:function(e){return parseFloat(e.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(e,t){for(;(e=e.parentElement)&&!e.classList.contains(t););return e}},{key:"setELstyles",value:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e.style.key=t[i])}},{key:"isNumber",value:function(e){return!isNaN(e)&&parseFloat(Number(e))===e&&!isNaN(parseInt(e,10))}},{key:"isFloat",value:function(e){return Number(e)===e&&e%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(window.navigator.userAgent.indexOf("MSIE")!==-1||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var a=e.indexOf("Edge/");return a>0&&parseInt(e.substring(a+5,e.indexOf(".",a)),10)}}]),f}(),fe=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return F(f,[{key:"setEasingFunctions",value:function(){var e;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":e="-";break;case"easein":e="<";break;case"easeout":e=">";break;case"easeinout":default:e="<>";break;case"swing":e=function(t){var i=1.70158;return(t-=1)*t*((i+1)*t+i)+1};break;case"bounce":e=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":e=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=e}}},{key:"animateLine",value:function(e,t,i,a){e.attr(t).animate(a).attr(i)}},{key:"animateMarker",value:function(e,t,i,a,s,r){t||(t=0),e.attr({r:t,width:t,height:t}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll(function(){r()})}},{key:"animateCircle",value:function(e,t,i,a,s){e.attr({r:t.r,cx:t.cx,cy:t.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(e,t,i,a,s){e.attr(t).animate(a).attr(i).afterAll(function(){return s()})}},{key:"animatePathsGradually",value:function(e){var t=e.el,i=e.realIndex,a=e.j,s=e.fill,r=e.pathFrom,n=e.pathTo,o=e.speed,h=e.delay,c=this.w,d=0;c.config.chart.animations.animateGradually.enabled&&(d=c.config.chart.animations.animateGradually.delay),c.config.chart.animations.dynamicAnimation.enabled&&c.globals.dataChanged&&c.config.chart.type!=="bar"&&(d=0),this.morphSVG(t,i,a,c.config.chart.type!=="line"||c.globals.comboCharts?s:"stroke",r,n,o,h*d)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach(function(e){var t=e.el;t.classList.remove("apexcharts-element-hidden"),t.classList.add("apexcharts-hidden-element-shown")})}},{key:"animationCompleted",value:function(e){var t=this.w;t.globals.animationEnded||(t.globals.animationEnded=!0,this.showDelayedElements(),typeof t.config.chart.events.animationEnd=="function"&&t.config.chart.events.animationEnd(this.ctx,{el:e,w:t}))}},{key:"morphSVG",value:function(e,t,i,a,s,r,n,o){var h=this,c=this.w;s||(s=e.attr("pathFrom")),r||(r=e.attr("pathTo"));var d=function(g){return c.config.chart.type==="radar"&&(n=1),"M 0 ".concat(c.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=d()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=d()),c.globals.shouldAnimate||(n=1),e.plot(s).animate(1,c.globals.easing,o).plot(s).animate(n,c.globals.easing,o).plot(r).afterAll(function(){P.isNumber(i)?i===c.globals.series[c.globals.maxValsInArrayIndex].length-2&&c.globals.shouldAnimate&&h.animationCompleted(e):a!=="none"&&c.globals.shouldAnimate&&(!c.globals.comboCharts&&t===c.globals.series.length-1||c.globals.comboCharts)&&h.animationCompleted(e),h.showDelayedElements()})}}]),f}(),q=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"getDefaultFilter",value:function(e,t){var i=this.w;e.unfilter(!0),new window.SVG.Filter().size("120%","180%","-5%","-40%"),i.config.states.normal.filter!=="none"?this.applyFilter(e,t,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(e,i.config.chart.dropShadow,t)}},{key:"addNormalFilter",value:function(e,t){var i=this.w;i.config.chart.dropShadow.enabled&&!e.node.classList.contains("apexcharts-marker")&&this.dropShadow(e,i.config.chart.dropShadow,t)}},{key:"addLightenFilter",value:function(e,t,i){var a=this,s=this.w,r=i.intensity;e.unfilter(!0),new window.SVG.Filter,e.filter(function(n){var o=s.config.chart.dropShadow;(o.enabled?a.addShadow(n,t,o):n).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})}),e.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(e.filterer.node)}},{key:"addDarkenFilter",value:function(e,t,i){var a=this,s=this.w,r=i.intensity;e.unfilter(!0),new window.SVG.Filter,e.filter(function(n){var o=s.config.chart.dropShadow;(o.enabled?a.addShadow(n,t,o):n).componentTransfer({rgb:{type:"linear",slope:r}})}),e.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(e.filterer.node)}},{key:"applyFilter",value:function(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(e,t);break;case"lighten":this.addLightenFilter(e,t,{intensity:a});break;case"darken":this.addDarkenFilter(e,t,{intensity:a})}}},{key:"addShadow",value:function(e,t,i){var a=i.blur,s=i.top,r=i.left,n=i.color,o=i.opacity,h=e.flood(Array.isArray(n)?n[t]:n,o).composite(e.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(e.source);return e.blend(e.source,h)}},{key:"dropShadow",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=t.top,s=t.left,r=t.blur,n=t.color,o=t.opacity,h=t.noUserSpaceOnUse,c=this.w;return e.unfilter(!0),P.isIE()&&c.config.chart.type==="radialBar"||(n=Array.isArray(n)?n[i]:n,e.filter(function(d){var g=null;g=P.isSafari()||P.isFirefox()||P.isIE()?d.flood(n,o).composite(d.sourceAlpha,"in").offset(s,a).gaussianBlur(r):d.flood(n,o).composite(d.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(d.source),d.blend(d.source,g)}),h||e.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(e.filterer.node)),e}},{key:"setSelectionFilter",value:function(e,t,i){var a=this.w;if(a.globals.selectedDataPoints[t]!==void 0&&a.globals.selectedDataPoints[t].indexOf(i)>-1){e.node.setAttribute("selected",!0);var s=a.config.states.active.filter;s!=="none"&&this.applyFilter(e,t,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(e){(function(t){for(var i in t)t.hasOwnProperty(i)&&e.setAttribute(i,t[i])})({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),f}(),M=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"roundPathCorners",value:function(e,t){function i(S,C,L){var T=C.x-S.x,z=C.y-S.y,I=Math.sqrt(T*T+z*z);return a(S,C,Math.min(1,L/I))}function a(S,C,L){return{x:S.x+(C.x-S.x)*L,y:S.y+(C.y-S.y)*L}}function s(S,C){S.length>2&&(S[S.length-2]=C.x,S[S.length-1]=C.y)}function r(S){return{x:parseFloat(S[S.length-2]),y:parseFloat(S[S.length-1])}}e.indexOf("NaN")>-1&&(e="");var n=e.split(/[,\s]/).reduce(function(S,C){var L=C.match("([a-zA-Z])(.+)");return L?(S.push(L[1]),S.push(L[2])):S.push(C),S},[]).reduce(function(S,C){return parseFloat(C)==C&&S.length?S[S.length-1].push(C):S.push([C]),S},[]),o=[];if(n.length>1){var h=r(n[0]),c=null;n[n.length-1][0]=="Z"&&n[0].length>2&&(c=["L",h.x,h.y],n[n.length-1]=c),o.push(n[0]);for(var d=1;d2&&p[0]=="L"&&x.length>2&&x[0]=="L"){var m,v,w=r(g),A=r(p),l=r(x);m=i(A,w,t),v=i(A,l,t),s(p,m),p.origPoint=A,o.push(p);var u=a(m,A,.5),b=a(A,v,.5),y=["C",u.x,u.y,b.x,b.y,v.x,v.y];y.origPoint=A,o.push(y)}else o.push(p)}if(c){var k=r(o[o.length-1]);o.push(["Z"]),s(o[0],k)}}else o=n;return o.reduce(function(S,C){return S+C.join(" ")+" "},"")}},{key:"drawLine",value:function(e,t,i,a){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"#a8a8a8",r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"butt";return this.w.globals.dom.Paper.line().attr({x1:e,y1:t,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":n,"stroke-linecap":o})}},{key:"drawRect",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"#fefefe",n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:1,o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null,h=arguments.length>8&&arguments[8]!==void 0?arguments[8]:null,c=arguments.length>9&&arguments[9]!==void 0?arguments[9]:0,d=this.w.globals.dom.Paper.rect();return d.attr({x:e,y:t,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:n,"stroke-width":o!==null?o:0,stroke:h!==null?h:"none","stroke-dasharray":c}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"#e1e1e1",i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"none";return this.w.globals.dom.Paper.polygon(e).attr({fill:a,stroke:t,"stroke-width":i})}},{key:"drawCircle",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;e<0&&(e=0);var i=this.w.globals.dom.Paper.circle(2*e);return t!==null&&i.attr(t),i}},{key:"drawPath",value:function(e){var t=e.d,i=t===void 0?"":t,a=e.stroke,s=a===void 0?"#a8a8a8":a,r=e.strokeWidth,n=r===void 0?1:r,o=e.fill,h=e.fillOpacity,c=h===void 0?1:h,d=e.strokeOpacity,g=d===void 0?1:d,p=e.classes,x=e.strokeLinecap,m=x===void 0?null:x,v=e.strokeDashArray,w=v===void 0?0:v,A=this.w;return m===null&&(m=A.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(A.globals.gridHeight)),A.globals.dom.Paper.path(i).attr({fill:o,"fill-opacity":c,stroke:s,"stroke-opacity":g,"stroke-linecap":m,"stroke-width":n,"stroke-dasharray":w,class:p})}},{key:"group",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=this.w.globals.dom.Paper.group();return e!==null&&t.attr(e),t}},{key:"move",value:function(e,t){var i=["M",e,t].join(" ");return i}},{key:"line",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=null;return i===null?a=[" L",e,t].join(" "):i==="H"?a=[" H",e].join(" "):i==="V"&&(a=[" V",t].join(" ")),a}},{key:"curve",value:function(e,t,i,a,s,r){var n=["C",e,t,i,a,s,r].join(" ");return n}},{key:"quadraticCurve",value:function(e,t,i,a){return["Q",e,t,i,a].join(" ")}},{key:"arc",value:function(e,t,i,a,s,r,n){var o="A";arguments.length>7&&arguments[7]!==void 0&&arguments[7]&&(o="a");var h=[o,e,t,i,a,s,r,n].join(" ");return h}},{key:"renderPaths",value:function(e){var t,i=e.j,a=e.realIndex,s=e.pathFrom,r=e.pathTo,n=e.stroke,o=e.strokeWidth,h=e.strokeLinecap,c=e.fill,d=e.animationDelay,g=e.initialSpeed,p=e.dataChangeSpeed,x=e.className,m=e.shouldClipToGrid,v=m===void 0||m,w=e.bindEventsOnPaths,A=w===void 0||w,l=e.drawShadow,u=l===void 0||l,b=this.w,y=new q(this.ctx),k=new fe(this.ctx),S=this.w.config.chart.animations.enabled,C=S&&this.w.config.chart.animations.dynamicAnimation.enabled,L=!!(S&&!b.globals.resized||C&&b.globals.dataChanged&&b.globals.shouldAnimate);L?t=s:(t=r,b.globals.animationEnded=!0);var T=b.config.stroke.dashArray,z=0;z=Array.isArray(T)?T[a]:b.config.stroke.dashArray;var I=this.drawPath({d:t,stroke:n,strokeWidth:o,fill:c,fillOpacity:1,classes:x,strokeLinecap:h,strokeDashArray:z});if(I.attr("index",a),v&&I.attr({"clip-path":"url(#gridRectMask".concat(b.globals.cuid,")")}),b.config.states.normal.filter.type!=="none")y.getDefaultFilter(I,a);else if(b.config.chart.dropShadow.enabled&&u&&(!b.config.chart.dropShadow.enabledOnSeries||b.config.chart.dropShadow.enabledOnSeries&&b.config.chart.dropShadow.enabledOnSeries.indexOf(a)!==-1)){var X=b.config.chart.dropShadow;y.dropShadow(I,X,a)}A&&(I.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,I)),I.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,I)),I.node.addEventListener("mousedown",this.pathMouseDown.bind(this,I))),I.attr({pathTo:r,pathFrom:s});var R={el:I,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:c,strokeWidth:o,delay:d};return!S||b.globals.resized||b.globals.dataChanged?!b.globals.resized&&b.globals.dataChanged||k.showDelayedElements():k.animatePathsGradually(E(E({},R),{},{speed:g})),b.globals.dataChanged&&C&&L&&k.animatePathsGradually(E(E({},R),{},{speed:p})),I}},{key:"drawPattern",value:function(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"#a8a8a8",s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;return this.w.globals.dom.Paper.pattern(t,i,function(r){e==="horizontalLines"?r.line(0,0,i,0).stroke({color:a,width:s+1}):e==="verticalLines"?r.line(0,0,0,t).stroke({color:a,width:s+1}):e==="slantedLines"?r.line(0,0,t,i).stroke({color:a,width:s}):e==="squares"?r.rect(t,i).fill("none").stroke({color:a,width:s}):e==="circles"&&r.circle(t).fill("none").stroke({color:a,width:s})})}},{key:"drawGradient",value:function(e,t,i,a,s){var r,n=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,h=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null,c=arguments.length>8&&arguments[8]!==void 0?arguments[8]:0,d=this.w;t.length<9&&t.indexOf("#")===0&&(t=P.hexToRgba(t,a)),i.length<9&&i.indexOf("#")===0&&(i=P.hexToRgba(i,s));var g=0,p=1,x=1,m=null;o!==null&&(g=o[0]!==void 0?o[0]/100:0,p=o[1]!==void 0?o[1]/100:1,x=o[2]!==void 0?o[2]/100:1,m=o[3]!==void 0?o[3]/100:null);var v=!(d.config.chart.type!=="donut"&&d.config.chart.type!=="pie"&&d.config.chart.type!=="polarArea"&&d.config.chart.type!=="bubble");if(r=h===null||h.length===0?d.globals.dom.Paper.gradient(v?"radial":"linear",function(l){l.at(g,t,a),l.at(p,i,s),l.at(x,i,s),m!==null&&l.at(m,t,a)}):d.globals.dom.Paper.gradient(v?"radial":"linear",function(l){(Array.isArray(h[c])?h[c]:h).forEach(function(u){l.at(u.offset/100,u.color,u.opacity)})}),v){var w=d.globals.gridWidth/2,A=d.globals.gridHeight/2;d.config.chart.type!=="bubble"?r.attr({gradientUnits:"userSpaceOnUse",cx:w,cy:A,r:n}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else e==="vertical"?r.from(0,0).to(0,1):e==="diagonal"?r.from(0,0).to(1,1):e==="horizontal"?r.from(0,1).to(1,1):e==="diagonal2"&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(e){var t=e.text,i=e.maxWidth,a=e.fontSize,s=e.fontFamily,r=this.getTextRects(t,a,s),n=r.width/t.length,o=Math.floor(i/n);return i-1){var o=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(o,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var h=i.globals.dom.Paper.select(".apexcharts-series path").members,c=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,d=function(x){Array.prototype.forEach.call(x,function(m){m.node.setAttribute("selected","false"),a.getDefaultFilter(m,s)})};d(h),d(c)}e.node.setAttribute("selected","true"),n="true",i.globals.selectedDataPoints[s]===void 0&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(n==="true"){var g=i.config.states.active.filter;if(g!=="none")a.applyFilter(e,s,g.type,g.value);else if(i.config.states.hover.filter!=="none"&&!i.globals.isTouchDevice){var p=i.config.states.hover.filter;a.applyFilter(e,s,p.type,p.value)}}else i.config.states.active.filter.type!=="none"&&(i.config.states.hover.filter.type==="none"||i.globals.isTouchDevice?a.getDefaultFilter(e,s):(p=i.config.states.hover.filter,a.applyFilter(e,s,p.type,p.value)));typeof i.config.chart.events.dataPointSelection=="function"&&i.config.chart.events.dataPointSelection(t,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),t&&this.ctx.events.fireEvent("dataPointSelection",[t,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(e){var t={};return e&&typeof e.getBBox=="function"&&(t=e.getBBox()),{x:t.x+t.width/2,y:t.y+t.height/2}}},{key:"getTextRects",value:function(e,t,i,a){var s=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],r=this.w,n=this.drawText({x:-200,y:-200,text:e,textAnchor:"start",fontSize:t,fontFamily:i,foreColor:"#fff",opacity:0});a&&n.attr("transform",a),r.globals.dom.Paper.add(n);var o=n.bbox();return s||(o=n.node.getBoundingClientRect()),n.remove(),{width:o.width,height:o.height}}},{key:"placeTextWithEllipsis",value:function(e,t,i){if(typeof e.getComputedTextLength=="function"&&(e.textContent=t,t.length>0&&e.getComputedTextLength()>=i/1.1)){for(var a=t.length-3;a>0;a-=3)if(e.getSubStringLength(0,a)<=i/1.1)return void(e.textContent=t.substring(0,a)+"...");e.textContent="."}}}],[{key:"setAttrs",value:function(e,t){for(var i in t)t.hasOwnProperty(i)&&e.setAttribute(i,t[i])}}]),f}(),V=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"getStackedSeriesTotals",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=this.w,i=[];if(t.globals.series.length===0)return i;for(var a=0;a0&&arguments[0]!==void 0?arguments[0]:null;return e===null?this.w.config.series.reduce(function(t,i){return t+i},0):this.w.globals.series[e].reduce(function(t,i){return t+i},0)}},{key:"getStackedSeriesTotalsByGroups",value:function(){var e=this,t=this.w,i=[];return t.globals.seriesGroups.forEach(function(a){var s=[];t.config.series.forEach(function(n,o){a.indexOf(n.name)>-1&&s.push(o)});var r=t.globals.series.map(function(n,o){return s.indexOf(o)===-1?o:-1}).filter(function(n){return n!==-1});i.push(e.getStackedSeriesTotals(r))}),i}},{key:"isSeriesNull",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return(e===null?this.w.config.series.filter(function(t){return t!==null}):this.w.config.series[e].data.filter(function(t){return t!==null})).length===0}},{key:"seriesHaveSameValues",value:function(e){return this.w.globals.series[e].every(function(t,i,a){return t===a[0]})}},{key:"getCategoryLabels",value:function(e){var t=this.w,i=e.slice();return t.config.xaxis.convertedCatToNumeric&&(i=e.map(function(a,s){return t.config.xaxis.labels.formatter(a-t.globals.minX+1)})),i}},{key:"getLargestSeries",value:function(){var e=this.w;e.globals.maxValsInArrayIndex=e.globals.series.map(function(t){return t.length}).indexOf(Math.max.apply(Math,e.globals.series.map(function(t){return t.length})))}},{key:"getLargestMarkerSize",value:function(){var e=this.w,t=0;return e.globals.markers.size.forEach(function(i){t=Math.max(t,i)}),e.config.markers.discrete&&e.config.markers.discrete.length&&e.config.markers.discrete.forEach(function(i){t=Math.max(t,i.size)}),t>0&&(t+=e.config.markers.hover.sizeOffset+1),e.globals.markers.largestSize=t,t}},{key:"getSeriesTotals",value:function(){var e=this.w;e.globals.seriesTotals=e.globals.series.map(function(t,i){var a=0;if(Array.isArray(t))for(var s=0;se&&i.globals.seriesX[s][n]0&&(t=!0),{comboBarCount:i,comboCharts:t}}},{key:"extendArrayProps",value:function(e,t,i){return t.yaxis&&(t=e.extendYAxis(t,i)),t.annotations&&(t.annotations.yaxis&&(t=e.extendYAxisAnnotations(t)),t.annotations.xaxis&&(t=e.extendXAxisAnnotations(t)),t.annotations.points&&(t=e.extendPointAnnotations(t))),t}}]),f}(),Fe=function(){function f(e){Y(this,f),this.w=e.w,this.annoCtx=e}return F(f,[{key:"setOrientations",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=this.w;if(e.label.orientation==="vertical"){var a=t!==null?t:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(s!==null){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),e.label.position==="top"?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var n=this.annoCtx.graphics.rotateAroundCenter(s),o=n.x,h=n.y;s.setAttribute("transform","rotate(-90 ".concat(o," ").concat(h,")"))}}}},{key:"addBackgroundToAnno",value:function(e,t){var i=this.w;if(!e||t.label.text===void 0||t.label.text!==void 0&&!String(t.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=e.getBoundingClientRect(),r=t.label.style.padding.left,n=t.label.style.padding.right,o=t.label.style.padding.top,h=t.label.style.padding.bottom;t.label.orientation==="vertical"&&(o=t.label.style.padding.left,h=t.label.style.padding.right,r=t.label.style.padding.top,n=t.label.style.padding.bottom);var c=s.left-a.left-r,d=s.top-a.top-o,g=this.annoCtx.graphics.drawRect(c-i.globals.barPadForNumericAxis,d,s.width+r+n,s.height+o+h,t.label.borderRadius,t.label.style.background,1,t.label.borderWidth,t.label.borderColor,0);return t.id&&g.node.classList.add(t.id),g}},{key:"annotationsBackground",value:function(){var e=this,t=this.w,i=function(a,s,r){var n=t.globals.dom.baseEl.querySelector(".apexcharts-".concat(r,"-annotations .apexcharts-").concat(r,"-annotation-label[rel='").concat(s,"']"));if(n){var o=n.parentNode,h=e.addBackgroundToAnno(n,a);h&&(o.insertBefore(h.node,n),a.label.mouseEnter&&h.node.addEventListener("mouseenter",a.label.mouseEnter.bind(e,a)),a.label.mouseLeave&&h.node.addEventListener("mouseleave",a.label.mouseLeave.bind(e,a)),a.label.click&&h.node.addEventListener("click",a.label.click.bind(e,a)))}};t.config.annotations.xaxis.map(function(a,s){i(a,s,"xaxis")}),t.config.annotations.yaxis.map(function(a,s){i(a,s,"yaxis")}),t.config.annotations.points.map(function(a,s){i(a,s,"point")})}},{key:"getY1Y2",value:function(e,t){var i,a=e==="y1"?t.y:t.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var n=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");n&&(i=parseFloat(n.getAttribute("y"))),t.seriesIndex!==void 0&&s.globals.barHeight&&(i=i-s.globals.barHeight/2*(s.globals.series.length-1)+s.globals.barHeight*t.seriesIndex)}else{var o;s.config.yaxis[t.yAxisIndex].logarithmic?o=(a=new V(this.annoCtx.ctx).getLogVal(a,t.yAxisIndex))/s.globals.yLogRatio[t.yAxisIndex]:o=(a-s.globals.minYArr[t.yAxisIndex])/(s.globals.yRange[t.yAxisIndex]/s.globals.gridHeight),i=s.globals.gridHeight-o,!t.marker||t.y!==void 0&&t.y!==null||(i=0),s.config.yaxis[t.yAxisIndex]&&s.config.yaxis[t.yAxisIndex].reversed&&(i=o)}return typeof a=="string"&&a.indexOf("px")>-1&&(i=parseFloat(a)),i}},{key:"getX1X2",value:function(e,t){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,n=(t.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(n=(s-t.x)/(r/i.globals.gridWidth)),i.config.xaxis.type!=="category"&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(t.x));var o=(t.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(o=(s-t.x2)/(r/i.globals.gridWidth)),i.config.xaxis.type!=="category"&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(t.x2)),t.x!==void 0&&t.x!==null||!t.marker||(n=i.globals.gridWidth),e==="x1"&&typeof t.x=="string"&&t.x.indexOf("px")>-1&&(n=parseFloat(t.x)),e==="x2"&&typeof t.x2=="string"&&t.x2.indexOf("px")>-1&&(o=parseFloat(t.x2)),t.seriesIndex!==void 0&&i.globals.barWidth&&!this.annoCtx.invertAxis&&(n=n-i.globals.barWidth/2*(i.globals.series.length-1)+i.globals.barWidth*t.seriesIndex),e==="x1"?n:o}},{key:"getStringX",value:function(e){var t=this.w,i=e;t.config.xaxis.convertedCatToNumeric&&t.globals.categoryLabels.length&&(e=t.globals.categoryLabels.indexOf(e)+1);var a=t.globals.labels.indexOf(e),s=t.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),f}(),Si=function(){function f(e){Y(this,f),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new Fe(this.annoCtx)}return F(f,[{key:"addXaxisAnnotation",value:function(e,t,i){var a,s=this.w,r=this.helpers.getX1X2("x1",e),n=e.label.text,o=e.strokeDashArray;if(P.isNumber(r)){if(e.x2===null||e.x2===void 0){var h=this.annoCtx.graphics.drawLine(r+e.offsetX,0+e.offsetY,r+e.offsetX,s.globals.gridHeight+e.offsetY,e.borderColor,o,e.borderWidth);t.appendChild(h.node),e.id&&h.node.classList.add(e.id)}else{if((a=this.helpers.getX1X2("x2",e))n){var c=n;n=a,a=c}var d=this.annoCtx.graphics.drawRect(0+e.offsetX,a+e.offsetY,this._getYAxisAnnotationWidth(e),n-a,0,e.fillColor,e.opacity,1,e.borderColor,r);d.node.classList.add("apexcharts-annotation-rect"),d.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),t.appendChild(d.node),e.id&&d.node.classList.add(e.id)}var g=e.label.position==="right"?s.globals.gridWidth:e.label.position==="center"?s.globals.gridWidth/2:0,p=this.annoCtx.graphics.drawText({x:g+e.label.offsetX,y:(a??n)+e.label.offsetY-3,text:o,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(e.label.style.cssClass," ").concat(e.id?e.id:"")});p.attr({rel:i}),t.appendChild(p.node)}},{key:"_getYAxisAnnotationWidth",value:function(e){var t=this.w;return t.globals.gridWidth,(e.width.indexOf("%")>-1?t.globals.gridWidth*parseInt(e.width,10)/100:parseInt(e.width,10))+e.offsetX}},{key:"drawYAxisAnnotations",value:function(){var e=this,t=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return t.config.annotations.yaxis.map(function(a,s){e.addYaxisAnnotation(a,i.node,s)}),i}}]),f}(),Li=function(){function f(e){Y(this,f),this.w=e.w,this.annoCtx=e,this.helpers=new Fe(this.annoCtx)}return F(f,[{key:"addPointAnnotation",value:function(e,t,i){this.w;var a=this.helpers.getX1X2("x1",e),s=this.helpers.getY1Y2("y1",e);if(P.isNumber(a)){var r={pSize:e.marker.size,pointStrokeWidth:e.marker.strokeWidth,pointFillColor:e.marker.fillColor,pointStrokeColor:e.marker.strokeColor,shape:e.marker.shape,pRadius:e.marker.radius,class:"apexcharts-point-annotation-marker ".concat(e.marker.cssClass," ").concat(e.id?e.id:"")},n=this.annoCtx.graphics.drawMarker(a+e.marker.offsetX,s+e.marker.offsetY,r);t.appendChild(n.node);var o=e.label.text?e.label.text:"",h=this.annoCtx.graphics.drawText({x:a+e.label.offsetX,y:s+e.label.offsetY-e.marker.size-parseFloat(e.label.style.fontSize)/1.6,text:o,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(e.label.style.cssClass," ").concat(e.id?e.id:"")});if(h.attr({rel:i}),t.appendChild(h.node),e.customSVG.SVG){var c=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+e.customSVG.cssClass});c.attr({transform:"translate(".concat(a+e.customSVG.offsetX,", ").concat(s+e.customSVG.offsetY,")")}),c.node.innerHTML=e.customSVG.SVG,t.appendChild(c.node)}if(e.image.path){var d=e.image.width?e.image.width:20,g=e.image.height?e.image.height:20;n=this.annoCtx.addImage({x:a+e.image.offsetX-d/2,y:s+e.image.offsetY-g/2,width:d,height:g,path:e.image.path,appendTo:".apexcharts-point-annotations"})}e.mouseEnter&&n.node.addEventListener("mouseenter",e.mouseEnter.bind(this,e)),e.mouseLeave&&n.node.addEventListener("mouseleave",e.mouseLeave.bind(this,e)),e.click&&n.node.addEventListener("click",e.click.bind(this,e))}}},{key:"drawPointAnnotations",value:function(){var e=this,t=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return t.config.annotations.points.map(function(a,s){e.addPointAnnotation(a,i.node,s)}),i}}]),f}(),Pt={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},re=function(){function f(){Y(this,f),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,stepSize:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:void 0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return F(f,[{key:"init",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[Pt],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,nonce:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},stacked:!1,stackOnlyBar:!0,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(e){return new Date(e).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,borderRadiusApplication:"around",borderRadiusWhenStacked:"last",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:"#373d3f",fontSize:"12px",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,dataLabels:{format:"scale"},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(e){return e}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(e){return e+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(e){return e.globals.seriesTotals.reduce(function(t,i){return t+i},0)/e.globals.series.length+"%"}}},barLabels:{enabled:!1,margin:5,useSeriesColors:!0,fontFamily:void 0,fontWeight:600,fontSize:"16px",formatter:function(e){return e},onClick:void 0}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(e){return e}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(e){return e}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(e){return e.globals.seriesTotals.reduce(function(t,i){return t+i},0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(e){return e!==null?e:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,hideEmptySeries:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(e){return e?e+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},stepSize:void 0,tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),f}(),Pi=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.graphics=new M(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new Fe(this),this.xAxisAnnotations=new Si(this),this.yAxisAnnotations=new Ci(this),this.pointsAnnotations=new Li(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return F(f,[{key:"drawAxesAnnotations",value:function(){var e=this.w;if(e.globals.axisCharts){for(var t=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=e.config.chart.animations.enabled,r=[t,i,a],n=[i.node,t.node,a.node],o=0;o<3;o++)e.globals.dom.elGraphical.add(r[o]),!s||e.globals.resized||e.globals.dataChanged||e.config.chart.type!=="scatter"&&e.config.chart.type!=="bubble"&&e.globals.dataPoints>1&&n[o].classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:n[o],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var e=this;this.w.config.annotations.images.map(function(t,i){e.addImage(t,i)})}},{key:"drawTextAnnos",value:function(){var e=this;this.w.config.annotations.texts.map(function(t,i){e.addText(t,i)})}},{key:"addXaxisAnnotation",value:function(e,t,i){this.xAxisAnnotations.addXaxisAnnotation(e,t,i)}},{key:"addYaxisAnnotation",value:function(e,t,i){this.yAxisAnnotations.addYaxisAnnotation(e,t,i)}},{key:"addPointAnnotation",value:function(e,t,i){this.pointsAnnotations.addPointAnnotation(e,t,i)}},{key:"addText",value:function(e,t){var i=e.x,a=e.y,s=e.text,r=e.textAnchor,n=e.foreColor,o=e.fontSize,h=e.fontFamily,c=e.fontWeight,d=e.cssClass,g=e.backgroundColor,p=e.borderWidth,x=e.strokeDashArray,m=e.borderRadius,v=e.borderColor,w=e.appendTo,A=w===void 0?".apexcharts-svg":w,l=e.paddingLeft,u=l===void 0?4:l,b=e.paddingRight,y=b===void 0?4:b,k=e.paddingBottom,S=k===void 0?2:k,C=e.paddingTop,L=C===void 0?2:C,T=this.w,z=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:o||"12px",fontWeight:c||"regular",fontFamily:h||T.config.chart.fontFamily,foreColor:n||T.config.chart.foreColor,cssClass:d}),I=T.globals.dom.baseEl.querySelector(A);I&&I.appendChild(z.node);var X=z.bbox();if(s){var R=this.graphics.drawRect(X.x-u,X.y-L,X.width+u+y,X.height+S+L,m,g||"transparent",1,p,v,x);I.insertBefore(R.node,z.node)}}},{key:"addImage",value:function(e,t){var i=this.w,a=e.path,s=e.x,r=s===void 0?0:s,n=e.y,o=n===void 0?0:n,h=e.width,c=h===void 0?20:h,d=e.height,g=d===void 0?20:d,p=e.appendTo,x=p===void 0?".apexcharts-svg":p,m=i.globals.dom.Paper.image(a);m.size(c,g).move(r,o);var v=i.globals.dom.baseEl.querySelector(x);return v&&v.appendChild(m.node),m}},{key:"addXaxisAnnotationExternal",value:function(e,t,i){return this.addAnnotationExternal({params:e,pushToMemory:t,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(e,t,i){return this.addAnnotationExternal({params:e,pushToMemory:t,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(e,t,i){return this.invertAxis===void 0&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:e,pushToMemory:t,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(e){var t=e.params,i=e.pushToMemory,a=e.context,s=e.type,r=e.contextMethod,n=a,o=n.w,h=o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),c=h.childNodes.length+1,d=new re,g=Object.assign({},s==="xaxis"?d.xAxisAnnotation:s==="yaxis"?d.yAxisAnnotation:d.pointAnnotation),p=P.extend(g,t);switch(s){case"xaxis":this.addXaxisAnnotation(p,h,c);break;case"yaxis":this.addYaxisAnnotation(p,h,c);break;case"point":this.addPointAnnotation(p,h,c)}var x=o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(c,"']")),m=this.helpers.addBackgroundToAnno(x,p);return m&&h.insertBefore(m.node,x),i&&o.globals.memory.methodsToExec.push({context:n,id:p.id?p.id:P.randomId(),method:r,label:"addAnnotation",params:t}),a}},{key:"clearAnnotations",value:function(e){var t=e.w,i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");t.globals.memory.methodsToExec.map(function(a,s){a.label!=="addText"&&a.label!=="addAnnotation"||t.globals.memory.methodsToExec.splice(s,1)}),i=P.listToArray(i),Array.prototype.forEach.call(i,function(a){for(;a.firstChild;)a.removeChild(a.firstChild)})}},{key:"removeAnnotation",value:function(e,t){var i=e.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(t));a&&(i.globals.memory.methodsToExec.map(function(s,r){s.id===t&&i.globals.memory.methodsToExec.splice(r,1)}),Array.prototype.forEach.call(a,function(s){s.parentElement.removeChild(s)}))}}]),f}(),j=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return F(f,[{key:"isValidDate",value:function(e){return typeof e!="number"&&!isNaN(this.parseDate(e))}},{key:"getTimeStamp",value:function(e){return Date.parse(e)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(e).toISOString().substr(0,25)).getTime():new Date(e).getTime():e}},{key:"getDate",value:function(e){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(e).toUTCString()):new Date(e)}},{key:"parseDate",value:function(e){var t=Date.parse(e);if(!isNaN(t))return this.getTimeStamp(e);var i=Date.parse(e.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(e){return Date.parse(e.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(e,t){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(J(i.months)),r=[""].concat(J(i.shortMonths)),n=[""].concat(J(i.days)),o=[""].concat(J(i.shortDays));function h(S,C){var L=S+"";for(C=C||2;L.length12?p-12:p===0?12:p;t=(t=(t=(t=t.replace(/(^|[^\\])HH+/g,"$1"+h(p))).replace(/(^|[^\\])H/g,"$1"+p)).replace(/(^|[^\\])hh+/g,"$1"+h(x))).replace(/(^|[^\\])h/g,"$1"+x);var m=a?e.getUTCMinutes():e.getMinutes();t=(t=t.replace(/(^|[^\\])mm+/g,"$1"+h(m))).replace(/(^|[^\\])m/g,"$1"+m);var v=a?e.getUTCSeconds():e.getSeconds();t=(t=t.replace(/(^|[^\\])ss+/g,"$1"+h(v))).replace(/(^|[^\\])s/g,"$1"+v);var w=a?e.getUTCMilliseconds():e.getMilliseconds();t=t.replace(/(^|[^\\])fff+/g,"$1"+h(w,3)),w=Math.round(w/10),t=t.replace(/(^|[^\\])ff/g,"$1"+h(w)),w=Math.round(w/10);var A=p<12?"AM":"PM";t=(t=(t=t.replace(/(^|[^\\])f/g,"$1"+w)).replace(/(^|[^\\])TT+/g,"$1"+A)).replace(/(^|[^\\])T/g,"$1"+A.charAt(0));var l=A.toLowerCase();t=(t=t.replace(/(^|[^\\])tt+/g,"$1"+l)).replace(/(^|[^\\])t/g,"$1"+l.charAt(0));var u=-e.getTimezoneOffset(),b=a||!u?"Z":u>0?"+":"-";if(!a){var y=(u=Math.abs(u))%60;b+=h(Math.floor(u/60))+":"+h(y)}t=t.replace(/(^|[^\\])K/g,"$1"+b);var k=(a?e.getUTCDay():e.getDay())+1;return t=(t=(t=(t=(t=t.replace(new RegExp(n[0],"g"),n[k])).replace(new RegExp(o[0],"g"),o[k])).replace(new RegExp(s[0],"g"),s[d])).replace(new RegExp(r[0],"g"),r[d])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(e,t,i){var a=this.w;a.config.xaxis.min!==void 0&&(e=a.config.xaxis.min),a.config.xaxis.max!==void 0&&(t=a.config.xaxis.max);var s=this.getDate(e),r=this.getDate(t),n=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),o=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(n[6],10),maxMillisecond:parseInt(o[6],10),minSecond:parseInt(n[5],10),maxSecond:parseInt(o[5],10),minMinute:parseInt(n[4],10),maxMinute:parseInt(o[4],10),minHour:parseInt(n[3],10),maxHour:parseInt(o[3],10),minDate:parseInt(n[2],10),maxDate:parseInt(o[2],10),minMonth:parseInt(n[1],10)-1,maxMonth:parseInt(o[1],10)-1,minYear:parseInt(n[0],10),maxYear:parseInt(o[0],10)}}},{key:"isLeapYear",value:function(e){return e%4==0&&e%100!=0||e%400==0}},{key:"calculcateLastDaysOfMonth",value:function(e,t,i){return this.determineDaysOfMonths(e,t)-i}},{key:"determineDaysOfYear",value:function(e){var t=365;return this.isLeapYear(e)&&(t=366),t}},{key:"determineRemainingDaysOfYear",value:function(e,t,i){var a=this.daysCntOfYear[t]+i;return t>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(e,t){var i=30;switch(e=P.monthMod(e),!0){case this.months30.indexOf(e)>-1:e===2&&(i=this.isLeapYear(t)?29:28);break;case this.months31.indexOf(e)>-1:default:i=31}return i}}]),f}(),Se=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.tooltipKeyFormat="dd MMM"}return F(f,[{key:"xLabelFormat",value:function(e,t,i,a){var s=this.w;if(s.config.xaxis.type==="datetime"&&s.config.xaxis.labels.formatter===void 0&&s.config.tooltip.x.formatter===void 0){var r=new j(this.ctx);return r.formatDate(r.getDate(t),s.config.tooltip.x.format)}return e(t,i,a)}},{key:"defaultGeneralFormatter",value:function(e){return Array.isArray(e)?e.map(function(t){return t}):e}},{key:"defaultYFormatter",value:function(e,t,i){var a=this.w;return P.isNumber(e)&&(e=a.globals.yValueDecimal!==0?e.toFixed(t.decimalsInFloat!==void 0?t.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?e.toFixed(1):e.toFixed(0)),e}},{key:"setLabelFormatters",value:function(){var e=this,t=this.w;return t.globals.xaxisTooltipFormatter=function(i){return e.defaultGeneralFormatter(i)},t.globals.ttKeyFormatter=function(i){return e.defaultGeneralFormatter(i)},t.globals.ttZFormatter=function(i){return i},t.globals.legendFormatter=function(i){return e.defaultGeneralFormatter(i)},t.config.xaxis.labels.formatter!==void 0?t.globals.xLabelFormatter=t.config.xaxis.labels.formatter:t.globals.xLabelFormatter=function(i){if(P.isNumber(i)){if(!t.config.xaxis.convertedCatToNumeric&&t.config.xaxis.type==="numeric"){if(P.isNumber(t.config.xaxis.decimalsInFloat))return i.toFixed(t.config.xaxis.decimalsInFloat);var a=t.globals.maxX-t.globals.minX;return a>0&&a<100?i.toFixed(1):i.toFixed(0)}return t.globals.isBarHorizontal&&t.globals.maxY-t.globals.minYArr<4?i.toFixed(1):i.toFixed(0)}return i},typeof t.config.tooltip.x.formatter=="function"?t.globals.ttKeyFormatter=t.config.tooltip.x.formatter:t.globals.ttKeyFormatter=t.globals.xLabelFormatter,typeof t.config.xaxis.tooltip.formatter=="function"&&(t.globals.xaxisTooltipFormatter=t.config.xaxis.tooltip.formatter),(Array.isArray(t.config.tooltip.y)||t.config.tooltip.y.formatter!==void 0)&&(t.globals.ttVal=t.config.tooltip.y),t.config.tooltip.z.formatter!==void 0&&(t.globals.ttZFormatter=t.config.tooltip.z.formatter),t.config.legend.formatter!==void 0&&(t.globals.legendFormatter=t.config.legend.formatter),t.config.yaxis.forEach(function(i,a){i.labels.formatter!==void 0?t.globals.yLabelFormatters[a]=i.labels.formatter:t.globals.yLabelFormatters[a]=function(s){return t.globals.xyCharts?Array.isArray(s)?s.map(function(r){return e.defaultYFormatter(r,i,a)}):e.defaultYFormatter(s,i,a):s}}),t.globals}},{key:"heatmapLabelFormatters",value:function(){var e=this.w;if(e.config.chart.type==="heatmap"){e.globals.yAxisScale[0].result=e.globals.seriesNames.slice();var t=e.globals.seriesNames.reduce(function(i,a){return i.length>a.length?i:a},0);e.globals.yAxisScale[0].niceMax=t,e.globals.yAxisScale[0].niceMin=t}}}]),f}(),_e=function(f){var e,t=f.isTimeline,i=f.ctx,a=f.seriesIndex,s=f.dataPointIndex,r=f.y1,n=f.y2,o=f.w,h=o.globals.seriesRangeStart[a][s],c=o.globals.seriesRangeEnd[a][s],d=o.globals.labels[s],g=o.config.series[a].name?o.config.series[a].name:"",p=o.globals.ttKeyFormatter,x=o.config.tooltip.y.title.formatter,m={w:o,seriesIndex:a,dataPointIndex:s,start:h,end:c};typeof x=="function"&&(g=x(g,m)),(e=o.config.series[a].data[s])!==null&&e!==void 0&&e.x&&(d=o.config.series[a].data[s].x),t||o.config.xaxis.type==="datetime"&&(d=new Se(i).xLabelFormat(o.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new j(i).formatDate,w:o})),typeof p=="function"&&(d=p(d,m)),Number.isFinite(r)&&Number.isFinite(n)&&(h=r,c=n);var v="",w="",A=o.globals.colors[a];if(o.config.tooltip.x.formatter===void 0)if(o.config.xaxis.type==="datetime"){var l=new j(i);v=l.formatDate(l.getDate(h),o.config.tooltip.x.format),w=l.formatDate(l.getDate(c),o.config.tooltip.x.format)}else v=h,w=c;else v=o.config.tooltip.x.formatter(h),w=o.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:v,endVal:w,ylabel:d,color:A,seriesName:g}},je=function(f){var e=f.color,t=f.seriesName,i=f.ylabel,a=f.start,s=f.end,r=f.seriesIndex,n=f.dataPointIndex,o=f.ctx.tooltip.tooltipLabels.getFormatters(r);a=o.yLbFormatter(a),s=o.yLbFormatter(s);var h=o.yLbFormatter(f.w.globals.series[r][n]),c=` + `.concat(a,` + - + `).concat(s,` + `);return'
'+(t||"")+'
'+i+": "+(f.w.globals.comboCharts?f.w.config.series[r].type==="rangeArea"||f.w.config.series[r].type==="rangeBar"?c:"".concat(h,""):c)+"
"},ve=function(){function f(e){Y(this,f),this.opts=e}return F(f,[{key:"hideYAxis",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(e){return this.hideYAxis(),P.extend(e,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"funnel",value:function(){return this.hideYAxis(),E(E({},this.bar()),{},{chart:{animations:{easing:"linear",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:"around",borderRadius:0,dataLabels:{position:"center"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:"candlestick",value:function(){var e=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(t){var i=t.seriesIndex,a=t.dataPointIndex,s=t.w;return e._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var e=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(t){var i=t.seriesIndex,a=t.dataPointIndex,s=t.w;return e._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(e,t){t.ctx;var i=t.seriesIndex,a=t.dataPointIndex,s=t.w,r=function(){var n=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-n};return s.globals.comboCharts?s.config.series[i].type==="rangeBar"||s.config.series[i].type==="rangeArea"?r():e:r()},background:{enabled:!1},style:{colors:["#fff"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(e){return e.w.config.plotOptions&&e.w.config.plotOptions.bar&&e.w.config.plotOptions.bar.horizontal?function(t){var i=_e(E(E({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,n=i.startVal,o=i.endVal;return je(E(E({},t),{},{color:a,seriesName:s,ylabel:r,start:n,end:o}))}(e):function(t){var i=_e(t),a=i.color,s=i.seriesName,r=i.ylabel,n=i.start,o=i.end;return je(E(E({},t),{},{color:a,seriesName:s,ylabel:r,start:n,end:o}))}(e)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"dumbbell",value:function(e){var t,i;return(t=e.plotOptions.bar)!==null&&t!==void 0&&t.barHeight||(e.plotOptions.bar.barHeight=2),(i=e.plotOptions.bar)!==null&&i!==void 0&&i.columnWidth||(e.plotOptions.bar.columnWidth=2),e}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"rangeArea",value:function(){return{stroke:{curve:"straight",width:0},fill:{type:"solid",opacity:.6},markers:{size:0},states:{hover:{filter:{type:"none"}},active:{filter:{type:"none"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(e){return function(t){var i=_e(t),a=i.color,s=i.seriesName,r=i.ylabel,n=i.start,o=i.end;return je(E(E({},t),{},{color:a,seriesName:s,ylabel:r,start:n,end:o}))}(e)}}}}},{key:"brush",value:function(e){return P.extend(e,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(e){e.dataLabels=e.dataLabels||{},e.dataLabels.formatter=e.dataLabels.formatter||void 0;var t=e.dataLabels.formatter;return e.yaxis.forEach(function(i,a){e.yaxis[a].min=0,e.yaxis[a].max=100}),e.chart.type==="bar"&&(e.dataLabels.formatter=t||function(i){return typeof i=="number"&&i?i.toFixed(0)+"%":i}),e}},{key:"stackedBars",value:function(){var e=this.bar();return E(E({},e),{},{plotOptions:E(E({},e.plotOptions),{},{bar:E(E({},e.plotOptions.bar),{},{borderRadiusApplication:"end",borderRadiusWhenStacked:"last"})})})}},{key:"convertCatToNumeric",value:function(e){return e.xaxis.convertedCatToNumeric=!0,e}},{key:"convertCatToNumericXaxis",value:function(e,t,i){e.xaxis.type="numeric",e.xaxis.labels=e.xaxis.labels||{},e.xaxis.labels.formatter=e.xaxis.labels.formatter||function(r){return P.isNumber(r)?Math.floor(r):r};var a=e.xaxis.labels.formatter,s=e.xaxis.categories&&e.xaxis.categories.length?e.xaxis.categories:e.labels;return i&&i.length&&(s=i.map(function(r){return Array.isArray(r)?r:String(r)})),s&&s.length&&(e.xaxis.labels.formatter=function(r){return P.isNumber(r)?a(s[Math.floor(r)-1]):a(r)}),e.xaxis.categories=[],e.labels=[],e.xaxis.tickAmount=e.xaxis.tickAmount||"dataPoints",e}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(e){return e.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(e){return e.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(e){return e.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(e){return e},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(e,t,i,a,s){var r=e.globals.seriesCandleO[t][i],n=e.globals.seriesCandleH[t][i],o=e.globals.seriesCandleM[t][i],h=e.globals.seriesCandleL[t][i],c=e.globals.seriesCandleC[t][i];return e.config.series[t].type&&e.config.series[t].type!==s?`
+ `.concat(e.config.series[t].name?e.config.series[t].name:"series-"+(t+1),": ").concat(e.globals.series[t][i],` +
`):'
')+"
".concat(a[0],': ')+r+"
"+"
".concat(a[1],': ')+n+"
"+(o?"
".concat(a[2],': ')+o+"
":"")+"
".concat(a[3],': ')+h+"
"+"
".concat(a[4],': ')+c+"
"}}]),f}(),ye=function(){function f(e){Y(this,f),this.opts=e}return F(f,[{key:"init",value:function(e){var t=e.responsiveOverride,i=this.opts,a=new re,s=new ve(i);this.chartType=i.chart.type,i=this.extendYAxis(i),i=this.extendAnnotations(i);var r=a.init(),n={};if(i&&_(i)==="object"){var o,h,c,d,g,p,x,m,v,w,A={};A=["line","area","bar","candlestick","boxPlot","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(i.chart.type)!==-1?s[i.chart.type]():s.line(),(o=i.plotOptions)!==null&&o!==void 0&&(h=o.bar)!==null&&h!==void 0&&h.isFunnel&&(A=s.funnel()),i.chart.stacked&&i.chart.type==="bar"&&(A=s.stackedBars()),(c=i.chart.brush)!==null&&c!==void 0&&c.enabled&&(A=s.brush(A)),i.chart.stacked&&i.chart.stackType==="100%"&&(i=s.stacked100(i)),(d=i.plotOptions)!==null&&d!==void 0&&(g=d.bar)!==null&&g!==void 0&&g.isDumbbell&&(i=s.dumbbell(i)),((p=i)===null||p===void 0||(x=p.stroke)===null||x===void 0?void 0:x.curve)==="monotoneCubic"&&(i.stroke.curve="smooth"),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(i),i.xaxis=i.xaxis||window.Apex.xaxis||{},t||(i.xaxis.convertedCatToNumeric=!1),((m=(i=this.checkForCatToNumericXAxis(this.chartType,A,i)).chart.sparkline)!==null&&m!==void 0&&m.enabled||(v=window.Apex.chart)!==null&&v!==void 0&&(w=v.sparkline)!==null&&w!==void 0&&w.enabled)&&(A=s.sparkline(A)),n=P.extend(r,A)}var l=P.extend(n,window.Apex);return r=P.extend(l,i),r=this.handleUserInputErrors(r)}},{key:"checkForCatToNumericXAxis",value:function(e,t,i){var a,s,r=new ve(i),n=(e==="bar"||e==="boxPlot")&&((a=i.plotOptions)===null||a===void 0||(s=a.bar)===null||s===void 0?void 0:s.horizontal),o=e==="pie"||e==="polarArea"||e==="donut"||e==="radar"||e==="radialBar"||e==="heatmap",h=i.xaxis.type!=="datetime"&&i.xaxis.type!=="numeric",c=i.xaxis.tickPlacement?i.xaxis.tickPlacement:t.xaxis&&t.xaxis.tickPlacement;return n||o||!h||c==="between"||(i=r.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(e,t){var i=new re;(e.yaxis===void 0||!e.yaxis||Array.isArray(e.yaxis)&&e.yaxis.length===0)&&(e.yaxis={}),e.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(e.yaxis=P.extend(e.yaxis,window.Apex.yaxis)),e.yaxis.constructor!==Array?e.yaxis=[P.extend(i.yAxis,e.yaxis)]:e.yaxis=P.extendArray(e.yaxis,i.yAxis);var a=!1;e.yaxis.forEach(function(r){r.logarithmic&&(a=!0)});var s=e.series;return t&&!s&&(s=t.config.series),a&&s.length!==e.yaxis.length&&s.length&&(e.yaxis=s.map(function(r,n){if(r.name||(s[n].name="series-".concat(n+1)),e.yaxis[n])return e.yaxis[n].seriesName=s[n].name,e.yaxis[n];var o=P.extend(i.yAxis,e.yaxis[0]);return o.show=!1,o})),a&&s.length>1&&s.length!==e.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"),e}},{key:"extendAnnotations",value:function(e){return e.annotations===void 0&&(e.annotations={},e.annotations.yaxis=[],e.annotations.xaxis=[],e.annotations.points=[]),e=this.extendYAxisAnnotations(e),e=this.extendXAxisAnnotations(e),e=this.extendPointAnnotations(e)}},{key:"extendYAxisAnnotations",value:function(e){var t=new re;return e.annotations.yaxis=P.extendArray(e.annotations.yaxis!==void 0?e.annotations.yaxis:[],t.yAxisAnnotation),e}},{key:"extendXAxisAnnotations",value:function(e){var t=new re;return e.annotations.xaxis=P.extendArray(e.annotations.xaxis!==void 0?e.annotations.xaxis:[],t.xAxisAnnotation),e}},{key:"extendPointAnnotations",value:function(e){var t=new re;return e.annotations.points=P.extendArray(e.annotations.points!==void 0?e.annotations.points:[],t.pointAnnotation),e}},{key:"checkForDarkTheme",value:function(e){e.theme&&e.theme.mode==="dark"&&(e.tooltip||(e.tooltip={}),e.tooltip.theme!=="light"&&(e.tooltip.theme="dark"),e.chart.foreColor||(e.chart.foreColor="#f6f7f8"),e.chart.background||(e.chart.background="#424242"),e.theme.palette||(e.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(e){var t=e;if(t.tooltip.shared&&t.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if(t.chart.type==="bar"&&t.plotOptions.bar.horizontal){if(t.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");t.yaxis[0].reversed&&(t.yaxis[0].opposite=!0),t.xaxis.tooltip.enabled=!1,t.yaxis[0].tooltip.enabled=!1,t.chart.zoom.enabled=!1}return t.chart.type!=="bar"&&t.chart.type!=="rangeBar"||t.tooltip.shared&&t.xaxis.crosshairs.width==="barWidth"&&t.series.length>1&&(t.xaxis.crosshairs.width="tickWidth"),t.chart.type!=="candlestick"&&t.chart.type!=="boxPlot"||t.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(t.chart.type," chart is not supported.")),t.yaxis[0].reversed=!1),t}}]),f}(),Tt=function(){function f(){Y(this,f)}return F(f,[{key:"initGlobalVars",value:function(e){e.series=[],e.seriesCandleO=[],e.seriesCandleH=[],e.seriesCandleM=[],e.seriesCandleL=[],e.seriesCandleC=[],e.seriesRangeStart=[],e.seriesRangeEnd=[],e.seriesRange=[],e.seriesPercent=[],e.seriesGoals=[],e.seriesX=[],e.seriesZ=[],e.seriesNames=[],e.seriesTotals=[],e.seriesLog=[],e.seriesColors=[],e.stackedSeriesTotals=[],e.seriesXvalues=[],e.seriesYvalues=[],e.labels=[],e.hasXaxisGroups=!1,e.groups=[],e.hasSeriesGroups=!1,e.seriesGroups=[],e.categoryLabels=[],e.timescaleLabels=[],e.noLabelsProvided=!1,e.resizeTimer=null,e.selectionResizeTimer=null,e.delayedElements=[],e.pointsArray=[],e.dataLabelsRects=[],e.isXNumeric=!1,e.skipLastTimelinelabel=!1,e.skipFirstTimelinelabel=!1,e.isDataXYZ=!1,e.isMultiLineX=!1,e.isMultipleYAxis=!1,e.maxY=-Number.MAX_VALUE,e.minY=Number.MIN_VALUE,e.minYArr=[],e.maxYArr=[],e.maxX=-Number.MAX_VALUE,e.minX=Number.MAX_VALUE,e.initialMaxX=-Number.MAX_VALUE,e.initialMinX=Number.MAX_VALUE,e.maxDate=0,e.minDate=Number.MAX_VALUE,e.minZ=Number.MAX_VALUE,e.maxZ=-Number.MAX_VALUE,e.minXDiff=Number.MAX_VALUE,e.yAxisScale=[],e.xAxisScale=null,e.xAxisTicksPositions=[],e.yLabelsCoords=[],e.yTitleCoords=[],e.barPadForNumericAxis=0,e.padHorizontal=0,e.xRange=0,e.yRange=[],e.zRange=0,e.dataPoints=0,e.xTickAmount=0}},{key:"globalVars",value:function(e){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:e.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:e.chart.toolbar.autoSelected==="zoom"&&e.chart.toolbar.tools.zoom&&e.chart.zoom.enabled,panEnabled:e.chart.toolbar.autoSelected==="pan"&&e.chart.toolbar.tools.pan,selectionEnabled:e.chart.toolbar.autoSelected==="selection"&&e.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(e){var t=this.globalVars(e);return this.initGlobalVars(t),t.initialConfig=P.extend({},e),t.initialSeries=P.clone(e.series),t.lastXAxis=P.clone(t.initialConfig.xaxis),t.lastYAxis=P.clone(t.initialConfig.yaxis),t}}]),f}(),Ti=function(){function f(e){Y(this,f),this.opts=e}return F(f,[{key:"init",value:function(){var e=new ye(this.opts).init({responsiveOverride:!1});return{config:e,globals:new Tt().init(e)}}}]),f}(),ee=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return F(f,[{key:"clippedImgArea",value:function(e){var t=this.w,i=t.config,a=parseInt(t.globals.gridWidth,10),s=parseInt(t.globals.gridHeight,10),r=a>s?a:s,n=e.image,o=0,h=0;e.width===void 0&&e.height===void 0?i.fill.image.width!==void 0&&i.fill.image.height!==void 0?(o=i.fill.image.width+1,h=i.fill.image.height):(o=r+1,h=r):(o=e.width,h=e.height);var c=document.createElementNS(t.globals.SVGNS,"pattern");M.setAttrs(c,{id:e.patternID,patternUnits:e.patternUnits?e.patternUnits:"userSpaceOnUse",width:o+"px",height:h+"px"});var d=document.createElementNS(t.globals.SVGNS,"image");c.appendChild(d),d.setAttributeNS(window.SVG.xlink,"href",n),M.setAttrs(d,{x:0,y:0,preserveAspectRatio:"none",width:o+"px",height:h+"px"}),d.style.opacity=e.opacity,t.globals.dom.elDefs.node.appendChild(c)}},{key:"getSeriesIndex",value:function(e){var t=this.w,i=t.config.chart.type;return(i==="bar"||i==="rangeBar")&&t.config.plotOptions.bar.distributed||i==="heatmap"||i==="treemap"?this.seriesIndex=e.seriesNumber:this.seriesIndex=e.seriesNumber%t.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(e){var t=this.w;this.opts=e;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(e);var n=this.getFillColors()[this.seriesIndex];t.globals.seriesColors[this.seriesIndex]!==void 0&&(n=t.globals.seriesColors[this.seriesIndex]),typeof n=="function"&&(n=n({seriesIndex:this.seriesIndex,dataPointIndex:e.dataPointIndex,value:e.value,w:t}));var o=e.fillType?e.fillType:this.getFillType(this.seriesIndex),h=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;e.color&&(n=e.color),n||(n="#fff",console.warn("undefined color - ApexCharts"));var c=n;if(n.indexOf("rgb")===-1?n.length<9&&(c=P.hexToRgba(n,h)):n.indexOf("rgba")>-1&&(h=P.getOpacityFromRGBA(n)),e.opacity&&(h=e.opacity),o==="pattern"&&(a=this.handlePatternFill({fillConfig:e.fillConfig,patternFill:a,fillColor:n,fillOpacity:h,defaultColor:c})),o==="gradient"&&(s=this.handleGradientFill({fillConfig:e.fillConfig,fillColor:n,fillOpacity:h,i:this.seriesIndex})),o==="image"){var d=r.fill.image.src,g=e.patternID?e.patternID:"";this.clippedImgArea({opacity:h,image:Array.isArray(d)?e.seriesNumber-1&&(p=P.getOpacityFromRGBA(g));var x=r.gradient.opacityTo===void 0?i:Array.isArray(r.gradient.opacityTo)?r.gradient.opacityTo[s]:r.gradient.opacityTo;if(r.gradient.gradientToColors===void 0||r.gradient.gradientToColors.length===0)n=r.gradient.shade==="dark"?c.shadeColor(-1*parseFloat(r.gradient.shadeIntensity),t.indexOf("rgb")>-1?P.rgb2hex(t):t):c.shadeColor(parseFloat(r.gradient.shadeIntensity),t.indexOf("rgb")>-1?P.rgb2hex(t):t);else if(r.gradient.gradientToColors[o.seriesNumber]){var m=r.gradient.gradientToColors[o.seriesNumber];n=m,m.indexOf("rgba")>-1&&(x=P.getOpacityFromRGBA(m))}else n=t;if(r.gradient.gradientFrom&&(g=r.gradient.gradientFrom),r.gradient.gradientTo&&(n=r.gradient.gradientTo),r.gradient.inverseColors){var v=g;g=n,n=v}return g.indexOf("rgb")>-1&&(g=P.rgb2hex(g)),n.indexOf("rgb")>-1&&(n=P.rgb2hex(n)),h.drawGradient(d,g,n,p,x,o.size,r.gradient.stops,r.gradient.colorStops,s)}}]),f}(),Ce=function(){function f(e,t){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"setGlobalMarkerSize",value:function(){var e=this.w;if(e.globals.markers.size=Array.isArray(e.config.markers.size)?e.config.markers.size:[e.config.markers.size],e.globals.markers.size.length>0){if(e.globals.markers.size.length4&&arguments[4]!==void 0&&arguments[4],n=this.w,o=t,h=e,c=null,d=new M(this.ctx),g=n.config.markers.discrete&&n.config.markers.discrete.length;if((n.globals.markers.size[t]>0||r||g)&&(c=d.group({class:r||g?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(n.globals.cuid,")")),Array.isArray(h.x))for(var p=0;p0:n.config.markers.size>0)||r||g){P.isNumber(h.y[p])?m+=" w".concat(P.randomId()):m="apexcharts-nullpoint";var v=this.getMarkerConfig({cssClass:m,seriesIndex:t,dataPointIndex:x});n.config.series[o].data[x]&&(n.config.series[o].data[x].fillColor&&(v.pointFillColor=n.config.series[o].data[x].fillColor),n.config.series[o].data[x].strokeColor&&(v.pointStrokeColor=n.config.series[o].data[x].strokeColor)),a&&(v.pSize=a),(h.x[p]<0||h.x[p]>n.globals.gridWidth||h.y[p]<-n.globals.markers.largestSize||h.y[p]>n.globals.gridHeight+n.globals.markers.largestSize)&&(v.pSize=0),(s=d.drawMarker(h.x[p],h.y[p],v)).attr("rel",x),s.attr("j",x),s.attr("index",t),s.node.setAttribute("default-marker-size",v.pSize),new q(this.ctx).setSelectionFilter(s,t,x),this.addEvents(s),c&&c.add(s)}else n.globals.pointsArray[t]===void 0&&(n.globals.pointsArray[t]=[]),n.globals.pointsArray[t].push([h.x[p],h.y[p]])}return c}},{key:"getMarkerConfig",value:function(e){var t=e.cssClass,i=e.seriesIndex,a=e.dataPointIndex,s=a===void 0?null:a,r=e.finishRadius,n=r===void 0?null:r,o=this.w,h=this.getMarkerStyle(i),c=o.globals.markers.size[i],d=o.config.markers;return s!==null&&d.discrete.length&&d.discrete.map(function(g){g.seriesIndex===i&&g.dataPointIndex===s&&(h.pointStrokeColor=g.strokeColor,h.pointFillColor=g.fillColor,c=g.size,h.pointShape=g.shape)}),{pSize:n===null?c:n,pRadius:d.radius,width:Array.isArray(d.width)?d.width[i]:d.width,height:Array.isArray(d.height)?d.height[i]:d.height,pointStrokeWidth:Array.isArray(d.strokeWidth)?d.strokeWidth[i]:d.strokeWidth,pointStrokeColor:h.pointStrokeColor,pointFillColor:h.pointFillColor,shape:h.pointShape||(Array.isArray(d.shape)?d.shape[i]:d.shape),class:t,pointStrokeOpacity:Array.isArray(d.strokeOpacity)?d.strokeOpacity[i]:d.strokeOpacity,pointStrokeDashArray:Array.isArray(d.strokeDashArray)?d.strokeDashArray[i]:d.strokeDashArray,pointFillOpacity:Array.isArray(d.fillOpacity)?d.fillOpacity[i]:d.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(e){var t=this.w,i=new M(this.ctx);e.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,e)),e.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,e)),e.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,e)),e.node.addEventListener("click",t.config.markers.onClick),e.node.addEventListener("dblclick",t.config.markers.onDblClick),e.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,e),{passive:!0})}},{key:"getMarkerStyle",value:function(e){var t=this.w,i=t.globals.markers.colors,a=t.config.markers.strokeColor||t.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[e]:a,pointFillColor:Array.isArray(i)?i[e]:i}}}]),f}(),It=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return F(f,[{key:"draw",value:function(e,t,i){var a=this.w,s=new M(this.ctx),r=i.realIndex,n=i.pointsPos,o=i.zRatio,h=i.elParent,c=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(c.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(n.x))for(var d=0;dv.maxBubbleRadius&&(m=v.maxBubbleRadius)}a.config.chart.animations.enabled||(x=m);var w=n.x[d],A=n.y[d];if(x=x||0,A!==null&&a.globals.series[r][g]!==void 0||(p=!1),p){var l=this.drawPoint(w,A,x,m,r,g,t);c.add(l)}h.add(c)}}},{key:"drawPoint",value:function(e,t,i,a,s,r,n){var o=this.w,h=s,c=new fe(this.ctx),d=new q(this.ctx),g=new ee(this.ctx),p=new Ce(this.ctx),x=new M(this.ctx),m=p.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:h,dataPointIndex:r,finishRadius:o.config.chart.type==="bubble"||o.globals.comboCharts&&o.config.series[s]&&o.config.series[s].type==="bubble"?a:null});a=m.pSize;var v,w=g.fillPath({seriesNumber:s,dataPointIndex:r,color:m.pointFillColor,patternUnits:"objectBoundingBox",value:o.globals.series[s][n]});if(m.shape==="circle"?v=x.drawCircle(i):m.shape!=="square"&&m.shape!=="rect"||(v=x.drawRect(0,0,m.width-m.pointStrokeWidth/2,m.height-m.pointStrokeWidth/2,m.pRadius)),o.config.series[h].data[r]&&o.config.series[h].data[r].fillColor&&(w=o.config.series[h].data[r].fillColor),v.attr({x:e-m.width/2-m.pointStrokeWidth/2,y:t-m.height/2-m.pointStrokeWidth/2,cx:e,cy:t,fill:w,"fill-opacity":m.pointFillOpacity,stroke:m.pointStrokeColor,r:a,"stroke-width":m.pointStrokeWidth,"stroke-dasharray":m.pointStrokeDashArray,"stroke-opacity":m.pointStrokeOpacity}),o.config.chart.dropShadow.enabled){var A=o.config.chart.dropShadow;d.dropShadow(v,A,s)}if(!this.initialAnim||o.globals.dataChanged||o.globals.resized)o.globals.animationEnded=!0;else{var l=o.config.chart.animations.speed;c.animateMarker(v,0,m.shape==="circle"?a:{width:m.width,height:m.height},l,o.globals.easing,function(){window.setTimeout(function(){c.animationCompleted(v)},100)})}if(o.globals.dataChanged&&m.shape==="circle")if(this.dynamicAnim){var u,b,y,k,S=o.config.chart.animations.dynamicAnimation.speed;(k=o.globals.previousPaths[s]&&o.globals.previousPaths[s][n])!=null&&(u=k.x,b=k.y,y=k.r!==void 0?k.r:a);for(var C=0;Co.globals.gridHeight+g&&(t=o.globals.gridHeight+g/2),o.globals.dataLabelsRects[a]===void 0&&(o.globals.dataLabelsRects[a]=[]),o.globals.dataLabelsRects[a].push({x:e,y:t,width:d,height:g});var p=o.globals.dataLabelsRects[a].length-2,x=o.globals.lastDrawnDataLabelsIndexes[a]!==void 0?o.globals.lastDrawnDataLabelsIndexes[a][o.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(o.globals.dataLabelsRects[a][p]!==void 0){var m=o.globals.dataLabelsRects[a][x];(e>m.x+m.width||t>m.y+m.height||t+gt.globals.gridWidth+v.textRects.width+30)&&(o="");var w=t.globals.dataLabels.style.colors[r];((t.config.chart.type==="bar"||t.config.chart.type==="rangeBar")&&t.config.plotOptions.bar.distributed||t.config.dataLabels.distributed)&&(w=t.globals.dataLabels.style.colors[n]),typeof w=="function"&&(w=w({series:t.globals.series,seriesIndex:r,dataPointIndex:n,w:t})),p&&(w=p);var A=g.offsetX,l=g.offsetY;if(t.config.chart.type!=="bar"&&t.config.chart.type!=="rangeBar"||(A=0,l=0),v.drawnextLabel){var u=i.drawText({width:100,height:parseInt(g.style.fontSize,10),x:a+A,y:s+l,foreColor:w,textAnchor:h||g.textAnchor,text:o,fontSize:c||g.style.fontSize,fontFamily:g.style.fontFamily,fontWeight:g.style.fontWeight||"normal"});if(u.attr({class:"apexcharts-datalabel",cx:a,cy:s}),g.dropShadow.enabled){var b=g.dropShadow;new q(this.ctx).dropShadow(u,b)}d.add(u),t.globals.lastDrawnDataLabelsIndexes[r]===void 0&&(t.globals.lastDrawnDataLabelsIndexes[r]=[]),t.globals.lastDrawnDataLabelsIndexes[r].push(n)}}}},{key:"addBackgroundToDataLabel",value:function(e,t){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,n=t.width,o=t.height,h=new M(this.ctx).drawRect(t.x-s,t.y-r/2,n+2*s,o+r,a.borderRadius,i.config.chart.background==="transparent"?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);return a.dropShadow.enabled&&new q(this.ctx).dropShadow(h,a.dropShadow),h}},{key:"dataLabelsBackground",value:function(){var e=this.w;if(e.config.chart.type!=="bubble")for(var t=e.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;i0&&arguments[0]!==void 0)||arguments[0],t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],a=this.w,s=P.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,e&&(t&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(e){for(var t=this.w,i=0;i-1&&(e[i].data=[]);return e}},{key:"toggleSeriesOnHover",value:function(e,t){var i=this.w;t||(t=e.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if(e.type==="mousemove"){var s=parseInt(t.getAttribute("rel"),10)-1,r=null,n=null;i.globals.axisCharts||i.config.chart.type==="radialBar"?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),n=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var o=0;o=o.from&&c<=o.to&&s[h].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[n])}else e.type==="mouseout"&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"asc",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1){for(var s=i.config.series.map(function(n,o){return n.data&&n.data.length>0&&i.globals.collapsedSeriesIndices.indexOf(o)===-1&&(!i.globals.comboCharts||t.length===0||t.length&&t.indexOf(i.config.series[o].type)>-1)?o:-1}),r=e==="asc"?0:s.length-1;e==="asc"?r=0;e==="asc"?r++:r--)if(s[r]!==-1){a=s[r];break}}return a}},{key:"getBarSeriesIndices",value:function(){return this.w.globals.comboCharts?this.w.config.series.map(function(e,t){return e.type==="bar"||e.type==="column"?t:-1}).filter(function(e){return e!==-1}):this.w.config.series.map(function(e,t){return t})}},{key:"getPreviousPaths",value:function(){var e=this.w;function t(r,n,o){for(var h=r[n].childNodes,c={type:o,paths:[],realIndex:r[n].getAttribute("data:realIndex")},d=0;d0)for(var a=function(r){for(var n=e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(e.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(r,"'] rect")),o=[],h=function(d){var g=function(x){return n[d].getAttribute(x)},p={x:parseFloat(g("x")),y:parseFloat(g("y")),width:parseFloat(g("width")),height:parseFloat(g("height"))};o.push({rect:p,color:n[d].getAttribute("color")})},c=0;c0)for(var a=0;a0?t:[]});return e}}]),f}(),zt=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new V(this.ctx)}return F(f,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var e=this.w.config.series.slice(),t=new Q(this.ctx);if(this.activeSeriesIndex=t.getActiveConfigSeriesIndex(),e[this.activeSeriesIndex].data!==void 0&&e[this.activeSeriesIndex].data.length>0&&e[this.activeSeriesIndex].data[0]!==null&&e[this.activeSeriesIndex].data[0].x!==void 0&&e[this.activeSeriesIndex].data[0]!==null)return!0}},{key:"isFormat2DArray",value:function(){var e=this.w.config.series.slice(),t=new Q(this.ctx);if(this.activeSeriesIndex=t.getActiveConfigSeriesIndex(),e[this.activeSeriesIndex].data!==void 0&&e[this.activeSeriesIndex].data.length>0&&e[this.activeSeriesIndex].data[0]!==void 0&&e[this.activeSeriesIndex].data[0]!==null&&e[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(e,t){for(var i=this.w.config,a=this.w.globals,s=i.chart.type==="boxPlot"||i.series[t].type==="boxPlot",r=0;r=5?this.twoDSeries.push(P.parseNumber(e[t].data[r][4])):this.twoDSeries.push(P.parseNumber(e[t].data[r][1])),a.dataFormatXNumeric=!0),i.xaxis.type==="datetime"){var n=new Date(e[t].data[r][0]);n=new Date(n).getTime(),this.twoDSeriesX.push(n)}else this.twoDSeriesX.push(e[t].data[r][0]);for(var o=0;o-1&&(r=this.activeSeriesIndex);for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:this.ctx,s=this.w.config,r=this.w.globals,n=new j(a),o=s.labels.length>0?s.labels.slice():s.xaxis.categories.slice();if(r.isRangeBar=s.chart.type==="rangeBar"&&r.isBarHorizontal,r.hasXaxisGroups=s.xaxis.type==="category"&&s.xaxis.group.groups.length>0,r.hasXaxisGroups&&(r.groups=s.xaxis.group.groups),r.hasSeriesGroups=(t=e[0])===null||t===void 0?void 0:t.group,r.hasSeriesGroups){var h=[],c=J(new Set(e.map(function(x){return x.group})));e.forEach(function(x,m){var v=c.indexOf(x.group);h[v]||(h[v]=[]),h[v].push(x.name)}),r.seriesGroups=h}for(var d=function(){for(var x=0;x0&&(this.twoDSeriesX=o,r.seriesX.push(this.twoDSeriesX))),r.labels.push(this.twoDSeriesX);var p=e[g].data.map(function(x){return P.parseNumber(x)});r.series.push(p)}r.seriesZ.push(this.threeDSeries),e[g].name!==void 0?r.seriesNames.push(e[g].name):r.seriesNames.push("series-"+parseInt(g+1,10)),e[g].color!==void 0?r.seriesColors.push(e[g].color):r.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(e){var t=this.w.globals,i=this.w.config;t.series=e.slice(),t.seriesNames=i.labels.slice();for(var a=0;a0?i.labels=t.xaxis.categories:t.labels.length>0?i.labels=t.labels.slice():this.fallbackToCategory?(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map(function(a){a.forEach(function(s){i.labels.indexOf(s.x)<0&&s.x&&i.labels.push(s.x)})}),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),t.xaxis.convertedCatToNumeric&&(new ve(t).convertCatToNumericXaxis(t,this.ctx,i.seriesX[0]),this._generateExternalLabels(e))):this._generateExternalLabels(e)}},{key:"_generateExternalLabels",value:function(e){var t=this.w.globals,i=this.w.config,a=[];if(t.axisCharts){if(t.series.length>0)if(this.isFormatXY())for(var s=i.series.map(function(d,g){return d.data.filter(function(p,x,m){return m.findIndex(function(v){return v.x===p.x})===x})}),r=s.reduce(function(d,g,p,x){return x[d].length>g.length?d:p},0),n=0;n4&&arguments[4]!==void 0?arguments[4]:[],r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"12px",n=!(arguments.length>6&&arguments[6]!==void 0)||arguments[6],o=this.w,h=e[a]===void 0?"":e[a],c=h,d=o.globals.xLabelFormatter,g=o.config.xaxis.labels.formatter,p=!1,x=new Se(this.ctx),m=h;n&&(c=x.xLabelFormat(d,h,m,{i:a,dateFormatter:new j(this.ctx).formatDate,w:o}),g!==void 0&&(c=g(h,e[a],{i:a,dateFormatter:new j(this.ctx).formatDate,w:o})));var v,w;t.length>0?(v=t[a].unit,w=null,t.forEach(function(b){b.unit==="month"?w="year":b.unit==="day"?w="month":b.unit==="hour"?w="day":b.unit==="minute"&&(w="hour")}),p=w===v,i=t[a].position,c=t[a].value):o.config.xaxis.type==="datetime"&&g===void 0&&(c=""),c===void 0&&(c=""),c=Array.isArray(c)?c:c.toString();var A=new M(this.ctx),l={};l=o.globals.rotateXLabels&&n?A.getTextRects(c,parseInt(r,10),null,"rotate(".concat(o.config.xaxis.labels.rotate," 0 0)"),!1):A.getTextRects(c,parseInt(r,10));var u=!o.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(c)&&(c.indexOf("NaN")===0||c.toLowerCase().indexOf("invalid")===0||c.toLowerCase().indexOf("infinity")>=0||s.indexOf(c)>=0&&u)&&(c=""),{x:i,text:c,textRect:l,isBold:p}}},{key:"checkLabelBasedOnTickamount",value:function(e,t,i){var a=this.w,s=a.config.xaxis.tickAmount;return s==="dataPoints"&&(s=Math.round(a.globals.gridWidth/120)),s>i||e%Math.round(i/(s+1))==0||(t.text=""),t}},{key:"checkForOverflowingLabels",value:function(e,t,i,a,s){var r=this.w;if(e===0&&r.globals.skipFirstTimelinelabel&&(t.text=""),e===i-1&&r.globals.skipLastTimelinelabel&&(t.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var n=s[s.length-1];t.x0){o.config.yaxis[s].opposite===!0&&(e+=a.width);for(var d=t;d>=0;d--){var g=c+t/10+o.config.yaxis[s].labels.offsetY-1;o.globals.isBarHorizontal&&(g=r*d),o.config.chart.type==="heatmap"&&(g+=r/2);var p=h.drawLine(e+i.offsetX-a.width+a.offsetX,g+a.offsetY,e+i.offsetX+a.offsetX,g+a.offsetY,a.color);n.add(p),c+=r}}}}]),f}(),Xe=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"scaleSvgNode",value:function(e,t){var i=parseFloat(e.getAttributeNS(null,"width")),a=parseFloat(e.getAttributeNS(null,"height"));e.setAttributeNS(null,"width",i*t),e.setAttributeNS(null,"height",a*t),e.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(e){if(!P.isIE11())return e.replace(/ /g," ");var t=0,i=e.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,function(a){return++t===2?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':a});return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(e){e==null&&(e=1);var t=this.w.globals.dom.Paper.svg();if(e!==1){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,e),t=new XMLSerializer().serializeToString(i)}return this.fixSvgStringForIe11(t)}},{key:"cleanup",value:function(){var e=this.w,t=e.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=e.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=e.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,function(s){s.setAttribute("width",0)}),t&&t[0]&&(t[0].setAttribute("x",-500),t[0].setAttribute("x1",-500),t[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var e=this.getSvgString(),t=new Blob([e],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(t)}},{key:"dataURI",value:function(e){var t=this;return new Promise(function(i){var a=t.w,s=e?e.scale||e.width/a.globals.svgWidth:1;t.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var n=a.config.chart.background==="transparent"?"#fff":a.config.chart.background,o=r.getContext("2d");o.fillStyle=n,o.fillRect(0,0,r.width*s,r.height*s);var h=t.getSvgString(s);if(window.canvg&&P.isIE11()){var c=window.canvg.Canvg.fromString(o,h,{ignoreClear:!0,ignoreDimensions:!0});c.start();var d=r.msToBlob();c.stop(),i({blob:d})}else{var g="data:image/svg+xml,"+encodeURIComponent(h),p=new Image;p.crossOrigin="anonymous",p.onload=function(){if(o.drawImage(p,0,0),r.msToBlob){var x=r.msToBlob();i({blob:x})}else{var m=r.toDataURL("image/png");i({imgURI:m})}},p.src=g}})}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var e=this;this.dataURI().then(function(t){var i=t.imgURI,a=t.blob;a?navigator.msSaveOrOpenBlob(a,e.w.globals.chartID+".png"):e.triggerDownload(i,e.w.config.chart.toolbar.export.png.filename,".png")})}},{key:"exportToCSV",value:function(e){var t=this,i=e.series,a=e.fileName,s=e.columnDelimiter,r=s===void 0?",":s,n=e.lineDelimiter,o=n===void 0?` +`:n,h=this.w;i||(i=h.config.series);var c,d,g=[],p=[],x="",m=h.globals.series.map(function(y,k){return h.globals.collapsedSeriesIndices.indexOf(k)===-1?y:[]}),v=function(y){return h.config.xaxis.type==="datetime"&&String(y).length>=10},w=Math.max.apply(Math,J(i.map(function(y){return y.data?y.data.length:0}))),A=new zt(this.ctx),l=new ne(this.ctx),u=function(y){var k="";if(h.globals.axisCharts){if(h.config.xaxis.type==="category"||h.config.xaxis.convertedCatToNumeric)if(h.globals.isBarHorizontal){var S=h.globals.yLabelFormatters[0],C=new Q(t.ctx).getActiveConfigSeriesIndex();k=S(h.globals.labels[y],{seriesIndex:C,dataPointIndex:y,w:h})}else k=l.getLabel(h.globals.labels,h.globals.timescaleLabels,0,y).text;h.config.xaxis.type==="datetime"&&(h.config.xaxis.categories.length?k=h.config.xaxis.categories[y]:h.config.labels.length&&(k=h.config.labels[y]))}else k=h.config.labels[y];return Array.isArray(k)&&(k=k.join(" ")),P.isNumber(k)?k:k.split(r).join("")},b=function(y,k){if(g.length&&k===0&&p.push(g.join(r)),y.data){y.data=y.data.length&&y.data||J(Array(w)).map(function(){return""});for(var S=0;S0&&!i.globals.isBarHorizontal&&(this.xaxisLabels=i.globals.timescaleLabels.slice()),i.config.xaxis.overwriteCategories&&(this.xaxisLabels=i.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],i.config.xaxis.position==="top"?this.offY=0:this.offY=i.globals.gridHeight+1,this.offY=this.offY+i.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=i.config.chart.type==="bar"&&i.config.plotOptions.bar.horizontal,this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.xaxisBorderWidth=i.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=i.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=i.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=i.config.xaxis.axisBorder.height,this.yaxis=i.config.yaxis[0]}return F(f,[{key:"drawXaxis",value:function(){var e=this.w,t=new M(this.ctx),i=t.group({class:"apexcharts-xaxis",transform:"translate(".concat(e.config.xaxis.offsetX,", ").concat(e.config.xaxis.offsetY,")")}),a=t.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&arguments[6]!==void 0?arguments[6]:{},c=[],d=[],g=this.w,p=h.xaxisFontSize||this.xaxisFontSize,x=h.xaxisFontFamily||this.xaxisFontFamily,m=h.xaxisForeColors||this.xaxisForeColors,v=h.fontWeight||g.config.xaxis.labels.style.fontWeight,w=h.cssClass||g.config.xaxis.labels.style.cssClass,A=g.globals.padHorizontal,l=a.length,u=g.config.xaxis.type==="category"?g.globals.dataPoints:l;if(u===0&&l>u&&(u=l),s){var b=u>1?u-1:u;n=g.globals.gridWidth/Math.min(b,l-1),A=A+r(0,n)/2+g.config.xaxis.labels.offsetX}else n=g.globals.gridWidth/u,A=A+r(0,n)+g.config.xaxis.labels.offsetX;for(var y=function(S){var C=A-r(S,n)/2+g.config.xaxis.labels.offsetX;S===0&&l===1&&n/2===A&&u===1&&(C=g.globals.gridWidth/2);var L=o.axesUtils.getLabel(a,g.globals.timescaleLabels,C,S,c,p,e),T=28;if(g.globals.rotateXLabels&&e&&(T=22),g.config.xaxis.title.text&&g.config.xaxis.position==="top"&&(T+=parseFloat(g.config.xaxis.title.style.fontSize)+2),e||(T=T+parseFloat(p)+(g.globals.xAxisLabelsHeight-g.globals.xAxisGroupLabelsHeight)+(g.globals.rotateXLabels?10:0)),L=g.config.xaxis.tickAmount!==void 0&&g.config.xaxis.tickAmount!=="dataPoints"&&g.config.xaxis.type!=="datetime"?o.axesUtils.checkLabelBasedOnTickamount(S,L,l):o.axesUtils.checkForOverflowingLabels(S,L,l,c,d),g.config.xaxis.labels.show){var z=t.drawText({x:L.x,y:o.offY+g.config.xaxis.labels.offsetY+T-(g.config.xaxis.position==="top"?g.globals.xAxisHeight+g.config.xaxis.axisTicks.height-2:0),text:L.text,textAnchor:"middle",fontWeight:L.isBold?600:v,fontSize:p,fontFamily:x,foreColor:Array.isArray(m)?e&&g.config.xaxis.convertedCatToNumeric?m[g.globals.minX+S-1]:m[S]:m,isPlainText:!1,cssClass:(e?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+w});if(i.add(z),z.on("click",function(X){if(typeof g.config.chart.events.xAxisLabelClick=="function"){var R=Object.assign({},g,{labelIndex:S});g.config.chart.events.xAxisLabelClick(X,o.ctx,R)}}),e){var I=document.createElementNS(g.globals.SVGNS,"title");I.textContent=Array.isArray(L.text)?L.text.join(" "):L.text,z.node.appendChild(I),L.text!==""&&(c.push(L.text),d.push(L))}}Sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(t=t+r+a.config.xaxis.axisTicks.height,a.config.xaxis.position==="top"&&(t=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var n=new M(this.ctx).drawLine(e+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,t+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(n),n.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var e=this.w,t=[],i=this.xaxisLabels.length,a=e.globals.padHorizontal;if(e.globals.timescaleLabels.length>0)for(var s=0;s0){var c=s[s.length-1].getBBox(),d=s[0].getBBox();c.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),d.x+d.width>e.globals.gridWidth&&!e.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var g=0;g0&&(this.xaxisLabels=t.globals.timescaleLabels.slice())}return F(f,[{key:"drawGridArea",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=this.w,i=new M(this.ctx);e===null&&(e=i.group({class:"apexcharts-grid"}));var a=i.drawLine(t.globals.padHorizontal,1,t.globals.padHorizontal,t.globals.gridHeight,"transparent"),s=i.drawLine(t.globals.padHorizontal,t.globals.gridHeight,t.globals.gridWidth,t.globals.gridHeight,"transparent");return e.add(s),e.add(a),e}},{key:"drawGrid",value:function(){var e=null;return this.w.globals.axisCharts&&(e=this.renderGrid(),this.drawGridArea(e.el)),e}},{key:"createGridMask",value:function(){var e=this.w,t=e.globals,i=new M(this.ctx),a=Array.isArray(e.config.stroke.width)?0:e.config.stroke.width;if(Array.isArray(e.config.stroke.width)){var s=0;e.config.stroke.width.forEach(function(d){s=Math.max(s,d)}),a=s}t.dom.elGridRectMask=document.createElementNS(t.SVGNS,"clipPath"),t.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(t.cuid)),t.dom.elGridRectMarkerMask=document.createElementNS(t.SVGNS,"clipPath"),t.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(t.cuid)),t.dom.elForecastMask=document.createElementNS(t.SVGNS,"clipPath"),t.dom.elForecastMask.setAttribute("id","forecastMask".concat(t.cuid)),t.dom.elNonForecastMask=document.createElementNS(t.SVGNS,"clipPath"),t.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(t.cuid));var r=e.config.chart.type,n=0,o=0;(r==="bar"||r==="rangeBar"||r==="candlestick"||r==="boxPlot"||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&(n=e.config.grid.padding.left,o=e.config.grid.padding.right,t.barPadForNumericAxis>n&&(n=t.barPadForNumericAxis,o=t.barPadForNumericAxis)),t.dom.elGridRect=i.drawRect(-a-n-2,2*-a-2,t.gridWidth+a+o+n+4,t.gridHeight+4*a+4,0,"#fff");var h=e.globals.markers.largestSize+1;t.dom.elGridRectMarker=i.drawRect(2*-h,2*-h,t.gridWidth+4*h,t.gridHeight+4*h,0,"#fff"),t.dom.elGridRectMask.appendChild(t.dom.elGridRect.node),t.dom.elGridRectMarkerMask.appendChild(t.dom.elGridRectMarker.node);var c=t.dom.baseEl.querySelector("defs");c.appendChild(t.dom.elGridRectMask),c.appendChild(t.dom.elForecastMask),c.appendChild(t.dom.elNonForecastMask),c.appendChild(t.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(e){var t=e.i,i=e.x1,a=e.y1,s=e.x2,r=e.y2,n=e.xCount,o=e.parent,h=this.w;if(!(t===0&&h.globals.skipFirstTimelinelabel||t===n-1&&h.globals.skipLastTimelinelabel&&!h.config.xaxis.labels.formatter||h.config.chart.type==="radar")){h.config.grid.xaxis.lines.show&&this._drawGridLine({i:t,x1:i,y1:a,x2:s,y2:r,xCount:n,parent:o});var c=0;if(h.globals.hasXaxisGroups&&h.config.xaxis.tickPlacement==="between"){var d=h.globals.groups;if(d){for(var g=0,p=0;g2));s++);if(!e.globals.isBarHorizontal||this.isRangeBar){var r,n,o;i=this.xaxisLabels.length,this.isRangeBar&&(i--,a=e.globals.labels.length,e.config.xaxis.tickAmount&&e.config.xaxis.labels.formatter&&(i=e.config.xaxis.tickAmount),((r=e.globals.yAxisScale)===null||r===void 0||(n=r[0])===null||n===void 0||(o=n.result)===null||o===void 0?void 0:o.length)>0&&e.config.xaxis.type!=="datetime"&&(i=e.globals.yAxisScale[0].result.length-1)),this._drawXYLines({xCount:i,tickAmount:a})}else i=a,a=e.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a});return this.drawGridBands(i,a),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:e.globals.gridWidth/i}}},{key:"drawGridBands",value:function(e,t){var i=this.w;if(i.config.grid.row.colors!==void 0&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/t,r=i.globals.gridWidth,n=0,o=0;n=i.config.grid.row.colors.length&&(o=0),this._drawGridBandRect({c:o,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/t;if(i.config.grid.column.colors!==void 0&&i.config.grid.column.colors.length>0)for(var h=i.globals.isBarHorizontal||i.config.xaxis.tickPlacement!=="on"||i.config.xaxis.type!=="category"&&!i.config.xaxis.convertedCatToNumeric?e:e-1,c=i.globals.padHorizontal,d=i.globals.padHorizontal+i.globals.gridWidth/h,g=i.globals.gridHeight,p=0,x=0;p=i.config.grid.column.colors.length&&(x=0),this._drawGridBandRect({c:x,x1:c,y1:0,x2:d,y2:g,type:"column"}),c+=i.globals.gridWidth/h}}]),f}(),ge=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"niceScale",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,n=Math.abs(t-e);if((i=this._adjustTicksForSmallRange(i,a,n))==="dataPoints"&&(i=r.globals.dataPoints-1),e===Number.MIN_VALUE&&t===0||!P.isNumber(e)&&!P.isNumber(t)||e===Number.MIN_VALUE&&t===-Number.MAX_VALUE)return e=0,t=i,this.linearScale(e,t,i,a,r.config.yaxis[a].stepSize);e>t?(console.warn("axis.min cannot be greater than axis.max"),t=e+.1):e===t&&(e=e===0?0:e-.5,t=t===0?2:t+.5);var o=[];n<1&&s&&(r.config.chart.type==="candlestick"||r.config.series[a].type==="candlestick"||r.config.chart.type==="boxPlot"||r.config.series[a].type==="boxPlot"||r.globals.isRangeData)&&(t*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=n/h,d=Math.floor(P.log10(c)),g=Math.pow(10,d),p=Math.round(c/g);p<1&&(p=1);var x=p*g;r.config.yaxis[a].stepSize&&(x=r.config.yaxis[a].stepSize),r.globals.isBarHorizontal&&r.config.xaxis.stepSize&&r.config.xaxis.type!=="datetime"&&(x=r.config.xaxis.stepSize);var m=x*Math.floor(e/x),v=x*Math.ceil(t/x),w=m;if(s&&n>2){for(;o.push(P.stripNumber(w,7)),!((w+=x)>v););return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}var A=e;(o=[]).push(P.stripNumber(A,7));for(var l=Math.abs(t-e)/i,u=0;u<=i;u++)A+=l,o.push(A);return o[o.length-2]>=t&&o.pop(),{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"linearScale",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0,r=Math.abs(t-e);(i=this._adjustTicksForSmallRange(i,a,r))==="dataPoints"&&(i=this.w.globals.dataPoints-1),s||(s=r/i),i===Number.MAX_VALUE&&(i=5,s=1);for(var n=[],o=e;i>=0;)n.push(o),o+=s,i-=1;return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:"logarithmicScaleNice",value:function(e,t,i){t<=0&&(t=Math.max(e,i)),e<=0&&(e=Math.min(t,i));for(var a=[],s=Math.ceil(Math.log(t)/Math.log(i)+1),r=Math.floor(Math.log(e)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[e]=this.logarithmicScale(t,i,r.logBase),a.yAxisScale[e]=r.forceNiceScale?this.logarithmicScaleNice(t,i,r.logBase):this.logarithmicScale(t,i,r.logBase);else if(i!==-Number.MAX_VALUE&&P.isNumber(i))if(a.allSeriesCollapsed=!1,r.min===void 0&&r.max===void 0||r.forceNiceScale){var o=s.yaxis[e].max===void 0&&s.yaxis[e].min===void 0||s.yaxis[e].forceNiceScale;a.yAxisScale[e]=this.niceScale(t,i,r.tickAmount?r.tickAmount:n<5&&n>1?n+1:5,e,o)}else a.yAxisScale[e]=this.linearScale(t,i,r.tickAmount,e,s.yaxis[e].stepSize);else a.yAxisScale[e]=this.linearScale(0,5,5,e,s.yaxis[e].stepSize)}},{key:"setXScale",value:function(e,t){var i=this.w,a=i.globals,s=Math.abs(t-e);return t!==-Number.MAX_VALUE&&P.isNumber(t)?a.xAxisScale=this.linearScale(e,t,i.config.xaxis.tickAmount?i.config.xaxis.tickAmount:s<5&&s>1?s+1:5,0,i.config.xaxis.stepSize):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var e=this,t=this.w.globals,i=this.w.config,a=t.minYArr.concat([]),s=t.maxYArr.concat([]),r=[];i.yaxis.forEach(function(n,o){var h=o;i.series.forEach(function(g,p){g.name===n.seriesName&&(h=p,o!==p?r.push({index:p,similarIndex:o,alreadyExists:!0}):r.push({index:p}))});var c=a[h],d=s[h];e.setYScaleForIndex(o,c,d)}),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(e,t,i){var a=this,s=this.w.config,r=this.w.globals,n=[];i.forEach(function(m){m.alreadyExists&&(n[m.index]===void 0&&(n[m.index]=[]),n[m.index].push(m.index),n[m.index].push(m.similarIndex))}),r.yAxisSameScaleIndices=n,n.forEach(function(m,v){n.forEach(function(w,A){var l,u;v!==A&&(l=m,u=w,l.filter(function(b){return u.indexOf(b)!==-1})).length>0&&(n[v]=n[v].concat(n[A]))})});var o=n.map(function(m){return m.filter(function(v,w){return m.indexOf(v)===w})}).map(function(m){return m.sort()});n=n.filter(function(m){return!!m});var h=o.slice(),c=h.map(function(m){return JSON.stringify(m)});h=h.filter(function(m,v){return c.indexOf(JSON.stringify(m))===v});var d=[],g=[];e.forEach(function(m,v){h.forEach(function(w,A){w.indexOf(v)>-1&&(d[A]===void 0&&(d[A]=[],g[A]=[]),d[A].push({key:v,value:m}),g[A].push({key:v,value:t[v]}))})});var p=Array.apply(null,Array(h.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),x=Array.apply(null,Array(h.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);d.forEach(function(m,v){m.forEach(function(w,A){p[v]=Math.min(w.value,p[v])})}),g.forEach(function(m,v){m.forEach(function(w,A){x[v]=Math.max(w.value,x[v])})}),e.forEach(function(m,v){g.forEach(function(w,A){var l=p[A],u=x[A];s.chart.stacked&&(u=0,w.forEach(function(b,y){b.value!==-Number.MAX_VALUE&&(u+=b.value),l!==Number.MIN_VALUE&&(l+=d[A][y].value)})),w.forEach(function(b,y){w[y].key===v&&(s.yaxis[v].min!==void 0&&(l=typeof s.yaxis[v].min=="function"?s.yaxis[v].min(r.minY):s.yaxis[v].min),s.yaxis[v].max!==void 0&&(u=typeof s.yaxis[v].max=="function"?s.yaxis[v].max(r.maxY):s.yaxis[v].max),a.setYScaleForIndex(v,l,u))})})})}},{key:"autoScaleY",value:function(e,t,i){e||(e=this);var a=e.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis not supported in a multi-yaxis chart."),t;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return t.forEach(function(n,o){for(var h=0,c=0;c=i.xaxis.min){h=c;break}var d,g,p=a.globals.minYArr[o],x=a.globals.maxYArr[o],m=a.globals.stackedSeriesTotals;a.globals.series.forEach(function(v,w){var A=v[h];r?(A=m[h],d=g=A,m.forEach(function(l,u){s[u]<=i.xaxis.max&&s[u]>=i.xaxis.min&&(l>g&&l!==null&&(g=l),v[u]=i.xaxis.min){var b=l,y=l;a.globals.series.forEach(function(k,S){l!==null&&(b=Math.min(k[u],b),y=Math.max(k[u],y))}),y>g&&y!==null&&(g=y),bp&&(d=p),t.length>1?(t[w].min=n.min===void 0?d:n.min,t[w].max=n.max===void 0?g:n.max):(t[0].min=n.min===void 0?d:n.min,t[0].max=n.max===void 0?g:n.max)})}),t}}]),f}(),et=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.scales=new ge(e)}return F(f,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,s=this.w.config,r=this.w.globals,n=-Number.MAX_VALUE,o=Number.MIN_VALUE;a===null&&(a=e+1);var h=r.series,c=h,d=h;s.chart.type==="candlestick"?(c=r.seriesCandleL,d=r.seriesCandleH):s.chart.type==="boxPlot"?(c=r.seriesCandleO,d=r.seriesCandleC):r.isRangeData&&(c=r.seriesRangeStart,d=r.seriesRangeEnd);for(var g=e;gc[g][p]&&c[g][p]<0&&(o=c[g][p])):r.hasNullValues=!0}}return s.chart.type==="rangeBar"&&r.seriesRangeStart.length&&r.isBarHorizontal&&(o=t),s.chart.type==="bar"&&(o<0&&n<0&&(n=0),o===Number.MIN_VALUE&&(o=0)),{minY:o,maxY:n,lowestY:t,highestY:i}}},{key:"setYRange",value:function(){var e=this.w.globals,t=this.w.config;e.maxY=-Number.MAX_VALUE,e.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(e.isMultipleYAxis)for(var a=0;a=0&&i<=10||t.yaxis[0].min!==void 0||t.yaxis[0].max!==void 0)&&(n=0),e.minY=i-5*n/100,i>0&&e.minY<0&&(e.minY=0),e.maxY=e.maxY+5*n/100}return t.yaxis.forEach(function(o,h){o.max!==void 0&&(typeof o.max=="number"?e.maxYArr[h]=o.max:typeof o.max=="function"&&(e.maxYArr[h]=o.max(e.isMultipleYAxis?e.maxYArr[h]:e.maxY)),e.maxY=e.maxYArr[h]),o.min!==void 0&&(typeof o.min=="number"?e.minYArr[h]=o.min:typeof o.min=="function"&&(e.minYArr[h]=o.min(e.isMultipleYAxis?e.minYArr[h]===Number.MIN_VALUE?0:e.minYArr[h]:e.minY)),e.minY=e.minYArr[h])}),e.isBarHorizontal&&["min","max"].forEach(function(o){t.xaxis[o]!==void 0&&typeof t.xaxis[o]=="number"&&(o==="min"?e.minY=t.xaxis[o]:e.maxY=t.xaxis[o])}),e.isMultipleYAxis?(this.scales.setMultipleYScales(),e.minY=i,e.yAxisScale.forEach(function(o,h){e.minYArr[h]=o.niceMin,e.maxYArr[h]=o.niceMax})):(this.scales.setYScaleForIndex(0,e.minY,e.maxY),e.minY=e.yAxisScale[0].niceMin,e.maxY=e.yAxisScale[0].niceMax,e.minYArr[0]=e.yAxisScale[0].niceMin,e.maxYArr[0]=e.yAxisScale[0].niceMax),{minY:e.minY,maxY:e.maxY,minYArr:e.minYArr,maxYArr:e.maxYArr,yAxisScale:e.yAxisScale}}},{key:"setXRange",value:function(){var e=this.w.globals,t=this.w.config,i=t.xaxis.type==="numeric"||t.xaxis.type==="datetime"||t.xaxis.type==="category"&&!e.noLabelsProvided||e.noLabelsProvided||e.isXNumeric;if(e.isXNumeric&&function(){for(var n=0;ne.dataPoints&&e.dataPoints!==0&&(a=e.dataPoints-1)):t.xaxis.tickAmount==="dataPoints"?(e.series.length>1&&(a=e.series[e.maxValsInArrayIndex].length-1),e.isXNumeric&&(a=e.maxX-e.minX-1)):a=t.xaxis.tickAmount,e.xTickAmount=a,t.xaxis.max!==void 0&&typeof t.xaxis.max=="number"&&(e.maxX=t.xaxis.max),t.xaxis.min!==void 0&&typeof t.xaxis.min=="number"&&(e.minX=t.xaxis.min),t.xaxis.range!==void 0&&(e.minX=e.maxX-t.xaxis.range),e.minX!==Number.MAX_VALUE&&e.maxX!==-Number.MAX_VALUE)if(t.xaxis.convertedCatToNumeric&&!e.dataFormatXNumeric){for(var s=[],r=e.minX-1;r0&&(e.xAxisScale=this.scales.linearScale(1,e.labels.length,a-1,0,t.xaxis.stepSize),e.seriesX=e.labels.slice());i&&(e.labels=e.xAxisScale.result.slice())}return e.isBarHorizontal&&e.labels.length&&(e.xTickAmount=e.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:e.minX,maxX:e.maxX}}},{key:"setZRange",value:function(){var e=this.w.globals;if(e.isDataXYZ){for(var t=0;t0){var n=s-a[r-1];n>0&&(e.minXDiff=Math.min(n,e.minXDiff))}}),e.dataPoints!==1&&e.minXDiff!==Number.MAX_VALUE||(e.minXDiff=.5)})}},{key:"_setStackedMinMax",value:function(){var e=this,t=this.w.globals;if(t.series.length){var i=t.seriesGroups;i.length||(i=[this.w.config.series.map(function(r){return r.name})]);var a={},s={};i.forEach(function(r){a[r]=[],s[r]=[],e.w.config.series.map(function(n,o){return r.indexOf(n.name)>-1?o:null}).filter(function(n){return n!==null}).forEach(function(n){for(var o=0;o0?a[r][o]+=parseFloat(t.series[n][o])+1e-4:s[r][o]+=parseFloat(t.series[n][o]))}})}),Object.entries(a).forEach(function(r){var n=Ct(r,1)[0];a[n].forEach(function(o,h){t.maxY=Math.max(t.maxY,a[n][h]),t.minY=Math.min(t.minY,s[n][h])})})}}}]),f}(),at=function(){function f(e,t){Y(this,f),this.ctx=e,this.elgrid=t,this.w=e.w;var i=this.w;this.xaxisFontSize=i.config.xaxis.labels.style.fontSize,this.axisFontFamily=i.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=i.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal=i.config.chart.type==="bar"&&i.config.plotOptions.bar.horizontal,this.xAxisoffX=0,i.config.xaxis.position==="bottom"&&(this.xAxisoffX=i.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new ne(e)}return F(f,[{key:"drawYaxis",value:function(e){var t=this,i=this.w,a=new M(this.ctx),s=i.config.yaxis[e].labels.style,r=s.fontSize,n=s.fontFamily,o=s.fontWeight,h=a.group({class:"apexcharts-yaxis",rel:e,transform:"translate("+i.globals.translateYAxisX[e]+", 0)"});if(this.axesUtils.isYAxisHidden(e))return h;var c=a.group({class:"apexcharts-yaxis-texts-g"});h.add(c);var d=i.globals.yAxisScale[e].result.length-1,g=i.globals.gridHeight/d,p=i.globals.translateY,x=i.globals.yLabelFormatters[e],m=i.globals.yAxisScale[e].result.slice();m=this.axesUtils.checkForReversedLabels(e,m);var v="";if(i.config.yaxis[e].labels.show)for(var w=function(C){var L=m[C];L=x(L,C,i);var T=i.config.yaxis[e].labels.padding;i.config.yaxis[e].opposite&&i.config.yaxis.length!==0&&(T*=-1);var z="end";i.config.yaxis[e].opposite&&(z="start"),i.config.yaxis[e].labels.align==="left"?z="start":i.config.yaxis[e].labels.align==="center"?z="middle":i.config.yaxis[e].labels.align==="right"&&(z="end");var I=t.axesUtils.getYAxisForeColor(s.colors,e),X=i.config.yaxis[e].labels.offsetY;i.config.chart.type==="heatmap"&&(X-=(i.globals.gridHeight/i.globals.series.length-1)/2);var R=a.drawText({x:T,y:p+d/10+X+1,text:L,textAnchor:z,fontSize:r,fontFamily:n,fontWeight:o,maxWidth:i.config.yaxis[e].labels.maxWidth,foreColor:Array.isArray(I)?I[C]:I,isPlainText:!1,cssClass:"apexcharts-yaxis-label "+s.cssClass});C===d&&(v=R),c.add(R);var H=document.createElementNS(i.globals.SVGNS,"title");if(H.textContent=Array.isArray(L)?L.join(" "):L,R.node.appendChild(H),i.config.yaxis[e].labels.rotate!==0){var O=a.rotateAroundCenter(v.node),D=a.rotateAroundCenter(R.node);R.node.setAttribute("transform","rotate(".concat(i.config.yaxis[e].labels.rotate," ").concat(O.x," ").concat(D.y,")"))}p+=g},A=d;A>=0;A--)w(A);if(i.config.yaxis[e].title.text!==void 0){var l=a.group({class:"apexcharts-yaxis-title"}),u=0;i.config.yaxis[e].opposite&&(u=i.globals.translateYAxisX[e]);var b=a.drawText({x:u,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[e].title.offsetY,text:i.config.yaxis[e].title.text,textAnchor:"end",foreColor:i.config.yaxis[e].title.style.color,fontSize:i.config.yaxis[e].title.style.fontSize,fontWeight:i.config.yaxis[e].title.style.fontWeight,fontFamily:i.config.yaxis[e].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[e].title.style.cssClass});l.add(b),h.add(l)}var y=i.config.yaxis[e].axisBorder,k=31+y.offsetX;if(i.config.yaxis[e].opposite&&(k=-31-y.offsetX),y.show){var S=a.drawLine(k,i.globals.translateY+y.offsetY-2,k,i.globals.gridHeight+i.globals.translateY+y.offsetY+2,y.color,0,y.width);h.add(S)}return i.config.yaxis[e].axisTicks.show&&this.axesUtils.drawYAxisTicks(k,d,y,i.config.yaxis[e].axisTicks,e,g,h),h}},{key:"drawYaxisInversed",value:function(e){var t=this.w,i=new M(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});a.add(s);var r=t.globals.yAxisScale[e].result.length-1,n=t.globals.gridWidth/r+.1,o=n+t.config.xaxis.labels.offsetX,h=t.globals.xLabelFormatter,c=t.globals.yAxisScale[e].result.slice(),d=t.globals.timescaleLabels;d.length>0&&(this.xaxisLabels=d.slice(),r=(c=d.slice()).length),c=this.axesUtils.checkForReversedLabels(e,c);var g=d.length;if(t.config.xaxis.labels.show)for(var p=g?0:r;g?p=0;g?p++:p--){var x=c[p];x=h(x,p,t);var m=t.globals.gridWidth+t.globals.padHorizontal-(o-n+t.config.xaxis.labels.offsetX);if(d.length){var v=this.axesUtils.getLabel(c,d,m,p,this.drawnLabels,this.xaxisFontSize);m=v.x,x=v.text,this.drawnLabels.push(v.text),p===0&&t.globals.skipFirstTimelinelabel&&(x=""),p===c.length-1&&t.globals.skipLastTimelinelabel&&(x="")}var w=i.drawText({x:m,y:this.xAxisoffX+t.config.xaxis.labels.offsetY+30-(t.config.xaxis.position==="top"?t.globals.xAxisHeight+t.config.xaxis.axisTicks.height-2:0),text:x,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[e]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:t.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+t.config.xaxis.labels.style.cssClass});s.add(w),w.tspan(x);var A=document.createElementNS(t.globals.SVGNS,"title");A.textContent=x,w.node.appendChild(A),o+=n}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(e){var t=this.w,i=new M(this.ctx),a=t.config.xaxis.axisBorder;if(a.show){var s=0;t.config.chart.type==="bar"&&t.globals.isXNumeric&&(s-=15);var r=i.drawLine(t.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,t.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&t.config.grid.show?this.elgrid.elGridBorders.add(r):e.add(r)}}},{key:"inversedYAxisTitleText",value:function(e){var t=this.w,i=new M(this.ctx);if(t.config.xaxis.title.text!==void 0){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:t.globals.gridWidth/2+t.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(t.config.xaxis.title.style.fontSize)+t.config.xaxis.title.offsetY+20,text:t.config.xaxis.title.text,textAnchor:"middle",fontSize:t.config.xaxis.title.style.fontSize,fontFamily:t.config.xaxis.title.style.fontFamily,fontWeight:t.config.xaxis.title.style.fontWeight,foreColor:t.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+t.config.xaxis.title.style.cssClass});a.add(s),e.add(a)}}},{key:"yAxisTitleRotate",value:function(e,t){var i=this.w,a=new M(this.ctx),s={width:0,height:0},r={width:0,height:0},n=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(e,"'] .apexcharts-yaxis-texts-g"));n!==null&&(s=n.getBoundingClientRect());var o=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(e,"'] .apexcharts-yaxis-title text"));if(o!==null&&(r=o.getBoundingClientRect()),o!==null){var h=this.xPaddingForYAxisTitle(e,s,r,t);o.setAttribute("x",h.xPos-(t?10:0))}if(o!==null){var c=a.rotateAroundCenter(o);o.setAttribute("transform","rotate(".concat(t?-1*i.config.yaxis[e].title.rotate:i.config.yaxis[e].title.rotate," ").concat(c.x," ").concat(c.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(e,t,i,a){var s=this.w,r=0,n=0,o=10;return s.config.yaxis[e].title.text===void 0||e<0?{xPos:n,padd:0}:(a?(n=t.width+s.config.yaxis[e].title.offsetX+i.width/2+o/2,(r+=1)===0&&(n-=o/2)):(n=-1*t.width+s.config.yaxis[e].title.offsetX+o/2+i.width/2,s.globals.isBarHorizontal&&(o=25,n=-1*t.width-s.config.yaxis[e].title.offsetX-o)),{xPos:n,padd:o})}},{key:"setYAxisXPosition",value:function(e,t){var i=this.w,a=0,s=0,r=18,n=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map(function(o,h){var c=i.globals.ignoreYAxisIndexes.indexOf(h)>-1||!o.show||o.floating||e[h].width===0,d=e[h].width+t[h].width;o.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[h]=s-o.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+n,c||(n=n+d+20),i.globals.translateYAxisX[h]=s-o.labels.offsetX+20):(a=i.globals.translateX-r,c||(r=r+d+20),i.globals.translateYAxisX[h]=a+o.labels.offsetX)})}},{key:"setYAxisTextAlignments",value:function(){var e=this.w,t=e.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(t=P.listToArray(t)).forEach(function(i,a){var s=e.config.yaxis[a];if(s&&!s.floating&&s.labels.align!==void 0){var r=e.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(a,"'] .apexcharts-yaxis-texts-g")),n=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(a,"'] .apexcharts-yaxis-label"));n=P.listToArray(n);var o=r.getBoundingClientRect();s.labels.align==="left"?(n.forEach(function(h,c){h.setAttribute("text-anchor","start")}),s.opposite||r.setAttribute("transform","translate(-".concat(o.width,", 0)"))):s.labels.align==="center"?(n.forEach(function(h,c){h.setAttribute("text-anchor","middle")}),r.setAttribute("transform","translate(".concat(o.width/2*(s.opposite?1:-1),", 0)"))):s.labels.align==="right"&&(n.forEach(function(h,c){h.setAttribute("text-anchor","end")}),s.opposite&&r.setAttribute("transform","translate(".concat(o.width,", 0)")))}})}}]),f}(),Ii=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.documentEvent=P.bind(this.documentEvent,this)}return F(f,[{key:"addEventListener",value:function(e,t){var i=this.w;i.globals.events.hasOwnProperty(e)?i.globals.events[e].push(t):i.globals.events[e]=[t]}},{key:"removeEventListener",value:function(e,t){var i=this.w;if(i.globals.events.hasOwnProperty(e)){var a=i.globals.events[e].indexOf(t);a!==-1&&i.globals.events[e].splice(a,1)}}},{key:"fireEvent",value:function(e,t){var i=this.w;if(i.globals.events.hasOwnProperty(e)){t&&t.length||(t=[]);for(var a=i.globals.events[e],s=a.length,r=0;r0&&(t=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=t.filter(function(s){return s.name===e})[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=P.extend(Pt,i);this.w.globals.locale=a.options}}]),f}(),Mi=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"drawAxis",value:function(e,t){var i,a,s=this,r=this.w.globals,n=this.w.config,o=new we(this.ctx,t),h=new at(this.ctx,t);r.axisCharts&&e!=="radar"&&(r.isBarHorizontal?(a=h.drawYaxisInversed(0),i=o.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=o.drawXaxis(),r.dom.elGraphical.add(i),n.yaxis.map(function(c,d){if(r.ignoreYAxisIndexes.indexOf(d)===-1&&(a=h.drawYaxis(d),r.dom.Paper.add(a),s.w.config.grid.position==="back")){var g=r.dom.Paper.children()[1];g.remove(),r.dom.Paper.add(g)}})))}}]),f}(),tt=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"drawXCrosshairs",value:function(){var e=this.w,t=new M(this.ctx),i=new q(this.ctx),a=e.config.xaxis.crosshairs.fill.gradient,s=e.config.xaxis.crosshairs.dropShadow,r=e.config.xaxis.crosshairs.fill.type,n=a.colorFrom,o=a.colorTo,h=a.opacityFrom,c=a.opacityTo,d=a.stops,g=s.enabled,p=s.left,x=s.top,m=s.blur,v=s.color,w=s.opacity,A=e.config.xaxis.crosshairs.fill.color;if(e.config.xaxis.crosshairs.show){r==="gradient"&&(A=t.drawGradient("vertical",n,o,h,c,null,d,null));var l=t.drawRect();e.config.xaxis.crosshairs.width===1&&(l=t.drawLine());var u=e.globals.gridHeight;(!P.isNumber(u)||u<0)&&(u=0);var b=e.config.xaxis.crosshairs.width;(!P.isNumber(b)||b<0)&&(b=0),l.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:u,width:b,height:u,fill:A,filter:"none","fill-opacity":e.config.xaxis.crosshairs.opacity,stroke:e.config.xaxis.crosshairs.stroke.color,"stroke-width":e.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":e.config.xaxis.crosshairs.stroke.dashArray}),g&&(l=i.dropShadow(l,{left:p,top:x,blur:m,color:v,opacity:w})),e.globals.dom.elGraphical.add(l)}}},{key:"drawYCrosshairs",value:function(){var e=this.w,t=new M(this.ctx),i=e.config.yaxis[0].crosshairs,a=e.globals.barPadForNumericAxis;if(e.config.yaxis[0].crosshairs.show){var s=t.drawLine(-a,0,e.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),e.globals.dom.elGraphical.add(s)}var r=t.drawLine(-a,0,e.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),e.globals.dom.elGraphical.add(r)}}]),f}(),Xi=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"checkResponsiveConfig",value:function(e){var t=this,i=this.w,a=i.config;if(a.responsive.length!==0){var s=a.responsive.slice();s.sort(function(h,c){return h.breakpoint>c.breakpoint?1:c.breakpoint>h.breakpoint?-1:0}).reverse();var r=new ye({}),n=function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=s[0].breakpoint,d=window.innerWidth>0?window.innerWidth:screen.width;if(d>c){var g=V.extendArrayProps(r,i.globals.initialConfig,i);h=P.extend(g,h),h=P.extend(i.config,h),t.overrideResponsiveOptions(h)}else for(var p=0;p0&&typeof i.config.colors[0]=="function"&&(i.globals.colors=i.config.series.map(function(x,m){var v=i.config.colors[m];return v||(v=i.config.colors[0]),typeof v=="function"?(t.isColorFn=!0,v({value:i.globals.axisCharts?i.globals.series[m][0]?i.globals.series[m][0]:0:i.globals.series[m],seriesIndex:m,dataPointIndex:m,w:i})):v}))),i.globals.seriesColors.map(function(x,m){x&&(i.globals.colors[m]=x)}),i.config.theme.monochrome.enabled){var s=[],r=i.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(r=i.globals.series[0].length*i.globals.series.length);for(var n=i.config.theme.monochrome.color,o=1/(r/i.config.theme.monochrome.shadeIntensity),h=i.config.theme.monochrome.shadeTo,c=0,d=0;d2&&arguments[2]!==void 0?arguments[2]:null,a=this.w,s=t||a.globals.series.length;if(i===null&&(i=this.isBarDistributed||this.isHeatmapDistributed||a.config.chart.type==="heatmap"&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),e.lengthe.globals.svgWidth&&(this.dCtx.lgRect.width=e.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(e,t){var i=e;if(this.w.globals.isMultiLineX){var a=t.map(function(r,n){return Array.isArray(r)?r.length:1}),s=Math.max.apply(Math,J(a));i=t[a.indexOf(s)]}return i}}]),f}(),Ri=function(){function f(e){Y(this,f),this.w=e.w,this.dCtx=e}return F(f,[{key:"getxAxisLabelsCoords",value:function(){var e,t=this.w,i=t.globals.labels.slice();if(t.config.xaxis.convertedCatToNumeric&&i.length===0&&(i=t.globals.categoryLabels),t.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();e={width:a.width,height:a.height},t.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=t.config.legend.position!=="left"&&t.config.legend.position!=="right"||t.config.legend.floating?0:this.dCtx.lgRect.width;var s=t.globals.xLabelFormatter,r=P.getLargestStringFromArr(i),n=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);t.globals.isBarHorizontal&&(n=r=t.globals.yAxisScale[0].result.reduce(function(x,m){return x.length>m.length?x:m},0));var o=new Se(this.dCtx.ctx),h=r;r=o.xLabelFormat(s,r,h,{i:void 0,dateFormatter:new j(this.dCtx.ctx).formatDate,w:t}),n=o.xLabelFormat(s,n,h,{i:void 0,dateFormatter:new j(this.dCtx.ctx).formatDate,w:t}),(t.config.xaxis.convertedCatToNumeric&&r===void 0||String(r).trim()==="")&&(n=r="1");var c=new M(this.dCtx.ctx),d=c.getTextRects(r,t.config.xaxis.labels.style.fontSize),g=d;if(r!==n&&(g=c.getTextRects(n,t.config.xaxis.labels.style.fontSize)),(e={width:d.width>=g.width?d.width:g.width,height:d.height>=g.height?d.height:g.height}).width*i.length>t.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&t.config.xaxis.labels.rotate!==0||t.config.xaxis.labels.rotateAlways){if(!t.globals.isBarHorizontal){t.globals.rotateXLabels=!0;var p=function(x){return c.getTextRects(x,t.config.xaxis.labels.style.fontSize,t.config.xaxis.labels.style.fontFamily,"rotate(".concat(t.config.xaxis.labels.rotate," 0 0)"),!1)};d=p(r),r!==n&&(g=p(n)),e.height=(d.height>g.height?d.height:g.height)/1.5,e.width=d.width>g.width?d.width:g.width}}else t.globals.rotateXLabels=!1}return t.config.xaxis.labels.show||(e={width:0,height:0}),{width:e.width,height:e.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var e,t=this.w;if(!t.globals.hasXaxisGroups)return{width:0,height:0};var i,a=((e=t.config.xaxis.group.style)===null||e===void 0?void 0:e.fontSize)||t.config.xaxis.labels.style.fontSize,s=t.globals.groups.map(function(d){return d.title}),r=P.getLargestStringFromArr(s),n=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),o=new M(this.dCtx.ctx),h=o.getTextRects(r,a),c=h;return r!==n&&(c=o.getTextRects(n,a)),i={width:h.width>=c.width?h.width:c.width,height:h.height>=c.height?h.height:c.height},t.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var e=this.w,t=0,i=0;if(e.config.xaxis.title.text!==void 0){var a=new M(this.dCtx.ctx).getTextRects(e.config.xaxis.title.text,e.config.xaxis.title.style.fontSize);t=a.width,i=a.height}return{width:t,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var e,t=this.w;this.dCtx.timescaleLabels=t.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map(function(s){return s.value}),a=i.reduce(function(s,r){return s===void 0?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):s.length>r.length?s:r},0);return 1.05*(e=new M(this.dCtx.ctx).getTextRects(a,t.config.xaxis.labels.style.fontSize)).width*i.length>t.globals.gridWidth&&t.config.xaxis.labels.rotate!==0&&(t.globals.overlappingXLabels=!0),e}},{key:"additionalPaddingXLabels",value:function(e){var t=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,n=e.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var o=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,h=function(c,d){s.yaxis.length>1&&function(g){return a.collapsedSeriesIndices.indexOf(g)!==-1}(d)||function(g){if(t.dCtx.timescaleLabels&&t.dCtx.timescaleLabels.length){var p=t.dCtx.timescaleLabels[0],x=t.dCtx.timescaleLabels[t.dCtx.timescaleLabels.length-1].position+n/1.75-t.dCtx.yAxisWidthRight,m=p.position-n/1.75+t.dCtx.yAxisWidthLeft,v=i.config.legend.position==="right"&&t.dCtx.lgRect.width>0?t.dCtx.lgRect.width:0;x>a.svgWidth-a.translateX-v&&(a.skipLastTimelinelabel=!0),m<-(g.show&&!g.floating||s.chart.type!=="bar"&&s.chart.type!=="candlestick"&&s.chart.type!=="rangeBar"&&s.chart.type!=="boxPlot"?10:n/1.75)&&(a.skipFirstTimelinelabel=!0)}else r==="datetime"?t.dCtx.gridPad.right((k=String(d(b,o)))===null||k===void 0?void 0:k.length)?u:b},g),x=p=d(p,o);if(p!==void 0&&p.length!==0||(p=h.niceMax),t.globals.isBarHorizontal){a=0;var m=t.globals.labels.slice();p=P.getLargestStringFromArr(m),p=d(p,{seriesIndex:n,dataPointIndex:-1,w:t}),x=e.dCtx.dimHelpers.getLargestStringFromMultiArr(p,m)}var v=new M(e.dCtx.ctx),w="rotate(".concat(r.labels.rotate," 0 0)"),A=v.getTextRects(p,r.labels.style.fontSize,r.labels.style.fontFamily,w,!1),l=A;p!==x&&(l=v.getTextRects(x,r.labels.style.fontSize,r.labels.style.fontFamily,w,!1)),i.push({width:(c>l.width||c>A.width?c:l.width>A.width?l.width:A.width)+a,height:l.height>A.height?l.height:A.height})}else i.push({width:0,height:0})}),i}},{key:"getyAxisTitleCoords",value:function(){var e=this,t=this.w,i=[];return t.config.yaxis.map(function(a,s){if(a.show&&a.title.text!==void 0){var r=new M(e.dCtx.ctx),n="rotate(".concat(a.title.rotate," 0 0)"),o=r.getTextRects(a.title.text,a.title.style.fontSize,a.title.style.fontFamily,n,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})}),i}},{key:"getTotalYAxisWidth",value:function(){var e=this.w,t=0,i=0,a=0,s=e.globals.yAxisScale.length>1?10:0,r=new ne(this.dCtx.ctx),n=function(o,h){var c=e.config.yaxis[h].floating,d=0;o.width>0&&!c?(d=o.width+s,function(g){return e.globals.ignoreYAxisIndexes.indexOf(g)>-1}(h)&&(d=d-o.width-s)):d=c||r.isYAxisHidden(h)?0:5,e.config.yaxis[h].opposite?a+=d:i+=d,t+=d};return e.globals.yLabelsCoords.map(function(o,h){n(o,h)}),e.globals.yTitleCoords.map(function(o,h){n(o,h)}),e.globals.isBarHorizontal&&!e.config.yaxis[0].floating&&(t=e.globals.yLabelsCoords[0].width+e.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,t}}]),f}(),Hi=function(){function f(e){Y(this,f),this.w=e.w,this.dCtx=e}return F(f,[{key:"gridPadForColumnsInNumericAxis",value:function(e){var t=this.w;if(t.globals.noData||t.globals.allSeriesCollapsed)return 0;var i=function(c){return c==="bar"||c==="rangeBar"||c==="candlestick"||c==="boxPlot"},a=t.config.chart.type,s=0,r=i(a)?t.config.series.length:1;if(t.globals.comboBarCount>0&&(r=t.globals.comboBarCount),t.globals.collapsedSeries.forEach(function(c){i(c.type)&&(r-=1)}),t.config.chart.stacked&&(r=1),(i(a)||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&r>0){var n,o,h=Math.abs(t.globals.initialMaxX-t.globals.initialMinX);h<=3&&(h=t.globals.dataPoints),n=h/e,t.globals.minXDiff&&t.globals.minXDiff/n>0&&(o=t.globals.minXDiff/n),o>e/2&&(o/=2),(s=o/r*parseInt(t.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,t.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var e=this,t=this.w,i=t.globals,a=this.dCtx.isSparkline||!t.globals.axisCharts?0:10;["title","subtitle"].forEach(function(n){t.config[n].text!==void 0?a+=t.config[n].margin:a+=e.dCtx.isSparkline||!t.globals.axisCharts?0:5}),!t.config.legend.show||t.config.legend.position!=="bottom"||t.config.legend.floating||t.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(e,t){var i=this.w,a=new ne(this.dCtx.ctx);i.config.yaxis.map(function(s,r){i.globals.ignoreYAxisIndexes.indexOf(r)!==-1||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(t[r].width+e[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))})}}]),f}(),Ee=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new Fi(this),this.dimYAxis=new Oi(this),this.dimXAxis=new Ri(this),this.dimGrid=new Hi(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return F(f,[{key:"plotCoords",value:function(){var e=this,t=this.w,i=t.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&((t.config.markers.discrete.length>0||t.config.markers.size>0)&&Object.entries(this.gridPad).forEach(function(s){var r=Ct(s,2),n=r[0],o=r[1];e.gridPad[n]=Math.max(o,e.w.globals.markers.largestSize/1.5)}),this.gridPad.top=Math.max(t.config.stroke.width/2,this.gridPad.top),this.gridPad.bottom=Math.max(t.config.stroke.width/2,this.gridPad.bottom)),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var e=this,t=this.w,i=t.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();t.globals.yLabelsCoords=[],t.globals.yTitleCoords=[],t.config.yaxis.map(function(p,x){t.globals.yLabelsCoords.push({width:a[x].width,index:x}),t.globals.yTitleCoords.push({width:s[x].width,index:x})}),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),n=this.dimXAxis.getxAxisGroupLabelsCoords(),o=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,o,n),i.translateXAxisY=t.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=t.globals.rotateXLabels&&t.globals.isXNumeric&&t.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,t.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(t.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+t.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+t.config.xaxis.labels.offsetX;var h=this.yAxisWidth,c=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-o.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var d=10;(t.config.chart.type==="radar"||this.isSparkline)&&(h=0,c=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||t.config.chart.type==="treemap")&&(h=0,c=0,d=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var g=function(){i.translateX=h,i.gridHeight=i.svgHeight-e.lgRect.height-c-(e.isSparkline||t.config.chart.type==="treemap"?0:t.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-h};switch(t.config.xaxis.position==="top"&&(d=i.xAxisHeight-t.config.xaxis.axisTicks.height-5),t.config.legend.position){case"bottom":i.translateY=d,g();break;case"top":i.translateY=this.lgRect.height+d,g();break;case"left":i.translateY=d,i.translateX=this.lgRect.width+h,i.gridHeight=i.svgHeight-c-12,i.gridWidth=i.svgWidth-this.lgRect.width-h;break;case"right":i.translateY=d,i.translateX=h,i.gridHeight=i.svgHeight-c-12,i.gridWidth=i.svgWidth-this.lgRect.width-h-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new at(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var e=this.w,t=e.globals,i=e.config,a=0;e.config.legend.show&&!e.config.legend.floating&&(a=20);var s=i.chart.type==="pie"||i.chart.type==="polarArea"||i.chart.type==="donut"?"pie":"radialBar",r=i.plotOptions[s].offsetY,n=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return t.gridHeight=t.svgHeight-i.grid.padding.left+i.grid.padding.right,t.gridWidth=t.gridHeight,t.translateY=r,void(t.translateX=n+(t.svgWidth-t.gridWidth)/2);switch(i.legend.position){case"bottom":t.gridHeight=t.svgHeight-this.lgRect.height-t.goldenPadding,t.gridWidth=t.svgWidth,t.translateY=r-10,t.translateX=n+(t.svgWidth-t.gridWidth)/2;break;case"top":t.gridHeight=t.svgHeight-this.lgRect.height-t.goldenPadding,t.gridWidth=t.svgWidth,t.translateY=this.lgRect.height+r+10,t.translateX=n+(t.svgWidth-t.gridWidth)/2;break;case"left":t.gridWidth=t.svgWidth-this.lgRect.width-a,t.gridHeight=i.chart.height!=="auto"?t.svgHeight:t.gridWidth,t.translateY=r,t.translateX=n+this.lgRect.width+a;break;case"right":t.gridWidth=t.svgWidth-this.lgRect.width-a-5,t.gridHeight=i.chart.height!=="auto"?t.svgHeight:t.gridWidth,t.translateY=r,t.translateX=n+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(e,t,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+e.height+t.height,n=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,o=a.globals.rotateXLabels?22:10,h=a.globals.rotateXLabels&&a.config.legend.position==="bottom"?10:0;this.xAxisHeight=r*n+s*o+h,this.xAxisWidth=e.width,this.xAxisHeight-t.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightd&&(this.yAxisWidth=d)}}]),f}(),Di=function(){function f(e){Y(this,f),this.w=e.w,this.lgCtx=e}return F(f,[{key:"getLegendStyles",value:function(){var e,t,i,a=document.createElement("style");a.setAttribute("type","text/css");var s=((e=this.lgCtx.ctx)===null||e===void 0||(t=e.opts)===null||t===void 0||(i=t.chart)===null||i===void 0?void 0:i.nonce)||this.w.config.chart.nonce;s&&a.setAttribute("nonce",s);var r=document.createTextNode(` + + .apexcharts-legend { + display: flex; + overflow: auto; + padding: 0 10px; + } + .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top { + flex-wrap: wrap + } + .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left { + flex-direction: column; + bottom: 0; + } + .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left { + justify-content: flex-start; + } + .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center { + justify-content: center; + } + .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right { + justify-content: flex-end; + } + .apexcharts-legend-series { + cursor: pointer; + line-height: normal; + } + .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{ + display: flex; + align-items: center; + } + .apexcharts-legend-text { + position: relative; + font-size: 14px; + } + .apexcharts-legend-text *, .apexcharts-legend-marker * { + pointer-events: none; + } + .apexcharts-legend-marker { + position: relative; + display: inline-block; + cursor: pointer; + margin-right: 3px; + border-style: solid; + } + + .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{ + display: inline-block; + } + .apexcharts-legend-series.apexcharts-no-click { + cursor: auto; + } + .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series { + display: none !important; + } + .apexcharts-inactive-legend { + opacity: 0.45; + }`);return a.appendChild(r),a}},{key:"getLegendBBox",value:function(){var e=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),t=e.width;return{clwh:e.height,clww:t}}},{key:"appendToForeignObject",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:"toggleDataSeries",value:function(e,t){var i=this,a=this.w;if(a.globals.axisCharts||a.config.chart.type==="radialBar"){a.globals.resized=!0;var s=null,r=null;a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(e+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),t?[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach(function(c){i.riseCollapsedSeries(c.cs,c.csi,r)}):this.hideSeries({seriesEl:s,realIndex:r})}else{var n=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(e+1,"'] path")),o=a.config.chart.type;if(o==="pie"||o==="polarArea"||o==="donut"){var h=a.config.plotOptions.pie.donut.labels;new M(this.lgCtx.ctx).pathMouseDown(n.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(n.members[0].node,h)}n.fire("click")}}},{key:"hideSeries",value:function(e){var t=e.seriesEl,i=e.realIndex,a=this.w,s=P.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:t.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:t.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var n=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(n,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var o=t.childNodes,h=0;h0){for(var r=0;r-1&&(e[a].data=[])}):e.forEach(function(i,a){t.globals.collapsedSeriesIndices.indexOf(a)>-1&&(e[a]=0)}),e}}]),f}(),Xt=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed=this.w.config.chart.type==="bar"&&this.w.config.plotOptions.bar.distributed&&this.w.config.series.length===1,this.legendHelpers=new Di(this)}return F(f,[{key:"init",value:function(){var e=this.w,t=e.globals,i=e.config;if((i.legend.showForSingleSeries&&t.series.length===1||this.isBarsDistributed||t.series.length>1||!t.axisCharts)&&i.legend.show){for(;t.dom.elLegendWrap.firstChild;)t.dom.elLegendWrap.removeChild(t.dom.elLegendWrap.firstChild);this.drawLegends(),P.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),i.legend.position==="bottom"||i.legend.position==="top"?this.legendAlignHorizontal():i.legend.position!=="right"&&i.legend.position!=="left"||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var e=this,t=this.w,i=t.config.legend.fontFamily,a=t.globals.seriesNames,s=t.globals.colors.slice();if(t.config.chart.type==="heatmap"){var r=t.config.plotOptions.heatmap.colorScale.ranges;a=r.map(function(I){return I.name?I.name:I.from+" - "+I.to}),s=r.map(function(I){return I.color})}else this.isBarsDistributed&&(a=t.globals.labels.slice());t.config.legend.customLegendItems.length&&(a=t.config.legend.customLegendItems);for(var n=t.globals.legendFormatter,o=t.config.legend.inverseOrder,h=o?a.length-1:0;o?h>=0:h<=a.length-1;o?h--:h++){var c,d=n(a[h],{seriesIndex:h,w:t}),g=!1,p=!1;if(t.globals.collapsedSeries.length>0)for(var x=0;x0)for(var m=0;m0?h-10:0)+(c>0?c-10:0)}a.style.position="absolute",r=r+e+i.config.legend.offsetX,n=n+t+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=n+"px",i.config.legend.position==="bottom"?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):i.config.legend.position==="right"&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px"),["width","height"].forEach(function(d){a.style[d]&&(a.style[d]=parseInt(i.config.legend[d],10)+"px")})}},{key:"legendAlignHorizontal",value:function(){var e=this.w;e.globals.dom.elLegendWrap.style.right=0;var t=this.legendHelpers.getLegendBBox(),i=new Ee(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;e.config.legend.position==="bottom"?r=-t.clwh/1.8:e.config.legend.position==="top"&&(r=a.height+s.height+e.config.title.margin+e.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var e=this.w,t=this.legendHelpers.getLegendBBox(),i=0;e.config.legend.position==="left"&&(i=20),e.config.legend.position==="right"&&(i=e.globals.svgWidth-t.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(e){var t=this.w,i=e.target.classList.contains("apexcharts-legend-series")||e.target.classList.contains("apexcharts-legend-text")||e.target.classList.contains("apexcharts-legend-marker");if(t.config.chart.type==="heatmap"||this.isBarsDistributed){if(i){var a=parseInt(e.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new Q(this.ctx).highlightRangeInSeries(e,e.target)}}else!e.target.classList.contains("apexcharts-inactive-legend")&&i&&new Q(this.ctx).toggleSeriesOnHover(e,e.target)}},{key:"onLegendClick",value:function(e){var t=this.w;if(!t.config.legend.customLegendItems.length&&(e.target.classList.contains("apexcharts-legend-series")||e.target.classList.contains("apexcharts-legend-text")||e.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(e.target.getAttribute("rel"),10)-1,a=e.target.getAttribute("data:collapsed")==="true",s=this.w.config.chart.events.legendClick;typeof s=="function"&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;typeof r=="function"&&e.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),t.config.chart.type!=="treemap"&&t.config.chart.type!=="heatmap"&&!this.isBarsDistributed&&t.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),f}(),Et=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w;var t=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=t.globals.minX,this.maxX=t.globals.maxX}return F(f,[{key:"createToolbar",value:function(){var e=this,t=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=t.config.chart.toolbar.offsetY+"px",a.style.right=3-t.config.chart.toolbar.offsetX+"px",t.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=t.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s + + + +`),n("zoomOut",this.elZoomOut,` + + + +`);var o=function(d){e.t[d]&&t.config.chart[d].enabled&&r.push({el:d==="zoom"?e.elZoom:e.elSelection,icon:typeof e.t[d]=="string"?e.t[d]:d==="zoom"?` + + + +`:` + + +`,title:e.localeValues[d==="zoom"?"selectionZoom":"selection"],class:t.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(d,"-icon")})};o("zoom"),o("selection"),this.t.pan&&t.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:typeof this.t.pan=="string"?this.t.pan:` + + + + + + + +`,title:this.localeValues.pan,class:t.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),n("reset",this.elZoomReset,` + + +`),this.t.download&&r.push({el:this.elMenuIcon,icon:typeof this.t.download=="string"?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var h=0;h0&&a.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:i.globals.gridWidth,maxY:i.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var i=this.w,a=this.xyRatios;if(!i.globals.zoomEnabled){if(i.globals.selection!==void 0&&i.globals.selection!==null)this.drawSelectionRect(i.globals.selection);else if(i.config.chart.selection.xaxis.min!==void 0&&i.config.chart.selection.xaxis.max!==void 0){var s=(i.config.chart.selection.xaxis.min-i.globals.minX)/a.xRatio,r=i.globals.gridWidth-(i.globals.maxX-i.config.chart.selection.xaxis.max)/a.xRatio-s;i.globals.isRangeBar&&(s=(i.config.chart.selection.xaxis.min-i.globals.yAxisScale[0].niceMin)/a.invertedYRatio,r=(i.config.chart.selection.xaxis.max-i.config.chart.selection.xaxis.min)/a.invertedYRatio);var n={x:s,y:0,width:r,height:i.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(n),this.makeSelectionRectDraggable(),typeof i.config.chart.events.selection=="function"&&i.config.chart.events.selection(this.ctx,{xaxis:{min:i.config.chart.selection.xaxis.min,max:i.config.chart.selection.xaxis.max},yaxis:{}})}}}},{key:"drawSelectionRect",value:function(i){var a=i.x,s=i.y,r=i.width,n=i.height,o=i.translateX,h=o===void 0?0:o,c=i.translateY,d=c===void 0?0:c,g=this.w,p=this.zoomRect,x=this.selectionRect;if(this.dragged||g.globals.selection!==null){var m={transform:"translate("+h+", "+d+")"};g.globals.zoomEnabled&&this.dragged&&(r<0&&(r=1),p.attr({x:a,y:s,width:r,height:n,fill:g.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":g.config.chart.zoom.zoomedArea.fill.opacity,stroke:g.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":g.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":g.config.chart.zoom.zoomedArea.stroke.opacity}),M.setAttrs(p.node,m)),g.globals.selectionEnabled&&(x.attr({x:a,y:s,width:r>0?r:0,height:n>0?n:0,fill:g.config.chart.selection.fill.color,"fill-opacity":g.config.chart.selection.fill.opacity,stroke:g.config.chart.selection.stroke.color,"stroke-width":g.config.chart.selection.stroke.width,"stroke-dasharray":g.config.chart.selection.stroke.dashArray,"stroke-opacity":g.config.chart.selection.stroke.opacity}),M.setAttrs(x.node,m))}}},{key:"hideSelectionRect",value:function(i){i&&i.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(i){var a=i.context,s=i.zoomtype,r=this.w,n=a,o=this.gridRect.getBoundingClientRect(),h=n.startX-1,c=n.startY,d=!1,g=!1,p=n.clientX-o.left-h,x=n.clientY-o.top-c,m={};return Math.abs(p+h)>r.globals.gridWidth?p=r.globals.gridWidth-h:n.clientX-o.left<0&&(p=h),h>n.clientX-o.left&&(d=!0,p=Math.abs(p)),c>n.clientY-o.top&&(g=!0,x=Math.abs(x)),m=s==="x"?{x:d?h-p:h,y:0,width:p,height:r.globals.gridHeight}:s==="y"?{x:0,y:g?c-x:c,width:r.globals.gridWidth,height:x}:{x:d?h-p:h,y:g?c-x:c,width:p,height:x},n.drawSelectionRect(m),n.selectionDragging("resizing"),m}},{key:"selectionDragging",value:function(i,a){var s=this,r=this.w,n=this.xyRatios,o=this.selectionRect,h=0;i==="resizing"&&(h=30);var c=function(g){return parseFloat(o.node.getAttribute(g))},d={x:c("x"),y:c("y"),width:c("width"),height:c("height")};r.globals.selection=d,typeof r.config.chart.events.selection=="function"&&r.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout(function(){var g,p,x,m,v=s.gridRect.getBoundingClientRect(),w=o.node.getBoundingClientRect();r.globals.isRangeBar?(g=r.globals.yAxisScale[0].niceMin+(w.left-v.left)*n.invertedYRatio,p=r.globals.yAxisScale[0].niceMin+(w.right-v.left)*n.invertedYRatio,x=0,m=1):(g=r.globals.xAxisScale.niceMin+(w.left-v.left)*n.xRatio,p=r.globals.xAxisScale.niceMin+(w.right-v.left)*n.xRatio,x=r.globals.yAxisScale[0].niceMin+(v.bottom-w.bottom)*n.yRatio[0],m=r.globals.yAxisScale[0].niceMax-(w.top-v.top)*n.yRatio[0]);var A={xaxis:{min:g,max:p},yaxis:{min:x,max:m}};r.config.chart.events.selection(s.ctx,A),r.config.chart.brush.enabled&&r.config.chart.events.brushScrolled!==void 0&&r.config.chart.events.brushScrolled(s.ctx,A)},h))}},{key:"selectionDrawn",value:function(i){var a=i.context,s=i.zoomtype,r=this.w,n=a,o=this.xyRatios,h=this.ctx.toolbar;if(n.startX>n.endX){var c=n.startX;n.startX=n.endX,n.endX=c}if(n.startY>n.endY){var d=n.startY;n.startY=n.endY,n.endY=d}var g=void 0,p=void 0;r.globals.isRangeBar?(g=r.globals.yAxisScale[0].niceMin+n.startX*o.invertedYRatio,p=r.globals.yAxisScale[0].niceMin+n.endX*o.invertedYRatio):(g=r.globals.xAxisScale.niceMin+n.startX*o.xRatio,p=r.globals.xAxisScale.niceMin+n.endX*o.xRatio);var x=[],m=[];if(r.config.yaxis.forEach(function(k,S){x.push(r.globals.yAxisScale[S].niceMax-o.yRatio[S]*n.startY),m.push(r.globals.yAxisScale[S].niceMax-o.yRatio[S]*n.endY)}),n.dragged&&(n.dragX>10||n.dragY>10)&&g!==p){if(r.globals.zoomEnabled){var v=P.clone(r.globals.initialConfig.yaxis),w=P.clone(r.globals.initialConfig.xaxis);if(r.globals.zoomed=!0,r.config.xaxis.convertedCatToNumeric&&(g=Math.floor(g),p=Math.floor(p),g<1&&(g=1,p=r.globals.dataPoints),p-g<2&&(p=g+1)),s!=="xy"&&s!=="x"||(w={min:g,max:p}),s!=="xy"&&s!=="y"||v.forEach(function(k,S){v[S].min=m[S],v[S].max=x[S]}),r.config.chart.zoom.autoScaleYaxis){var A=new ge(n.ctx);v=A.autoScaleY(n.ctx,v,{xaxis:w})}if(h){var l=h.getBeforeZoomRange(w,v);l&&(w=l.xaxis?l.xaxis:w,v=l.yaxis?l.yaxis:v)}var u={xaxis:w};r.config.chart.group||(u.yaxis=v),n.ctx.updateHelpers._updateOptions(u,!1,n.w.config.chart.animations.dynamicAnimation.enabled),typeof r.config.chart.events.zoomed=="function"&&h.zoomCallback(w,v)}else if(r.globals.selectionEnabled){var b,y=null;b={min:g,max:p},s!=="xy"&&s!=="y"||(y=P.clone(r.config.yaxis)).forEach(function(k,S){y[S].min=m[S],y[S].max=x[S]}),r.globals.selection=n.selection,typeof r.config.chart.events.selection=="function"&&r.config.chart.events.selection(n.ctx,{xaxis:b,yaxis:y})}}}},{key:"panDragging",value:function(i){var a=i.context,s=this.w,r=a;if(s.globals.lastClientPosition.x!==void 0){var n=s.globals.lastClientPosition.x-r.clientX,o=s.globals.lastClientPosition.y-r.clientY;Math.abs(n)>Math.abs(o)&&n>0?this.moveDirection="left":Math.abs(n)>Math.abs(o)&&n<0?this.moveDirection="right":Math.abs(o)>Math.abs(n)&&o>0?this.moveDirection="up":Math.abs(o)>Math.abs(n)&&o<0&&(this.moveDirection="down")}s.globals.lastClientPosition={x:r.clientX,y:r.clientY};var h=s.globals.isRangeBar?s.globals.minY:s.globals.minX,c=s.globals.isRangeBar?s.globals.maxY:s.globals.maxX;s.config.xaxis.convertedCatToNumeric||r.panScrolled(h,c)}},{key:"delayedPanScrolled",value:function(){var i=this.w,a=i.globals.minX,s=i.globals.maxX,r=(i.globals.maxX-i.globals.minX)/2;this.moveDirection==="left"?(a=i.globals.minX+r,s=i.globals.maxX+r):this.moveDirection==="right"&&(a=i.globals.minX-r,s=i.globals.maxX-r),a=Math.floor(a),s=Math.floor(s),this.updateScrolledChart({xaxis:{min:a,max:s}},a,s)}},{key:"panScrolled",value:function(i,a){var s=this.w,r=this.xyRatios,n=P.clone(s.globals.initialConfig.yaxis),o=r.xRatio,h=s.globals.minX,c=s.globals.maxX;s.globals.isRangeBar&&(o=r.invertedYRatio,h=s.globals.minY,c=s.globals.maxY),this.moveDirection==="left"?(i=h+s.globals.gridWidth/15*o,a=c+s.globals.gridWidth/15*o):this.moveDirection==="right"&&(i=h-s.globals.gridWidth/15*o,a=c-s.globals.gridWidth/15*o),s.globals.isRangeBar||(is.globals.initialMaxX)&&(i=h,a=c);var d={min:i,max:a};s.config.chart.zoom.autoScaleYaxis&&(n=new ge(this.ctx).autoScaleY(this.ctx,n,{xaxis:d}));var g={xaxis:{min:i,max:a}};s.config.chart.group||(g.yaxis=n),this.updateScrolledChart(g,i,a)}},{key:"updateScrolledChart",value:function(i,a,s){var r=this.w;this.ctx.updateHelpers._updateOptions(i,!1,!1),typeof r.config.chart.events.scrolled=="function"&&r.config.chart.events.scrolled(this.ctx,{xaxis:{min:a,max:s}})}}]),t}(),Yt=function(){function f(e){Y(this,f),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return F(f,[{key:"getNearestValues",value:function(e){var t=e.hoverArea,i=e.elGrid,a=e.clientX,s=e.clientY,r=this.w,n=i.getBoundingClientRect(),o=n.width,h=n.height,c=o/(r.globals.dataPoints-1),d=h/r.globals.dataPoints,g=this.hasBars();!r.globals.comboCharts&&!g||r.config.xaxis.convertedCatToNumeric||(c=o/r.globals.dataPoints);var p=a-n.left-r.globals.barPadForNumericAxis,x=s-n.top;p<0||x<0||p>o||x>h?(t.classList.remove("hovering-zoom"),t.classList.remove("hovering-pan")):r.globals.zoomEnabled?(t.classList.remove("hovering-pan"),t.classList.add("hovering-zoom")):r.globals.panEnabled&&(t.classList.remove("hovering-zoom"),t.classList.add("hovering-pan"));var m=Math.round(p/c),v=Math.floor(x/d);g&&!r.config.xaxis.convertedCatToNumeric&&(m=Math.ceil(p/c),m-=1);var w=null,A=null,l=r.globals.seriesXvalues.map(function(S){return S.filter(function(C){return P.isNumber(C)})}),u=r.globals.seriesYvalues.map(function(S){return S.filter(function(C){return P.isNumber(C)})});if(r.globals.isXNumeric){var b=this.ttCtx.getElGrid().getBoundingClientRect(),y=p*(b.width/o),k=x*(b.height/h);w=(A=this.closestInMultiArray(y,k,l,u)).index,m=A.j,w!==null&&(l=r.globals.seriesXvalues[w],m=(A=this.closestInArray(y,l)).index)}return r.globals.capturedSeriesIndex=w===null?-1:w,(!m||m<1)&&(m=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=v:r.globals.capturedDataPointIndex=m,{capturedSeries:w,j:r.globals.isBarHorizontal?v:m,hoverX:p,hoverY:x}}},{key:"closestInMultiArray",value:function(e,t,i,a){var s=this.w,r=0,n=null,o=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):n=0;var h=i[r][0],c=Math.abs(e-h);if(i.forEach(function(p){p.forEach(function(x,m){var v=Math.abs(e-x);v<=c&&(c=v,o=m)})}),o!==-1){var d=a[r][o],g=Math.abs(t-d);n=r,a.forEach(function(p,x){var m=Math.abs(t-p[o]);m<=g&&(g=m,n=x)})}return{index:n,j:o}}},{key:"getFirstActiveXArray",value:function(e){for(var t=this.w,i=0,a=e.map(function(r,n){return r.length>0?n:-1}),s=0;s0)for(var a=0;a *")):this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *")}},{key:"getAllMarkers",value:function(){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");(e=J(e)).sort(function(i,a){var s=Number(i.getAttribute("data:realIndex")),r=Number(a.getAttribute("data:realIndex"));return rs?-1:0});var t=[];return e.forEach(function(i){t.push(i.querySelector(".apexcharts-marker"))}),t}},{key:"hasMarkers",value:function(e){return this.getElMarkers(e).length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(e){var t=this.w,i=t.config.markers.hover.size;return i===void 0&&(i=t.globals.markers.size[e]+t.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(e){var t=this.w,i=this.ttCtx;i.allTooltipSeriesGroups.length===0&&(i.allTooltipSeriesGroups=t.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(L.attrs.name,""),C+="
".concat(L.val,"
")}),l.innerHTML=S+"",u.innerHTML=C+""};n?h.globals.seriesGoals[t][i]&&Array.isArray(h.globals.seriesGoals[t][i])?b():(l.innerHTML="",u.innerHTML=""):b()}else l.innerHTML="",u.innerHTML="";if(m!==null&&(a[t].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=h.config.tooltip.z.title,a[t].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=m!==void 0?m:""),n&&v[0]){if(h.config.tooltip.hideEmptySeries){var y=a[t].querySelector(".apexcharts-tooltip-marker"),k=a[t].querySelector(".apexcharts-tooltip-text");parseFloat(d)==0?(y.style.display="none",k.style.display="none"):(y.style.display="block",k.style.display="block")}d==null||h.globals.ancillaryCollapsedSeriesIndices.indexOf(t)>-1||h.globals.collapsedSeriesIndices.indexOf(t)>-1?v[0].parentNode.style.display="none":v[0].parentNode.style.display=h.config.tooltip.items.display}}},{key:"toggleActiveInactiveSeries",value:function(e){var t=this.w;if(e)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=t.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=t.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(e){var t=e.i,i=e.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",n="",o=null,h=null,c={series:a.globals.series,seriesIndex:t,dataPointIndex:i,w:a},d=a.globals.ttZFormatter;i===null?h=a.globals.series[t]:a.globals.isXNumeric&&a.config.chart.type!=="treemap"?(r=s[t][i],s[t].length===0&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=a.globals.labels[i]!==void 0?a.globals.labels[i]:"";var g=r;return a.globals.isXNumeric&&a.config.xaxis.type==="datetime"?r=new Se(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,g,g,{i:void 0,dateFormatter:new j(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](g,c):a.globals.xLabelFormatter(g,c),a.config.tooltip.x.formatter!==void 0&&(r=a.globals.ttKeyFormatter(g,c)),a.globals.seriesZ.length>0&&a.globals.seriesZ[t].length>0&&(o=d(a.globals.seriesZ[t][i],a)),n=typeof a.config.xaxis.tooltip.formatter=="function"?a.globals.xaxisTooltipFormatter(g,c):r,{val:Array.isArray(h)?h.join(" "):h,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(n)?n.join(" "):n,zVal:o}}},{key:"handleCustomTooltip",value:function(e){var t=e.i,i=e.j,a=e.y1,s=e.y2,r=e.w,n=this.ttCtx.getElTooltip(),o=r.config.tooltip.custom;Array.isArray(o)&&o[t]&&(o=o[t]),n.innerHTML=o({ctx:this.ctx,series:r.globals.series,seriesIndex:t,dataPointIndex:i,y1:a,y2:s,w:r})}}]),f}(),Ft=function(){function f(e){Y(this,f),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return F(f,[{key:"moveXCrosshairs",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=e-i.xcrosshairsWidth/2,n=a.globals.labels.slice().length;if(t!==null&&(r=a.globals.gridWidth/n*t),s===null||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var o=r;a.config.xaxis.crosshairs.width!=="tickWidth"&&a.config.xaxis.crosshairs.width!=="barWidth"||(o=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(o)}}},{key:"moveYCrosshairs",value:function(e){var t=this.ttCtx;t.ycrosshairs!==null&&M.setAttrs(t.ycrosshairs,{y1:e,y2:e}),t.ycrosshairsHidden!==null&&M.setAttrs(t.ycrosshairsHidden,{y1:e,y2:e})}},{key:"moveXAxisTooltip",value:function(e){var t=this.w,i=this.ttCtx;if(i.xaxisTooltip!==null&&i.xcrosshairsWidth!==0){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+t.config.xaxis.tooltip.offsetY+t.globals.translateY+1+t.config.xaxis.offsetY;if(e-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(e)){e+=t.globals.translateX;var s;s=new M(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=e+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(e){var t=this.w,i=this.ttCtx;i.yaxisTTEls===null&&(i.yaxisTTEls=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=t.globals.translateY+a,r=i.yaxisTTEls[e].getBoundingClientRect().height,n=t.globals.translateYAxisX[e]-2;t.config.yaxis[e].opposite&&(n-=26),s-=r/2,t.globals.ignoreYAxisIndexes.indexOf(e)===-1?(i.yaxisTTEls[e].classList.add("apexcharts-active"),i.yaxisTTEls[e].style.top=s+"px",i.yaxisTTEls[e].style.left=n+t.config.yaxis[e].tooltip.offsetX+"px"):i.yaxisTTEls[e].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),n=s.tooltipRect,o=i!==null?parseFloat(i):1,h=parseFloat(e)+o+5,c=parseFloat(t)+o/2;if(h>a.globals.gridWidth/2&&(h=h-n.ttWidth-o-10),h>a.globals.gridWidth-n.ttWidth-10&&(h=a.globals.gridWidth-n.ttWidth),h<-20&&(h=-20),a.config.tooltip.followCursor){var d=s.getElGrid().getBoundingClientRect();(h=s.e.clientX-d.left)>a.globals.gridWidth/2&&(h-=s.tooltipRect.ttWidth),(c=s.e.clientY+a.globals.translateY-d.top)>a.globals.gridHeight/2&&(c-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||n.ttHeight/2+c>a.globals.gridHeight&&(c=a.globals.gridHeight-n.ttHeight+a.globals.translateY);isNaN(h)||(h+=a.globals.translateX,r.style.left=h+"px",r.style.top=c+"px")}},{key:"moveMarkers",value:function(e,t){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[e]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(e,"'] .apexcharts-marker")),r=0;r0&&(c.setAttribute("r",o),c.setAttribute("cx",i),c.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,o)}}},{key:"moveDynamicPointsOnHover",value:function(e){var t,i=this.ttCtx,a=i.w,s=0,r=0,n=a.globals.pointsArray;t=new Q(this.ctx).getActiveConfigSeriesIndex("asc",["line","area","scatter","bubble"]);var o=i.tooltipUtil.getHoverMarkerSize(t);n[t]&&(s=n[t][e][0],r=n[t][e][1]);var h=i.tooltipUtil.getAllMarkers();if(h!==null)for(var c=0;c0?(h[c]&&h[c].setAttribute("r",o),h[c]&&h[c].setAttribute("cy",g)):h[c]&&h[c].setAttribute("r",0)}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,o)}},{key:"moveStickyTooltipOverBars",value:function(e,t){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new Q(this.ctx).getActiveConfigSeriesIndex("desc")+1);var n=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r,"'] path[j='").concat(e,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(e,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(e,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(e,"']"));n||typeof t!="number"||(n=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(t,"'] path[j='").concat(e,`'], + .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='`).concat(t,"'] path[j='").concat(e,`'], + .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='`).concat(t,"'] path[j='").concat(e,`'], + .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='`).concat(t,"'] path[j='").concat(e,"']")));var o=n?parseFloat(n.getAttribute("cx")):0,h=n?parseFloat(n.getAttribute("cy")):0,c=n?parseFloat(n.getAttribute("barWidth")):0,d=a.getElGrid().getBoundingClientRect(),g=n&&(n.classList.contains("apexcharts-candlestick-area")||n.classList.contains("apexcharts-boxPlot-area"));i.globals.isXNumeric?(n&&!g&&(o-=s%2!=0?c/2:0),n&&g&&i.globals.comboCharts&&(o-=c/2)):i.globals.isBarHorizontal||(o=a.xAxisTicksPositions[e-1]+a.dataPointsDividedWidth/2,isNaN(o)&&(o=a.xAxisTicksPositions[e]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?h-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?h=a.e.clientY-d.top-a.tooltipRect.ttHeight/2:h+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(h=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(o),a.fixedTooltip||this.moveTooltip(o,h||i.globals.gridHeight)}}]),f}(),Bi=function(){function f(e){Y(this,f),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new Ft(e)}return F(f,[{key:"drawDynamicPoints",value:function(){var e=this.w,t=new M(this.ctx),i=new Ce(this.ctx),a=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=J(a),e.config.chart.stacked&&a.sort(function(d,g){return parseFloat(d.getAttribute("data:realIndex"))-parseFloat(g.getAttribute("data:realIndex"))});for(var s=0;s2&&arguments[2]!==void 0?arguments[2]:null,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,s=this.w;s.config.chart.type!=="bubble"&&this.newPointSize(e,t);var r=t.getAttribute("cx"),n=t.getAttribute("cy");if(i!==null&&a!==null&&(r=i,n=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(s.config.chart.type==="radar"){var o=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-o.left}this.tooltipPosition.moveTooltip(r,n,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(e){for(var t=this.w,i=this,a=this.ttCtx,s=e,r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),n=t.config.markers.hover.size,o=0;o=0?e[t].setAttribute("r",i):e[t].setAttribute("r",0)}}}]),f}(),Gi=function(){function f(e){Y(this,f),this.w=e.w;var t=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!t.globals.isBarHorizontal&&t.config.chart.type==="rangeBar"&&t.config.plotOptions.bar.rangeBarGroupRows}return F(f,[{key:"getAttr",value:function(e,t){return parseFloat(e.target.getAttribute(t))}},{key:"handleHeatTreeTooltip",value:function(e){var t=e.e,i=e.opt,a=e.x,s=e.y,r=e.type,n=this.ttCtx,o=this.w;if(t.target.classList.contains("apexcharts-".concat(r,"-rect"))){var h=this.getAttr(t,"i"),c=this.getAttr(t,"j"),d=this.getAttr(t,"cx"),g=this.getAttr(t,"cy"),p=this.getAttr(t,"width"),x=this.getAttr(t,"height");if(n.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:h,j:c,shared:!1,e:t}),o.globals.capturedSeriesIndex=h,o.globals.capturedDataPointIndex=c,a=d+n.tooltipRect.ttWidth/2+p,s=g+n.tooltipRect.ttHeight/2-x/2,n.tooltipPosition.moveXCrosshairs(d+p/2),a>o.globals.gridWidth/2&&(a=d-n.tooltipRect.ttWidth/2+p),n.w.config.tooltip.followCursor){var m=o.globals.dom.elWrap.getBoundingClientRect();a=o.globals.clientX-m.left-(a>o.globals.gridWidth/2?n.tooltipRect.ttWidth:0),s=o.globals.clientY-m.top-(s>o.globals.gridHeight/2?n.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(e){var t,i,a=e.e,s=e.opt,r=e.x,n=e.y,o=this.w,h=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var c=parseInt(s.paths.getAttribute("cx"),10),d=parseInt(s.paths.getAttribute("cy"),10),g=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),t=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,h.intersect){var p=P.findAncestor(s.paths,"apexcharts-series");p&&(t=parseInt(p.getAttribute("data:realIndex"),10))}if(h.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:t,j:i,shared:!h.showOnIntersect&&o.config.tooltip.shared,e:a}),a.type==="mouseup"&&h.markerClick(a,t,i),o.globals.capturedSeriesIndex=t,o.globals.capturedDataPointIndex=i,r=c,n=d+o.globals.translateY-1.4*h.tooltipRect.ttHeight,h.w.config.tooltip.followCursor){var x=h.getElGrid().getBoundingClientRect();n=h.e.clientY+o.globals.translateY-x.top}g<0&&(n=d),h.marker.enlargeCurrentPoint(i,s.paths,r,n)}return{x:r,y:n}}},{key:"handleBarTooltip",value:function(e){var t,i,a=e.e,s=e.opt,r=this.w,n=this.ttCtx,o=n.getElTooltip(),h=0,c=0,d=0,g=this.getBarTooltipXY({e:a,opt:s});t=g.i;var p=g.barHeight,x=g.j;r.globals.capturedSeriesIndex=t,r.globals.capturedDataPointIndex=x,r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||!r.config.tooltip.shared?(c=g.x,d=g.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[t]:r.config.stroke.width,h=c):r.globals.comboCharts||r.config.tooltip.shared||(h/=2),isNaN(d)&&(d=r.globals.svgHeight-n.tooltipRect.ttHeight);var m=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),v=r.globals.isMultipleYAxis?r.config.yaxis[m]&&r.config.yaxis[m].reversed:r.config.yaxis[0].reversed;if(c+n.tooltipRect.ttWidth>r.globals.gridWidth&&!v?c-=n.tooltipRect.ttWidth:c<0&&(c=0),n.w.config.tooltip.followCursor){var w=n.getElGrid().getBoundingClientRect();d=n.e.clientY-w.top}n.tooltip===null&&(n.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?n.tooltipPosition.moveXCrosshairs(h+i/2):n.tooltipPosition.moveXCrosshairs(h)),!n.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars())&&(v&&(c-=n.tooltipRect.ttWidth)<0&&(c=0),!v||r.globals.isBarHorizontal&&n.tooltipUtil.hasBars()||(d=d+p-2*(r.globals.series[t][x]<0?p:0)),d=d+r.globals.translateY-n.tooltipRect.ttHeight/2,o.style.left=c+r.globals.translateX+"px",o.style.top=d+"px")}},{key:"getBarTooltipXY",value:function(e){var t=this,i=e.e,a=e.opt,s=this.w,r=null,n=this.ttCtx,o=0,h=0,c=0,d=0,g=0,p=i.target.classList;if(p.contains("apexcharts-bar-area")||p.contains("apexcharts-candlestick-area")||p.contains("apexcharts-boxPlot-area")||p.contains("apexcharts-rangebar-area")){var x=i.target,m=x.getBoundingClientRect(),v=a.elGrid.getBoundingClientRect(),w=m.height;g=m.height;var A=m.width,l=parseInt(x.getAttribute("cx"),10),u=parseInt(x.getAttribute("cy"),10);d=parseFloat(x.getAttribute("barWidth"));var b=i.type==="touchmove"?i.touches[0].clientX:i.clientX;r=parseInt(x.getAttribute("j"),10),o=parseInt(x.parentNode.getAttribute("rel"),10)-1;var y=x.getAttribute("data-range-y1"),k=x.getAttribute("data-range-y2");s.globals.comboCharts&&(o=parseInt(x.parentNode.getAttribute("data:realIndex"),10));var S=function(L){return s.globals.isXNumeric?l-A/2:t.isVerticalGroupedRangeBar?l+A/2:l-n.dataPointsDividedWidth+A/2},C=function(){return u-n.dataPointsDividedHeight+w/2-n.tooltipRect.ttHeight/2};n.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:o,j:r,y1:y?parseInt(y,10):null,y2:k?parseInt(k,10):null,shared:!n.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(h=b-v.left+15,c=C()):(h=S(),c=i.clientY-v.top-n.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((h=l)0&&i.setAttribute("width",t.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var e=this.w,t=this.ttCtx;t.ycrosshairs=e.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),t.ycrosshairsHidden=e.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(e,t,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[e];if(a.yaxisTooltips[e]){var n=a.getElGrid().getBoundingClientRect(),o=(t-n.top)*i.yRatio[e],h=s.globals.maxYArr[e]-s.globals.minYArr[e],c=s.globals.minYArr[e]+(h-o);a.tooltipPosition.moveYCrosshairs(t-n.top),a.yaxisTooltipText[e].innerHTML=r(c),a.tooltipPosition.moveYAxisTooltip(e)}}}]),f}(),vt=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w;var t=this.w;this.tConfig=t.config.tooltip,this.tooltipUtil=new Yt(this),this.tooltipLabels=new Wi(this),this.tooltipPosition=new Ft(this),this.marker=new Bi(this),this.intersect=new Gi(this),this.axesTooltip=new Vi(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!t.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return F(f,[{key:"getElTooltip",value:function(e){return e||(e=this),e.w.globals.dom.baseEl?e.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(e){var t=this.w;this.xyRatios=e,this.isXAxisTooltipEnabled=t.config.xaxis.tooltip.enabled&&t.globals.axisCharts,this.yaxisTooltips=t.config.yaxis.map(function(r,n){return!!(r.show&&r.tooltip.enabled&&t.globals.axisCharts)}),this.allTooltipSeriesGroups=[],t.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),t.config.tooltip.cssClass&&i.classList.add(t.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),t.globals.dom.elWrap.appendChild(i),t.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new we(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!t.globals.comboCharts&&!this.tConfig.intersect&&t.config.chart.type!=="rangeBar"||this.tConfig.shared||(this.showOnIntersect=!0),t.config.markers.size!==0&&t.globals.markers.largestSize!==0||this.marker.drawDynamicPoints(this),t.globals.collapsedSeries.length!==t.globals.series.length){this.dataPointsDividedHeight=t.globals.gridHeight/t.globals.dataPoints,this.dataPointsDividedWidth=t.globals.gridWidth/t.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||t.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=t.globals.series.length;(t.globals.xyCharts||t.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:t.globals.series.length),this.legendLabels=t.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(e){for(var t=this,i=this.w,a=[],s=this.getElTooltip(),r=function(o){var h=document.createElement("div");h.classList.add("apexcharts-tooltip-series-group"),h.style.order=i.config.tooltip.inverseOrder?e-o:o+1,t.tConfig.shared&&t.tConfig.enabledOnSeries&&Array.isArray(t.tConfig.enabledOnSeries)&&t.tConfig.enabledOnSeries.indexOf(o)<0&&h.classList.add("apexcharts-tooltip-series-group-hidden");var c=document.createElement("span");c.classList.add("apexcharts-tooltip-marker"),c.style.backgroundColor=i.globals.colors[o],h.appendChild(c);var d=document.createElement("div");d.classList.add("apexcharts-tooltip-text"),d.style.fontFamily=t.tConfig.style.fontFamily||i.config.chart.fontFamily,d.style.fontSize=t.tConfig.style.fontSize,["y","goals","z"].forEach(function(g){var p=document.createElement("div");p.classList.add("apexcharts-tooltip-".concat(g,"-group"));var x=document.createElement("span");x.classList.add("apexcharts-tooltip-text-".concat(g,"-label")),p.appendChild(x);var m=document.createElement("span");m.classList.add("apexcharts-tooltip-text-".concat(g,"-value")),p.appendChild(m),d.appendChild(p)}),h.appendChild(d),s.appendChild(h),a.push(h)},n=0;n0&&this.addPathsEventListeners(x,d),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(d)}}},{key:"drawFixedTooltipRect",value:function(){var e=this.w,t=this.getElTooltip(),i=t.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,n=this.tConfig.fixed.offsetY,o=this.tConfig.fixed.position.toLowerCase();return o.indexOf("right")>-1&&(r=r+e.globals.svgWidth-a+10),o.indexOf("bottom")>-1&&(n=n+e.globals.svgHeight-s-10),t.style.left=r+"px",t.style.top=n+"px",{x:r,y:n,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(e){var t=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(t,e)}},{key:"addPathsEventListeners",value:function(e,t){for(var i=this,a=function(r){var n={paths:e[r],tooltipEl:t.tooltipEl,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:t.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map(function(o){return e[r].addEventListener(o,i.onSeriesHover.bind(i,n),{capture:!1,passive:!0})})},s=0;s=100?this.seriesHover(e,t):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout(function(){i.seriesHover(e,t)},100-a))}},{key:"seriesHover",value:function(e,t){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||s.globals.dataPoints===0)||(a.length?a.forEach(function(r){var n=i.getElTooltip(r),o={paths:e.paths,tooltipEl:n,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:r.w.globals.tooltip.ttItems};r.w.globals.minX===i.w.globals.minX&&r.w.globals.maxX===i.w.globals.maxX&&r.w.globals.tooltip.seriesHoverByContext({chartCtx:r,ttCtx:r.w.globals.tooltip,opt:o,e:t})}):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:e,e:t}))}},{key:"seriesHoverByContext",value:function(e){var t=e.chartCtx,i=e.ttCtx,a=e.opt,s=e.e,r=t.w,n=this.getElTooltip();n&&(i.tooltipRect={x:0,y:0,ttWidth:n.getBoundingClientRect().width,ttHeight:n.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared&&this.tConfig.onDatasetHover.highlightDataSeries&&new Q(t).toggleSeriesOnHover(s,s.target.parentNode),i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}))}},{key:"axisChartsTooltips",value:function(e){var t,i,a=e.e,s=e.opt,r=this.w,n=s.elGrid.getBoundingClientRect(),o=a.type==="touchmove"?a.touches[0].clientX:a.clientX,h=a.type==="touchmove"?a.touches[0].clientY:a.clientY;if(this.clientY=h,this.clientX=o,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,hn.top+n.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var c=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(c)<0)return void this.handleMouseOut(s)}var d=this.getElTooltip(),g=this.getElXCrosshairs(),p=r.globals.xyCharts||r.config.chart.type==="bar"&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(a.type==="mousemove"||a.type==="touchmove"||a.type==="mouseup"){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;g!==null&&g.classList.add("apexcharts-active");var x=this.yaxisTooltips.filter(function(w){return w===!0});if(this.ycrosshairs!==null&&x.length&&this.ycrosshairs.classList.add("apexcharts-active"),p&&!this.showOnIntersect)this.handleStickyTooltip(a,o,h,s);else if(r.config.chart.type==="heatmap"||r.config.chart.type==="treemap"){var m=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:t,y:i,type:r.config.chart.type});t=m.x,i=m.y,d.style.left=t+"px",d.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:t,y:i});if(this.yaxisTooltips.length)for(var v=0;vh.width)this.handleMouseOut(a);else if(o!==null)this.handleStickyCapturedSeries(e,o,a,n);else if(this.tooltipUtil.isXoverlap(n)||s.globals.isBarHorizontal){var c=s.globals.series.findIndex(function(d,g){return!s.globals.collapsedSeriesIndices.includes(g)});this.create(e,this,c,n,a.ttItems)}}},{key:"handleStickyCapturedSeries",value:function(e,t,i,a){var s=this.w;if(!this.tConfig.shared&&s.globals.series[t][a]===null)return void this.handleMouseOut(i);if(s.globals.series[t][a]!==void 0)this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(e,this,t,a,i.ttItems):this.create(e,this,t,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex(function(n,o){return!s.globals.collapsedSeriesIndices.includes(o)});this.create(e,this,r,a,i.ttItems)}}},{key:"deactivateHoverFilter",value:function(){for(var e=this.w,t=new M(this.ctx),i=e.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&arguments[5]!==void 0?arguments[5]:null,k=this.w,S=t;e.type==="mouseup"&&this.markerClick(e,i,a),y===null&&(y=this.tConfig.shared);var C=this.tooltipUtil.hasMarkers(i),L=this.tooltipUtil.getElBars();if(k.config.legend.tooltipHoverFormatter){var T=k.config.legend.tooltipHoverFormatter,z=Array.from(this.legendLabels);z.forEach(function(Z){var K=Z.getAttribute("data:default-text");Z.innerHTML=decodeURIComponent(K)});for(var I=0;I0?S.marker.enlargePoints(a):S.tooltipPosition.moveDynamicPointsOnHover(a);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(L),this.barSeriesHeight>0)){var G=new M(this.ctx),N=k.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a,i);for(var W=0;W0&&a.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(x-=d*k)),y&&(x=x+p.height/2-l/2-2);var C=this.barCtx.series[s][r]<0,L=h;switch(this.barCtx.isReversed&&(L=h-g+(C?2*g:0),h-=g),w.position){case"center":m=y?C?L-g/2+b:L+g/2-b:C?L-g/2+p.height/2+b:L+g/2+p.height/2-b;break;case"bottom":m=y?C?L-g+b:L+g-b:C?L-g+p.height+l+b:L+g-p.height/2+l-b;break;case"top":m=y?C?L+b:L-b:C?L-p.height/2-b:L+p.height+b}if(this.barCtx.lastActiveBarSerieIndex===n&&A.enabled){var T=new M(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:n,j:r}),v.fontSize);t=C?L-T.height/2-b-A.offsetY+18:L+T.height+b+A.offsetY-18,i=x+A.offsetX}return a.config.chart.stacked||(m<0?m=0+l:m+p.height/3>a.globals.gridHeight&&(m=a.globals.gridHeight-l)),{bcx:c,bcy:h,dataLabelsX:x,dataLabelsY:m,totalDataLabelsX:i,totalDataLabelsY:t,totalDataLabelsAnchor:"middle"}}},{key:"calculateBarsDataLabelsPosition",value:function(e){var t=this.w,i=e.x,a=e.i,s=e.j,r=e.realIndex,n=e.groupIndex,o=e.bcy,h=e.barHeight,c=e.barWidth,d=e.textRects,g=e.dataLabelsX,p=e.strokeWidth,x=e.dataLabelsConfig,m=e.barDataLabelsConfig,v=e.barTotalDataLabelsConfig,w=e.offX,A=e.offY,l=t.globals.gridHeight/t.globals.dataPoints;c=Math.abs(c);var u,b,y=(o+=n!==-1?n*h:0)-(this.barCtx.isRangeBar?0:l)+h/2+d.height/2+A-3,k="start",S=this.barCtx.series[a][s]<0,C=i;switch(this.barCtx.isReversed&&(C=i+c-(S?2*c:0),i=t.globals.gridWidth-c),m.position){case"center":g=S?C+c/2-w:Math.max(d.width/2,C-c/2)+w;break;case"bottom":g=S?C+c-p-Math.round(d.width/2)-w:C-c+p+Math.round(d.width/2)+w;break;case"top":g=S?C-p+Math.round(d.width/2)-w:C-p-Math.round(d.width/2)+w}if(this.barCtx.lastActiveBarSerieIndex===r&&v.enabled){var L=new M(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),x.fontSize);S?(u=C-p+Math.round(L.width/2)-w-v.offsetX-15,k="end"):u=C-p-Math.round(L.width/2)+w+v.offsetX+15,b=y+v.offsetY}return t.config.chart.stacked||(g<0?g=g+d.width+p:g+d.width/2>t.globals.gridWidth&&(g=t.globals.gridWidth-d.width-p)),{bcx:i,bcy:o,dataLabelsX:g,dataLabelsY:y,totalDataLabelsX:u,totalDataLabelsY:b,totalDataLabelsAnchor:k}}},{key:"drawCalculatedDataLabels",value:function(e){var t=e.x,i=e.y,a=e.val,s=e.i,r=e.j,n=e.textRects,o=e.barHeight,h=e.barWidth,c=e.dataLabelsConfig,d=this.w,g="rotate(0)";d.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(g="rotate(-90, ".concat(t,", ").concat(i,")"));var p=new de(this.barCtx.ctx),x=new M(this.barCtx.ctx),m=c.formatter,v=null,w=d.globals.collapsedSeriesIndices.indexOf(s)>-1;if(c.enabled&&!w){v=x.group({class:"apexcharts-data-labels",transform:g});var A="";a!==void 0&&(A=m(a,E(E({},d),{},{seriesIndex:s,dataPointIndex:r,w:d}))),!a&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(A="");var l=d.globals.series[s][r]<0,u=d.config.plotOptions.bar.dataLabels.position;d.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(u==="top"&&(c.textAnchor=l?"end":"start"),u==="center"&&(c.textAnchor="middle"),u==="bottom"&&(c.textAnchor=l?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&hMath.abs(h)&&(A=""):n.height/1.6>Math.abs(o)&&(A=""));var b=E({},c);this.barCtx.isHorizontal&&a<0&&(c.textAnchor==="start"?b.textAnchor="end":c.textAnchor==="end"&&(b.textAnchor="start")),p.plotDataLabelsText({x:t,y:i,text:A,i:s,j:r,parent:v,dataLabelsConfig:b,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return v}},{key:"drawTotalDataLabels",value:function(e){var t,i=e.x,a=e.y,s=e.val,r=e.barWidth,n=e.barHeight,o=e.realIndex,h=e.textAnchor,c=e.barTotalDataLabelsConfig,d=this.w,g=new M(this.barCtx.ctx);return c.enabled&&i!==void 0&&a!==void 0&&this.barCtx.lastActiveBarSerieIndex===o&&(t=g.drawText({x:i-(!d.globals.isBarHorizontal&&d.globals.seriesGroups.length?r/d.globals.seriesGroups.length:0),y:a-(d.globals.isBarHorizontal&&d.globals.seriesGroups.length?n/d.globals.seriesGroups.length:0),foreColor:c.style.color,text:s,textAnchor:h,fontFamily:c.style.fontFamily,fontSize:c.style.fontSize,fontWeight:c.style.fontWeight})),t}}]),f}(),ji=function(){function f(e){Y(this,f),this.w=e.w,this.barCtx=e}return F(f,[{key:"initVariables",value:function(e){var t=this.w;this.barCtx.series=e,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=e[i].length),t.globals.isXNumeric)for(var a=0;at.globals.minX&&t.globals.seriesX[i][a]0&&(a=h.globals.minXDiff/g),(r=a/d*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}String(this.barCtx.barOptions.columnWidth).indexOf("%")===-1&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),n=h.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?h.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),e=h.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return h.globals.barHeight=s,h.globals.barWidth=r,{x:e,y:t,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:n,zeroW:o}}},{key:"initializeStackedPrevVars",value:function(e){var t=e.w;t.globals.hasSeriesGroups?t.globals.seriesGroups.forEach(function(i){e[i]||(e[i]={}),e[i].prevY=[],e[i].prevX=[],e[i].prevYF=[],e[i].prevXF=[],e[i].prevYVal=[],e[i].prevXVal=[]}):(e.prevY=[],e.prevX=[],e.prevYF=[],e.prevXF=[],e.prevYVal=[],e.prevXVal=[])}},{key:"initializeStackedXYVars",value:function(e){var t=e.w;t.globals.hasSeriesGroups?t.globals.seriesGroups.forEach(function(i){e[i]||(e[i]={}),e[i].xArrj=[],e[i].xArrjF=[],e[i].xArrjVal=[],e[i].yArrj=[],e[i].yArrjF=[],e[i].yArrjVal=[]}):(e.xArrj=[],e.xArrjF=[],e.xArrjVal=[],e.yArrj=[],e.yArrjF=[],e.yArrjVal=[])}},{key:"getPathFillColor",value:function(e,t,i,a){var s,r,n,o,h=this.w,c=new ee(this.barCtx.ctx),d=null,g=this.barCtx.barOptions.distributed?i:t;return this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map(function(p){e[t][i]>=p.from&&e[t][i]<=p.to&&(d=p.color)}),h.config.series[t].data[i]&&h.config.series[t].data[i].fillColor&&(d=h.config.series[t].data[i].fillColor),c.fillPath({seriesNumber:this.barCtx.barOptions.distributed?g:a,dataPointIndex:i,color:d,value:e[t][i],fillConfig:(s=h.config.series[t].data[i])===null||s===void 0?void 0:s.fill,fillType:(r=h.config.series[t].data[i])!==null&&r!==void 0&&(n=r.fill)!==null&&n!==void 0&&n.type?(o=h.config.series[t].data[i])===null||o===void 0?void 0:o.fill.type:Array.isArray(h.config.fill.type)?h.config.fill.type[t]:h.config.fill.type})}},{key:"getStrokeWidth",value:function(e,t,i){var a=0,s=this.w;return this.barCtx.series[e][t]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"shouldApplyRadius",value:function(e){var t=this.w,i=!1;return t.config.plotOptions.bar.borderRadius>0&&(t.config.chart.stacked&&t.config.plotOptions.bar.borderRadiusWhenStacked==="last"?this.barCtx.lastActiveBarSerieIndex===e&&(i=!0):i=!0),i}},{key:"barBackground",value:function(e){var t=e.j,i=e.i,a=e.x1,s=e.x2,r=e.y1,n=e.y2,o=e.elSeries,h=this.w,c=new M(this.barCtx.ctx),d=new Q(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&d===i){t>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(t%=this.barCtx.barOptions.colors.backgroundBarColors.length);var g=this.barCtx.barOptions.colors.backgroundBarColors[t],p=c.drawRect(a!==void 0?a:0,r!==void 0?r:0,s!==void 0?s:h.globals.gridWidth,n!==void 0?n:h.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,g,this.barCtx.barOptions.colors.backgroundBarOpacity);o.add(p),p.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(e){var t,i=e.barWidth,a=e.barXPosition,s=e.y1,r=e.y2,n=e.strokeWidth,o=e.seriesGroup,h=e.realIndex,c=e.i,d=e.j,g=e.w,p=new M(this.barCtx.ctx);(n=Array.isArray(n)?n[h]:n)||(n=0);var x=i,m=a;(t=g.config.series[h].data[d])!==null&&t!==void 0&&t.columnWidthOffset&&(m=a-g.config.series[h].data[d].columnWidthOffset/2,x=i+g.config.series[h].data[d].columnWidthOffset);var v=m,w=m+x;s+=.001,r+=.001;var A=p.move(v,s),l=p.move(v,s),u=p.line(w-n,s);if(g.globals.previousPaths.length>0&&(l=this.barCtx.getPreviousPath(h,d,!1)),A=A+p.line(v,r)+p.line(w-n,r)+p.line(w-n,s)+(g.config.plotOptions.bar.borderRadiusApplication==="around"?" Z":" z"),l=l+p.line(v,s)+u+u+u+u+u+p.line(v,s)+(g.config.plotOptions.bar.borderRadiusApplication==="around"?" Z":" z"),this.shouldApplyRadius(h)&&(A=p.roundPathCorners(A,g.config.plotOptions.bar.borderRadius)),g.config.chart.stacked){var b=this.barCtx;g.globals.hasSeriesGroups&&o&&(b=this.barCtx[o]),b.yArrj.push(r),b.yArrjF.push(Math.abs(s-r)),b.yArrjVal.push(this.barCtx.series[c][d])}return{pathTo:A,pathFrom:l}}},{key:"getBarpaths",value:function(e){var t,i=e.barYPosition,a=e.barHeight,s=e.x1,r=e.x2,n=e.strokeWidth,o=e.seriesGroup,h=e.realIndex,c=e.i,d=e.j,g=e.w,p=new M(this.barCtx.ctx);(n=Array.isArray(n)?n[h]:n)||(n=0);var x=i,m=a;(t=g.config.series[h].data[d])!==null&&t!==void 0&&t.barHeightOffset&&(x=i-g.config.series[h].data[d].barHeightOffset/2,m=a+g.config.series[h].data[d].barHeightOffset);var v=x,w=x+m;s+=.001,r+=.001;var A=p.move(s,v),l=p.move(s,v);g.globals.previousPaths.length>0&&(l=this.barCtx.getPreviousPath(h,d,!1));var u=p.line(s,w-n);if(A=A+p.line(r,v)+p.line(r,w-n)+u+(g.config.plotOptions.bar.borderRadiusApplication==="around"?" Z":" z"),l=l+p.line(s,v)+u+u+u+u+u+p.line(s,v)+(g.config.plotOptions.bar.borderRadiusApplication==="around"?" Z":" z"),this.shouldApplyRadius(h)&&(A=p.roundPathCorners(A,g.config.plotOptions.bar.borderRadius)),g.config.chart.stacked){var b=this.barCtx;g.globals.hasSeriesGroups&&o&&(b=this.barCtx[o]),b.xArrj.push(r),b.xArrjF.push(Math.abs(s-r)),b.xArrjVal.push(this.barCtx.series[c][d])}return{pathTo:A,pathFrom:l}}},{key:"checkZeroSeries",value:function(e){for(var t=e.series,i=this.w,a=0;a2&&arguments[2]!==void 0)||arguments[2]?t:null;return e!=null&&(i=t+e/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?e/this.barCtx.invertedYRatio:0)),i}},{key:"getYForValue",value:function(e,t){var i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2]?t:null;return e!=null&&(i=t-e/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?e/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),i}},{key:"getGoalValues",value:function(e,t,i,a,s){var r=this,n=this.w,o=[],h=function(g,p){var x;o.push((ie(x={},e,e==="x"?r.getXForValue(g,t,!1):r.getYForValue(g,i,!1)),ie(x,"attrs",p),x))};if(n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][s]&&Array.isArray(n.globals.seriesGoals[a][s])&&n.globals.seriesGoals[a][s].forEach(function(g){h(g.value,g)}),this.barCtx.barOptions.isDumbbell&&n.globals.seriesRange.length){var c=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:n.globals.colors,d={strokeHeight:e==="x"?0:n.globals.markers.size[a],strokeWidth:e==="x"?n.globals.markers.size[a]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(c[a])?c[a][0]:c[a]};h(n.globals.seriesRangeStart[a][s],d),h(n.globals.seriesRangeEnd[a][s],E(E({},d),{},{strokeColor:Array.isArray(c[a])?c[a][1]:c[a]}))}return o}},{key:"drawGoalLine",value:function(e){var t=e.barXPosition,i=e.barYPosition,a=e.goalX,s=e.goalY,r=e.barWidth,n=e.barHeight,o=new M(this.barCtx.ctx),h=o.group({className:"apexcharts-bar-goals-groups"});h.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:h.node}),h.attr("clip-path","url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid,")"));var c=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach(function(d){var g=d.attrs.strokeHeight!==void 0?d.attrs.strokeHeight:n/2,p=i+g+n/2;c=o.drawLine(d.x,p-2*g,d.x,p,d.attrs.strokeColor?d.attrs.strokeColor:void 0,d.attrs.strokeDashArray,d.attrs.strokeWidth?d.attrs.strokeWidth:2,d.attrs.strokeLineCap),h.add(c)}):Array.isArray(s)&&s.forEach(function(d){var g=d.attrs.strokeWidth!==void 0?d.attrs.strokeWidth:r/2,p=t+g+r/2;c=o.drawLine(p-2*g,d.y,p,d.y,d.attrs.strokeColor?d.attrs.strokeColor:void 0,d.attrs.strokeDashArray,d.attrs.strokeHeight?d.attrs.strokeHeight:2,d.attrs.strokeLineCap),h.add(c)}),h}},{key:"drawBarShadow",value:function(e){var t=e.prevPaths,i=e.currPaths,a=e.color,s=this.w,r=t.x,n=t.x1,o=t.barYPosition,h=i.x,c=i.x1,d=i.barYPosition,g=o+i.barHeight,p=new M(this.barCtx.ctx),x=new P,m=p.move(n,g)+p.line(r,g)+p.line(h,d)+p.line(c,d)+p.line(n,g)+(s.config.plotOptions.bar.borderRadiusApplication==="around"?" Z":" z");return p.drawPath({d:m,fill:x.shadeColor(.5,P.rgb2hex(a)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadows"})}},{key:"getZeroValueEncounters",value:function(e){var t=e.i,i=e.j,a=this.w,s=0,r=0;return a.globals.seriesPercent.forEach(function(n,o){n[i]&&s++,othis.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");for(var n=0,o=0;n0&&(this.visibleI=this.visibleI+1);var l=0,u=0;this.yRatio.length>1&&(this.yaxisIndex=w),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var b=this.barHelpers.initialPositions();x=b.y,l=b.barHeight,c=b.yDivision,g=b.zeroW,p=b.x,u=b.barWidth,h=b.xDivision,d=b.zeroH,this.horizontal||v.push(p+u/2);var y=a.group({class:"apexcharts-datalabels","data:realIndex":w});i.globals.delayedElements.push({el:y.node}),y.node.classList.add("apexcharts-element-hidden");var k=a.group({class:"apexcharts-bar-goals-markers"}),S=a.group({class:"apexcharts-bar-shadows"});i.globals.delayedElements.push({el:S.node}),S.node.classList.add("apexcharts-element-hidden");for(var C=0;C0){var X=this.barHelpers.drawBarShadow({color:typeof I=="string"&&I?.indexOf("url")===-1?I:P.hexToRgba(i.globals.colors[n]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:T});X&&S.add(X)}this.pathArr.push(T);var R=this.barHelpers.drawGoalLine({barXPosition:T.barXPosition,barYPosition:T.barYPosition,goalX:T.goalX,goalY:T.goalY,barHeight:l,barWidth:u});R&&k.add(R),x=T.y,p=T.x,C>0&&v.push(p+u/2),m.push(x),this.renderSeries({realIndex:w,pathFill:I,j:C,i:n,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:L,elSeries:A,x:p,y:x,series:e,barHeight:T.barHeight?T.barHeight:l,barWidth:T.barWidth?T.barWidth:u,elDataLabelsWrap:y,elGoalsMarkers:k,elBarShadows:S,visibleSeries:this.visibleI,type:"bar"})}i.globals.seriesXvalues[w]=v,i.globals.seriesYvalues[w]=m,r.add(A)}return r}},{key:"renderSeries",value:function(e){var t=e.realIndex,i=e.pathFill,a=e.lineFill,s=e.j,r=e.i,n=e.groupIndex,o=e.pathFrom,h=e.pathTo,c=e.strokeWidth,d=e.elSeries,g=e.x,p=e.y,x=e.y1,m=e.y2,v=e.series,w=e.barHeight,A=e.barWidth,l=e.barXPosition,u=e.barYPosition,b=e.elDataLabelsWrap,y=e.elGoalsMarkers,k=e.elBarShadows,S=e.visibleSeries,C=e.type,L=this.w,T=new M(this.ctx);a||(a=this.barOptions.distributed?L.globals.stroke.colors[s]:L.globals.stroke.colors[t]),L.config.series[r].data[s]&&L.config.series[r].data[s].strokeColor&&(a=L.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var z=s/L.config.chart.animations.animateGradually.delay*(L.config.chart.animations.speed/L.globals.dataPoints)/2.4,I=T.renderPaths({i:r,j:s,realIndex:t,pathFrom:o,pathTo:h,stroke:a,strokeWidth:c,strokeLineCap:L.config.stroke.lineCap,fill:i,animationDelay:z,initialSpeed:L.config.chart.animations.speed,dataChangeSpeed:L.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(C,"-area")});I.attr("clip-path","url(#gridRectMask".concat(L.globals.cuid,")"));var X=L.config.forecastDataPoints;X.count>0&&s>=L.globals.dataPoints-X.count&&(I.node.setAttribute("stroke-dasharray",X.dashArray),I.node.setAttribute("stroke-width",X.strokeWidth),I.node.setAttribute("fill-opacity",X.fillOpacity)),x!==void 0&&m!==void 0&&(I.attr("data-range-y1",x),I.attr("data-range-y2",m)),new q(this.ctx).setSelectionFilter(I,t,s),d.add(I);var R=new _i(this).handleBarDataLabels({x:g,y:p,y1:x,y2:m,i:r,j:s,series:v,realIndex:t,groupIndex:n,barHeight:w,barWidth:A,barXPosition:l,barYPosition:u,renderedPath:I,visibleSeries:S});return R.dataLabels!==null&&b.add(R.dataLabels),R.totalDataLabels&&b.add(R.totalDataLabels),d.add(b),y&&d.add(y),k&&d.add(k),d}},{key:"drawBarPaths",value:function(e){var t,i=e.indexes,a=e.barHeight,s=e.strokeWidth,r=e.zeroW,n=e.x,o=e.y,h=e.yDivision,c=e.elSeries,d=this.w,g=i.i,p=i.j;if(d.globals.isXNumeric)t=(o=(d.globals.seriesX[g][p]-d.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(d.config.plotOptions.bar.hideZeroBarsWhenGrouped){var x=0,m=0;d.globals.seriesPercent.forEach(function(w,A){w[p]&&x++,A0&&(a=this.seriesLen*a/x),t=o+a*this.visibleI,t-=a*m}else t=o+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[g][p],r)-r)/2),n=this.barHelpers.getXForValue(this.series[g][p],r);var v=this.barHelpers.getBarpaths({barYPosition:t,barHeight:a,x1:r,x2:n,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:p,w:d});return d.globals.isXNumeric||(o+=h),this.barHelpers.barBackground({j:p,i:g,y1:t-a*this.visibleI,y2:a*this.seriesLen,elSeries:c}),{pathTo:v.pathTo,pathFrom:v.pathFrom,x1:r,x:n,y:o,goalX:this.barHelpers.getGoalValues("x",r,null,g,p),barYPosition:t,barHeight:a}}},{key:"drawColumnPaths",value:function(e){var t,i=e.indexes,a=e.x,s=e.y,r=e.xDivision,n=e.barWidth,o=e.zeroH,h=e.strokeWidth,c=e.elSeries,d=this.w,g=i.realIndex,p=i.i,x=i.j,m=i.bc;if(d.globals.isXNumeric){var v=this.getBarXForNumericXAxis({x:a,j:x,realIndex:g,barWidth:n});a=v.x,t=v.barXPosition}else if(d.config.plotOptions.bar.hideZeroBarsWhenGrouped){var w=this.barHelpers.getZeroValueEncounters({i:p,j:x}),A=w.nonZeroColumns,l=w.zeroEncounters;A>0&&(n=this.seriesLen*n/A),t=a+n*this.visibleI,t-=n*l}else t=a+n*this.visibleI;s=this.barHelpers.getYForValue(this.series[p][x],o);var u=this.barHelpers.getColumnPaths({barXPosition:t,barWidth:n,y1:o,y2:s,strokeWidth:h,series:this.series,realIndex:i.realIndex,i:p,j:x,w:d});return d.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:m,j:x,i:p,x1:t-h/2-n*this.visibleI,x2:n*this.seriesLen+h/2,elSeries:c}),{pathTo:u.pathTo,pathFrom:u.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues("y",null,o,p,x),barXPosition:t,barWidth:n}}},{key:"getBarXForNumericXAxis",value:function(e){var t=e.x,i=e.barWidth,a=e.realIndex,s=e.j,r=this.w,n=a;return r.globals.seriesX[a].length||(n=r.globals.maxValsInArrayIndex),r.globals.seriesX[n][s]&&(t=(r.globals.seriesX[n][s]-r.globals.minX)/this.xRatio-i*this.seriesLen/2),{barXPosition:t+i*this.visibleI,x:t}}},{key:"getPreviousPath",value:function(e,t){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(e,10)&&a.globals.previousPaths[s].paths[t]!==void 0&&(i=a.globals.previousPaths[s].paths[t].d)}return i}}]),f}(),yt=function(f){ke(t,ue);var e=Ae(t);function t(){return Y(this,t),e.apply(this,arguments)}return F(t,[{key:"draw",value:function(i,a){var s=this,r=this.w;this.graphics=new M(this.ctx),this.bar=new ue(this.ctx,this.xyRatios);var n=new V(this.ctx,r);i=n.getLogSeries(i),this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(i),r.config.chart.stackType==="100%"&&(i=r.globals.seriesPercent.slice()),this.series=i,this.barHelpers.initializeStackedPrevVars(this);for(var o=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),h=0,c=0,d=function(x,m){var v=void 0,w=void 0,A=void 0,l=void 0,u=-1;s.groupCtx=s,r.globals.seriesGroups.forEach(function(N,W){N.indexOf(r.config.series[x].name)>-1&&(u=W)}),u!==-1&&(s.groupCtx=s[r.globals.seriesGroups[u]]);var b=[],y=[],k=r.globals.comboCharts?a[x]:x;s.yRatio.length>1&&(s.yaxisIndex=k),s.isReversed=r.config.yaxis[s.yaxisIndex]&&r.config.yaxis[s.yaxisIndex].reversed;var S=s.graphics.group({class:"apexcharts-series",seriesName:P.escapeString(r.globals.seriesNames[k]),rel:x+1,"data:realIndex":k});s.ctx.series.addCollapsedClassToSeries(S,k);var C=s.graphics.group({class:"apexcharts-datalabels","data:realIndex":k}),L=s.graphics.group({class:"apexcharts-bar-goals-markers"}),T=0,z=0,I=s.initialPositions(h,c,v,w,A,l);c=I.y,T=I.barHeight,w=I.yDivision,l=I.zeroW,h=I.x,z=I.barWidth,v=I.xDivision,A=I.zeroH,r.globals.barHeight=T,r.globals.barWidth=z,s.barHelpers.initializeStackedXYVars(s),s.groupCtx.prevY.length===1&&s.groupCtx.prevY[0].every(function(N){return isNaN(N)})&&(s.groupCtx.prevY[0]=s.groupCtx.prevY[0].map(function(N){return A}),s.groupCtx.prevYF[0]=s.groupCtx.prevYF[0].map(function(N){return 0}));for(var X=0;X1?(s=p.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:g*parseInt(p.config.plotOptions.bar.columnWidth,10)/100,String(p.config.plotOptions.bar.columnWidth).indexOf("%")===-1&&(g=parseInt(p.config.plotOptions.bar.columnWidth,10)),n=p.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?p.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),i=p.globals.padHorizontal+(s-g)/2),{x:i,y:a,yDivision:r,xDivision:s,barHeight:(h=p.globals.seriesGroups)!==null&&h!==void 0&&h.length?d/p.globals.seriesGroups.length:d,barWidth:(c=p.globals.seriesGroups)!==null&&c!==void 0&&c.length?g/p.globals.seriesGroups.length:g,zeroH:n,zeroW:o}}},{key:"drawStackedBarPaths",value:function(i){for(var a,s=i.indexes,r=i.barHeight,n=i.strokeWidth,o=i.zeroW,h=i.x,c=i.y,d=i.groupIndex,g=i.seriesGroup,p=i.yDivision,x=i.elSeries,m=this.w,v=c+(d!==-1?d*r:0),w=s.i,A=s.j,l=0,u=0;u0){var y=o;this.groupCtx.prevXVal[b-1][A]<0?y=this.series[w][A]>=0?this.groupCtx.prevX[b-1][A]+l-2*(this.isReversed?l:0):this.groupCtx.prevX[b-1][A]:this.groupCtx.prevXVal[b-1][A]>=0&&(y=this.series[w][A]>=0?this.groupCtx.prevX[b-1][A]:this.groupCtx.prevX[b-1][A]-l+2*(this.isReversed?l:0)),a=y}else a=o;h=this.series[w][A]===null?a:a+this.series[w][A]/this.invertedYRatio-2*(this.isReversed?this.series[w][A]/this.invertedYRatio:0);var k=this.barHelpers.getBarpaths({barYPosition:v,barHeight:r,x1:a,x2:h,strokeWidth:n,series:this.series,realIndex:s.realIndex,seriesGroup:g,i:w,j:A,w:m});return this.barHelpers.barBackground({j:A,i:w,y1:v,y2:r,elSeries:x}),c+=p,{pathTo:k.pathTo,pathFrom:k.pathFrom,goalX:this.barHelpers.getGoalValues("x",o,null,w,A),barYPosition:v,x:h,y:c}}},{key:"drawStackedColumnPaths",value:function(i){var a=i.indexes,s=i.x,r=i.y,n=i.xDivision,o=i.barWidth,h=i.zeroH,c=i.groupIndex,d=i.seriesGroup,g=i.elSeries,p=this.w,x=a.i,m=a.j,v=a.bc;if(p.globals.isXNumeric){var w=p.globals.seriesX[x][m];w||(w=0),s=(w-p.globals.minX)/this.xRatio-o/2,p.globals.seriesGroups.length&&(s=(w-p.globals.minX)/this.xRatio-o/2*p.globals.seriesGroups.length)}for(var A,l=s+(c!==-1?c*o:0),u=0,b=0;b0&&!p.globals.isXNumeric||y>0&&p.globals.isXNumeric&&p.globals.seriesX[x-1][m]===p.globals.seriesX[x][m]){var k,S,C,L=Math.min(this.yRatio.length+1,x+1);if(this.groupCtx.prevY[y-1]!==void 0&&this.groupCtx.prevY[y-1].length)for(var T=1;T=0?C-u+2*(this.isReversed?u:0):C;break}if(((R=this.groupCtx.prevYVal[y-I])===null||R===void 0?void 0:R[m])>=0){S=this.series[x][m]>=0?C:C+u-2*(this.isReversed?u:0);break}}S===void 0&&(S=p.globals.gridHeight),A=(k=this.groupCtx.prevYF[0])!==null&&k!==void 0&&k.every(function(O){return O===0})&&this.groupCtx.prevYF.slice(1,y).every(function(O){return O.every(function(D){return isNaN(D)})})?h:S}else A=h;r=this.series[x][m]?A-this.series[x][m]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[x][m]/this.yRatio[this.yaxisIndex]:0):A;var H=this.barHelpers.getColumnPaths({barXPosition:l,barWidth:o,y1:A,y2:r,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,seriesGroup:d,realIndex:a.realIndex,i:x,j:m,w:p});return this.barHelpers.barBackground({bc:v,j:m,i:x,x1:l,x2:o,elSeries:g}),s+=n,{pathTo:H.pathTo,pathFrom:H.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,h,x,m),barXPosition:l,x:p.globals.isXNumeric?s-n:s,y:r}}}]),t}(),Ue=function(f){ke(t,ue);var e=Ae(t);function t(){return Y(this,t),e.apply(this,arguments)}return F(t,[{key:"draw",value:function(i,a,s){var r=this,n=this.w,o=new M(this.ctx),h=n.globals.comboCharts?a:n.config.chart.type,c=new ee(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=n.config.plotOptions.bar.horizontal;var d=new V(this.ctx,n);i=d.getLogSeries(i),this.series=i,this.yRatio=d.getLogYRatios(this.yRatio),this.barHelpers.initVariables(i);for(var g=o.group({class:"apexcharts-".concat(h,"-series apexcharts-plot-series")}),p=function(m){r.isBoxPlot=n.config.chart.type==="boxPlot"||n.config.series[m].type==="boxPlot";var v,w,A,l,u=void 0,b=void 0,y=[],k=[],S=n.globals.comboCharts?s[m]:m,C=o.group({class:"apexcharts-series",seriesName:P.escapeString(n.globals.seriesNames[S]),rel:m+1,"data:realIndex":S});r.ctx.series.addCollapsedClassToSeries(C,S),i[m].length>0&&(r.visibleI=r.visibleI+1);var L,T;r.yRatio.length>1&&(r.yaxisIndex=S);var z=r.barHelpers.initialPositions();b=z.y,L=z.barHeight,w=z.yDivision,l=z.zeroW,u=z.x,T=z.barWidth,v=z.xDivision,A=z.zeroH,k.push(u+T/2);for(var I=o.group({class:"apexcharts-datalabels","data:realIndex":S}),X=function(H){var O=r.barHelpers.getStrokeWidth(m,H,S),D=null,G={indexes:{i:m,j:H,realIndex:S},x:u,y:b,strokeWidth:O,elSeries:C};D=r.isHorizontal?r.drawHorizontalBoxPaths(E(E({},G),{},{yDivision:w,barHeight:L,zeroW:l})):r.drawVerticalBoxPaths(E(E({},G),{},{xDivision:v,barWidth:T,zeroH:A})),b=D.y,u=D.x,H>0&&k.push(u+T/2),y.push(b),D.pathTo.forEach(function(N,W){var Z=!r.isBoxPlot&&r.candlestickOptions.wick.useFillColor?D.color[W]:n.globals.stroke.colors[m],K=c.fillPath({seriesNumber:S,dataPointIndex:H,color:D.color[W],value:i[m][H]});r.renderSeries({realIndex:S,pathFill:K,lineFill:Z,j:H,i:m,pathFrom:D.pathFrom,pathTo:N,strokeWidth:O,elSeries:C,x:u,y:b,series:i,barHeight:L,barWidth:T,elDataLabelsWrap:I,visibleSeries:r.visibleI,type:n.config.chart.type})})},R=0;Ru.c&&(x=!1);var k=Math.min(u.o,u.c),S=Math.max(u.o,u.c),C=u.m;c.globals.isXNumeric&&(s=(c.globals.seriesX[l][p]-c.globals.minX)/this.xRatio-n/2);var L=s+n*this.visibleI;this.series[g][p]===void 0||this.series[g][p]===null?(k=o,S=o):(k=o-k/A,S=o-S/A,b=o-u.h/A,y=o-u.l/A,C=o-u.m/A);var T=d.move(L,o),z=d.move(L+n/2,k);return c.globals.previousPaths.length>0&&(z=this.getPreviousPath(l,p,!0)),T=this.isBoxPlot?[d.move(L,k)+d.line(L+n/2,k)+d.line(L+n/2,b)+d.line(L+n/4,b)+d.line(L+n-n/4,b)+d.line(L+n/2,b)+d.line(L+n/2,k)+d.line(L+n,k)+d.line(L+n,C)+d.line(L,C)+d.line(L,k+h/2),d.move(L,C)+d.line(L+n,C)+d.line(L+n,S)+d.line(L+n/2,S)+d.line(L+n/2,y)+d.line(L+n-n/4,y)+d.line(L+n/4,y)+d.line(L+n/2,y)+d.line(L+n/2,S)+d.line(L,S)+d.line(L,C)+"z"]:[d.move(L,S)+d.line(L+n/2,S)+d.line(L+n/2,b)+d.line(L+n/2,S)+d.line(L+n,S)+d.line(L+n,k)+d.line(L+n/2,k)+d.line(L+n/2,y)+d.line(L+n/2,k)+d.line(L,k)+d.line(L,S-h/2)],z+=d.move(L,k),c.globals.isXNumeric||(s+=r),{pathTo:T,pathFrom:z,x:s,y:S,barXPosition:L,color:this.isBoxPlot?w:x?[m]:[v]}}},{key:"drawHorizontalBoxPaths",value:function(i){var a=i.indexes;i.x;var s=i.y,r=i.yDivision,n=i.barHeight,o=i.zeroW,h=i.strokeWidth,c=this.w,d=new M(this.ctx),g=a.i,p=a.j,x=this.boxOptions.colors.lower;this.isBoxPlot&&(x=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var m=this.invertedYRatio,v=a.realIndex,w=this.getOHLCValue(v,p),A=o,l=o,u=Math.min(w.o,w.c),b=Math.max(w.o,w.c),y=w.m;c.globals.isXNumeric&&(s=(c.globals.seriesX[v][p]-c.globals.minX)/this.invertedXRatio-n/2);var k=s+n*this.visibleI;this.series[g][p]===void 0||this.series[g][p]===null?(u=o,b=o):(u=o+u/m,b=o+b/m,A=o+w.h/m,l=o+w.l/m,y=o+w.m/m);var S=d.move(o,k),C=d.move(u,k+n/2);return c.globals.previousPaths.length>0&&(C=this.getPreviousPath(v,p,!0)),S=[d.move(u,k)+d.line(u,k+n/2)+d.line(A,k+n/2)+d.line(A,k+n/2-n/4)+d.line(A,k+n/2+n/4)+d.line(A,k+n/2)+d.line(u,k+n/2)+d.line(u,k+n)+d.line(y,k+n)+d.line(y,k)+d.line(u+h/2,k),d.move(y,k)+d.line(y,k+n)+d.line(b,k+n)+d.line(b,k+n/2)+d.line(l,k+n/2)+d.line(l,k+n-n/4)+d.line(l,k+n/4)+d.line(l,k+n/2)+d.line(b,k+n/2)+d.line(b,k)+d.line(y,k)+"z"],C+=d.move(u,k),c.globals.isXNumeric||(s+=r),{pathTo:S,pathFrom:C,x:b,y:s,barYPosition:k,color:x}}},{key:"getOHLCValue",value:function(i,a){var s=this.w;return{o:this.isBoxPlot?s.globals.seriesCandleH[i][a]:s.globals.seriesCandleO[i][a],h:this.isBoxPlot?s.globals.seriesCandleO[i][a]:s.globals.seriesCandleH[i][a],m:s.globals.seriesCandleM[i][a],l:this.isBoxPlot?s.globals.seriesCandleC[i][a]:s.globals.seriesCandleL[i][a],c:this.isBoxPlot?s.globals.seriesCandleL[i][a]:s.globals.seriesCandleC[i][a]}}}]),t}(),Rt=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"checkColorRange",value:function(){var e=this.w,t=!1,i=e.config.plotOptions[e.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map(function(a,s){a.from<=0&&(t=!0)}),t}},{key:"getShadeColor",value:function(e,t,i,a){var s=this.w,r=1,n=s.config.plotOptions[e].shadeIntensity,o=this.determineColor(e,t,i);s.globals.hasNegs||a?r=s.config.plotOptions[e].reverseNegativeShade?o.percent<0?o.percent/100*(1.25*n):(1-o.percent/100)*(1.25*n):o.percent<=0?1-(1+o.percent/100)*n:(1-o.percent/100)*n:(r=1-o.percent/100,e==="treemap"&&(r=(1-o.percent/100)*(1.25*n)));var h=o.color,c=new P;return s.config.plotOptions[e].enableShades&&(h=this.w.config.theme.mode==="dark"?P.hexToRgba(c.shadeColor(-1*r,o.color),s.config.fill.opacity):P.hexToRgba(c.shadeColor(r,o.color),s.config.fill.opacity)),{color:h,colorProps:o}}},{key:"determineColor",value:function(e,t,i){var a=this.w,s=a.globals.series[t][i],r=a.config.plotOptions[e],n=r.colorScale.inverse?i:t;r.distributed&&a.config.chart.type==="treemap"&&(n=i);var o=a.globals.colors[n],h=null,c=Math.min.apply(Math,J(a.globals.series[t])),d=Math.max.apply(Math,J(a.globals.series[t]));r.distributed||e!=="heatmap"||(c=a.globals.minY,d=a.globals.maxY),r.colorScale.min!==void 0&&(c=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var g=Math.abs(d)+Math.abs(c),p=100*s/(g===0?g-1e-6:g);return r.colorScale.ranges.length>0&&r.colorScale.ranges.map(function(x,m){if(s>=x.from&&s<=x.to){o=x.color,h=x.foreColor?x.foreColor:null,c=x.from,d=x.to;var v=Math.abs(d)+Math.abs(c);p=100*s/(v===0?v-1e-6:v)}}),{color:o,foreColor:h,percent:p}}},{key:"calculateDataLabels",value:function(e){var t=e.text,i=e.x,a=e.y,s=e.i,r=e.j,n=e.colorProps,o=e.fontSize,h=this.w.config.dataLabels,c=new M(this.ctx),d=new de(this.ctx),g=null;if(h.enabled){g=c.group({class:"apexcharts-data-labels"});var p=h.offsetX,x=h.offsetY,m=i+p,v=a+parseFloat(h.style.fontSize)/3+x;d.plotDataLabelsText({x:m,y:v,text:t,i:s,j:r,color:n.foreColor,parent:g,fontSize:o,dataLabelsConfig:h})}return g}},{key:"addListeners",value:function(e){var t=new M(this.ctx);e.node.addEventListener("mouseenter",t.pathMouseEnter.bind(this,e)),e.node.addEventListener("mouseleave",t.pathMouseLeave.bind(this,e)),e.node.addEventListener("mousedown",t.pathMouseDown.bind(this,e))}}]),f}(),Ui=function(){function f(e,t){Y(this,f),this.ctx=e,this.w=e.w,this.xRatio=t.xRatio,this.yRatio=t.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new Rt(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return F(f,[{key:"draw",value:function(e){var t=this.w,i=new M(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(t.globals.cuid,")"));var s=t.globals.gridWidth/t.globals.dataPoints,r=t.globals.gridHeight/t.globals.series.length,n=0,o=!1;this.negRange=this.helpers.checkColorRange();var h=e.slice();t.config.yaxis[0].reversed&&(o=!0,h.reverse());for(var c=o?0:h.length-1;o?c=0;o?c++:c--){var d=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:P.escapeString(t.globals.seriesNames[c]),rel:c+1,"data:realIndex":c});if(this.ctx.series.addCollapsedClassToSeries(d,c),t.config.chart.dropShadow.enabled){var g=t.config.chart.dropShadow;new q(this.ctx).dropShadow(d,g,c)}for(var p=0,x=t.config.plotOptions.heatmap.shadeIntensity,m=0;m-1&&this.pieClicked(g),i.config.dataLabels.enabled){var b=l.x,y=l.y,k=100*x/this.fullAngle+"%";if(x!==0&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?t.endAngle=t.endAngle-(a+n):a+n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(c=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(c)>this.fullAngle&&(c-=this.fullAngle);var d=Math.PI*(c-90)/180,g=i.centerX+r*Math.cos(h),p=i.centerY+r*Math.sin(h),x=i.centerX+r*Math.cos(d),m=i.centerY+r*Math.sin(d),v=P.polarToCartesian(i.centerX,i.centerY,i.donutSize,c),w=P.polarToCartesian(i.centerX,i.centerY,i.donutSize,o),A=s>180?1:0,l=["M",g,p,"A",r,r,0,A,1,x,m];return t=i.chartType==="donut"?[].concat(l,["L",v.x,v.y,"A",i.donutSize,i.donutSize,0,A,0,w.x,w.y,"L",g,p,"z"]).join(" "):i.chartType==="pie"||i.chartType==="polarArea"?[].concat(l,["L",i.centerX,i.centerY,"L",g,p]).join(" "):[].concat(l).join(" "),n.roundPathCorners(t,2*this.strokeWidth)}},{key:"drawPolarElements",value:function(e){var t=this.w,i=new ge(this.ctx),a=new M(this.ctx),s=new Ot(this.ctx),r=a.group(),n=a.group(),o=i.niceScale(0,Math.ceil(this.maxY),t.config.yaxis[0].tickAmount,0,!0),h=o.result.reverse(),c=o.result.length;this.maxY=o.niceMax;for(var d=t.globals.radialSize,g=d/(c-1),p=0;p1&&e.total.show&&(s=e.total.color);var n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,e.value.formatter)(i,r),a||typeof e.total.formatter!="function"||(i=e.total.formatter(r));var h=t===e.total.label;t=e.name.formatter(t,h,r),n!==null&&(n.textContent=t),o!==null&&(o.textContent=i),n!==null&&(n.style.fill=s)}},{key:"printDataLabelsInner",value:function(e,t){var i=this.w,a=e.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(e.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(t,s,a,e);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");r!==null&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(e){var t=this,i=this.w,a=new M(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(s.strokeWidth!==0){for(var r=[],n=360/i.globals.series.length,o=0;o1)n&&!t.total.showAlways?h({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(t,t.total.label,t.total.formatter(s));else if(h({makeSliceOut:!1,printLabel:!0}),!n)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var c=s.globals.selectedDataPoints[0],d=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(c));this.printDataLabelsInner(d,t)}else r&&s.globals.selectedDataPoints.length&&s.globals.selectedDataPoints[0].length===0&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),f}(),qi=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var t=this.w;this.graphics=new M(this.ctx),this.lineColorArr=t.globals.stroke.colors!==void 0?t.globals.stroke.colors:t.globals.colors,this.defaultSize=t.globals.svgHeight0&&(y=t.getPreviousPath(w));for(var k=0;k=10?e.x>0?(i="start",a+=10):e.x<0&&(i="end",a-=10):i="middle",Math.abs(e.y)>=t-10&&(e.y<0?s-=10:e.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(e){for(var t=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(e,10)&&t.globals.previousPaths[a].paths[0]!==void 0&&(i=t.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.dataPointsLen;e=e||[],t=t||[];for(var a=[],s=0;s=360&&(m=360-Math.abs(this.startAngle)-.1);var v=s.drawPath({d:"",stroke:p,strokeWidth:h*parseInt(g.strokeWidth,10)/100,fill:"none",strokeOpacity:g.opacity,classes:"apexcharts-radialbar-area"});if(g.dropShadow.enabled){var w=g.dropShadow;n.dropShadow(v,w)}d.add(v),v.attr("id","apexcharts-radialbarTrack-"+c),this.animatePaths(v,{centerX:i.centerX,centerY:i.centerY,endAngle:m,startAngle:x,size:i.size,i:c,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:a.globals.easing})}return r}},{key:"drawArcs",value:function(i){var a=this.w,s=new M(this.ctx),r=new ee(this.ctx),n=new q(this.ctx),o=s.group(),h=this.getStrokeWidth(i);i.size=i.size-h/2;var c=a.config.plotOptions.radialBar.hollow.background,d=i.size-h*i.series.length-this.margin*i.series.length-h*parseInt(a.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,g=d-a.config.plotOptions.radialBar.hollow.margin;a.config.plotOptions.radialBar.hollow.image!==void 0&&(c=this.drawHollowImage(i,o,d,c));var p=this.drawHollow({size:g,centerX:i.centerX,centerY:i.centerY,fill:c||"transparent"});if(a.config.plotOptions.radialBar.hollow.dropShadow.enabled){var x=a.config.plotOptions.radialBar.hollow.dropShadow;n.dropShadow(p,x)}var m=1;!this.radialDataLabels.total.show&&a.globals.series.length>1&&(m=0);var v=null;this.radialDataLabels.show&&(v=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:d,centerX:i.centerX,centerY:i.centerY,opacity:m})),a.config.plotOptions.radialBar.hollow.position==="back"&&(o.add(p),v&&o.add(v));var w=!1;a.config.plotOptions.radialBar.inverseOrder&&(w=!0);for(var A=w?i.series.length-1:0;w?A>=0:A100?100:i.series[A])/100,S=Math.round(this.totalAngle*k)+this.startAngle,C=void 0;a.globals.dataChanged&&(y=this.startAngle,C=Math.round(this.totalAngle*P.negToZero(a.globals.previousPaths[A])/100)+y),Math.abs(S)+Math.abs(b)>=360&&(S-=.01),Math.abs(C)+Math.abs(y)>=360&&(C-=.01);var L=S-b,T=Array.isArray(a.config.stroke.dashArray)?a.config.stroke.dashArray[A]:a.config.stroke.dashArray,z=s.drawPath({d:"",stroke:u,strokeWidth:h,fill:"none",fillOpacity:a.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+A,strokeDashArray:T});if(M.setAttrs(z.node,{"data:angle":L,"data:value":i.series[A]}),a.config.chart.dropShadow.enabled){var I=a.config.chart.dropShadow;n.dropShadow(z,I,A)}if(n.setSelectionFilter(z,0,A),this.addListeners(z,this.radialDataLabels),l.add(z),z.attr({index:0,j:A}),this.barLabels.enabled){var X=P.polarToCartesian(i.centerX,i.centerY,i.size,b),R=this.barLabels.formatter(a.globals.seriesNames[A],{seriesIndex:A,w:a}),H=["apexcharts-radialbar-label"];this.barLabels.onClick||H.push("apexcharts-no-click");var O=this.barLabels.useSeriesColors?a.globals.colors[A]:a.config.chart.foreColor;O||(O=a.config.chart.foreColor);var D=X.x-this.barLabels.margin,G=X.y,N=s.drawText({x:D,y:G,text:R,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:O,cssClass:H.join(" ")});N.on("click",this.onBarLabelClick),N.attr({rel:A+1}),b!==0&&N.attr({"transform-origin":"".concat(D," ").concat(G),transform:"rotate(".concat(b," 0 0)")}),l.add(N)}var W=0;!this.initialAnim||a.globals.resized||a.globals.dataChanged||(W=a.config.chart.animations.speed),a.globals.dataChanged&&(W=a.config.chart.animations.dynamicAnimation.speed),this.animDur=W/(1.2*i.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(z,{centerX:i.centerX,centerY:i.centerY,endAngle:S,startAngle:b,prevEndAngle:C,prevStartAngle:y,size:i.size,i:A,totalItems:2,animBeginArr:this.animBeginArr,dur:W,shouldSetPrevPaths:!0,easing:a.globals.easing})}return{g:o,elHollow:p,dataLabels:v}}},{key:"drawHollow",value:function(i){var a=new M(this.ctx).drawCircle(2*i.size);return a.attr({class:"apexcharts-radialbar-hollow",cx:i.centerX,cy:i.centerY,r:i.size,fill:i.fill}),a}},{key:"drawHollowImage",value:function(i,a,s,r){var n=this.w,o=new ee(this.ctx),h=P.randomId(),c=n.config.plotOptions.radialBar.hollow.image;if(n.config.plotOptions.radialBar.hollow.imageClipped)o.clippedImgArea({width:s,height:s,image:c,patternID:"pattern".concat(n.globals.cuid).concat(h)}),r="url(#pattern".concat(n.globals.cuid).concat(h,")");else{var d=n.config.plotOptions.radialBar.hollow.imageWidth,g=n.config.plotOptions.radialBar.hollow.imageHeight;if(d===void 0&&g===void 0){var p=n.globals.dom.Paper.image(c).loaded(function(m){this.move(i.centerX-m.width/2+n.config.plotOptions.radialBar.hollow.imageOffsetX,i.centerY-m.height/2+n.config.plotOptions.radialBar.hollow.imageOffsetY)});a.add(p)}else{var x=n.globals.dom.Paper.image(c).loaded(function(m){this.move(i.centerX-d/2+n.config.plotOptions.radialBar.hollow.imageOffsetX,i.centerY-g/2+n.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(d,g)});a.add(x)}}return r}},{key:"getStrokeWidth",value:function(i){var a=this.w;return i.size*(100-parseInt(a.config.plotOptions.radialBar.hollow.size,10))/100/(i.series.length+1)-this.margin}},{key:"onBarLabelClick",value:function(i){var a=parseInt(i.target.getAttribute("rel"),10)-1,s=this.barLabels.onClick,r=this.w;s&&s(r.globals.seriesNames[a],{w:r,seriesIndex:a})}}]),t}(),$i=function(f){ke(t,ue);var e=Ae(t);function t(){return Y(this,t),e.apply(this,arguments)}return F(t,[{key:"draw",value:function(i,a){var s=this.w,r=new M(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=i,this.seriesRangeStart=s.globals.seriesRangeStart,this.seriesRangeEnd=s.globals.seriesRangeEnd,this.barHelpers.initVariables(i);for(var n=r.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),o=0;o0&&(this.visibleI=this.visibleI+1);var w=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=m);var l=this.barHelpers.initialPositions();x=l.y,g=l.zeroW,p=l.x,A=l.barWidth,w=l.barHeight,h=l.xDivision,c=l.yDivision,d=l.zeroH;for(var u=r.group({class:"apexcharts-datalabels","data:realIndex":m}),b=r.group({class:"apexcharts-rangebar-goals-markers"}),y=0;y0});return this.isHorizontal?(r=m.config.plotOptions.bar.rangeBarGroupRows?o+g*u:o+c*this.visibleI+g*u,b>-1&&!m.config.plotOptions.bar.rangeBarOverlap&&(v=m.globals.seriesRange[a][b].overlaps).indexOf(w)>-1&&(r=(c=x.barHeight/v.length)*this.visibleI+g*(100-parseInt(this.barOptions.barHeight,10))/100/2+c*(this.visibleI+v.indexOf(w))+g*u)):(u>-1&&(n=m.config.plotOptions.bar.rangeBarGroupRows?h+p*u:h+d*this.visibleI+p*u),b>-1&&!m.config.plotOptions.bar.rangeBarOverlap&&(v=m.globals.seriesRange[a][b].overlaps).indexOf(w)>-1&&(n=(d=x.barWidth/v.length)*this.visibleI+p*(100-parseInt(this.barOptions.barWidth,10))/100/2+d*(this.visibleI+v.indexOf(w))+p*u)),{barYPosition:r,barXPosition:n,barHeight:c,barWidth:d}}},{key:"drawRangeColumnPaths",value:function(i){var a=i.indexes,s=i.x,r=i.xDivision,n=i.barWidth,o=i.barXPosition,h=i.zeroH,c=this.w,d=a.i,g=a.j,p=this.yRatio[this.yaxisIndex],x=a.realIndex,m=this.getRangeValue(x,g),v=Math.min(m.start,m.end),w=Math.max(m.start,m.end);this.series[d][g]===void 0||this.series[d][g]===null?v=h:(v=h-v/p,w=h-w/p);var A=Math.abs(w-v),l=this.barHelpers.getColumnPaths({barXPosition:o,barWidth:n,y1:v,y2:w,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:a.realIndex,i:x,j:g,w:c});if(c.globals.isXNumeric){var u=this.getBarXForNumericXAxis({x:s,j:g,realIndex:x,barWidth:n});s=u.x,o=u.barXPosition}else s+=r;return{pathTo:l.pathTo,pathFrom:l.pathFrom,barHeight:A,x:s,y:w,goalY:this.barHelpers.getGoalValues("y",null,h,d,g),barXPosition:o}}},{key:"drawRangeBarPaths",value:function(i){var a=i.indexes,s=i.y,r=i.y1,n=i.y2,o=i.yDivision,h=i.barHeight,c=i.barYPosition,d=i.zeroW,g=this.w,p=d+r/this.invertedYRatio,x=d+n/this.invertedYRatio,m=Math.abs(x-p),v=this.barHelpers.getBarpaths({barYPosition:c,barHeight:h,x1:p,x2:x,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:a.realIndex,realIndex:a.realIndex,j:a.j,w:g});return g.globals.isXNumeric||(s+=o),{pathTo:v.pathTo,pathFrom:v.pathFrom,barWidth:m,x,goalX:this.barHelpers.getGoalValues("x",d,null,a.realIndex,a.j),y:s}}},{key:"getRangeValue",value:function(i,a){var s=this.w;return{start:s.globals.seriesRangeStart[i][a],end:s.globals.seriesRangeEnd[i][a]}}}]),t}(),Ji=function(){function f(e){Y(this,f),this.w=e.w,this.lineCtx=e}return F(f,[{key:"sameValueSeriesFix",value:function(e,t){var i=this.w;if((i.config.fill.type==="gradient"||i.config.fill.type[e]==="gradient")&&new V(this.lineCtx.ctx,i).seriesHaveSameValues(e)){var a=t[e].slice();a[a.length-1]=a[a.length-1]+1e-6,t[e]=a}return t}},{key:"calculatePoints",value:function(e){var t=e.series,i=e.realIndex,a=e.x,s=e.y,r=e.i,n=e.j,o=e.prevY,h=this.w,c=[],d=[];if(n===0){var g=this.lineCtx.categoryAxisCorrection+h.config.markers.offsetX;h.globals.isXNumeric&&(g=(h.globals.seriesX[i][0]-h.globals.minX)/this.lineCtx.xRatio+h.config.markers.offsetX),c.push(g),d.push(P.isNumber(t[r][0])?o+h.config.markers.offsetY:null),c.push(a+h.config.markers.offsetX),d.push(P.isNumber(t[r][n+1])?s+h.config.markers.offsetY:null)}else c.push(a+h.config.markers.offsetX),d.push(P.isNumber(t[r][n+1])?s+h.config.markers.offsetY:null);return{x:c,y:d}}},{key:"checkPreviousPaths",value:function(e){for(var t=e.pathFromLine,i=e.pathFromArea,a=e.realIndex,s=this.w,r=0;r0&&parseInt(n.realIndex,10)===parseInt(a,10)&&(n.type==="line"?(this.lineCtx.appendPathFrom=!1,t=s.globals.previousPaths[r].paths[0].d):n.type==="area"&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(t=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:t,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(e){var t,i,a=e.i,s=e.series,r=e.prevY,n=e.lineYPosition,o=this.w,h=o.config.chart.stacked&&!o.globals.comboCharts||o.config.chart.stacked&&o.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((t=this.w.config.series[a])===null||t===void 0?void 0:t.type)==="bar");if(((i=s[a])===null||i===void 0?void 0:i[0])!==void 0)r=(n=h&&a>0?this.lineCtx.prevSeriesY[a-1][0]:this.lineCtx.zeroY)-s[a][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?s[a][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(h&&a>0&&s[a][0]===void 0){for(var c=a-1;c>=0;c--)if(s[c][0]!==null&&s[c][0]!==void 0){r=n=this.lineCtx.prevSeriesY[c][0];break}}return{prevY:r,lineYPosition:n}}}]),f}(),Ki=function(f){for(var e,t,i,a,s=function(c){for(var d=[],g=c[0],p=c[1],x=d[0]=Ze(g,p),m=1,v=c.length-1;m9&&(a=3*i/Math.sqrt(a),s[o]=a*e,s[o+1]=a*t);for(var h=0;h<=r;h++)a=(f[Math.min(r,h+1)][0]-f[Math.max(0,h-1)][0])/(6*(1+s[h]*s[h])),n.push([a||0,s[h]*a||0]);return n},qe=function(f,e){for(var t="",i=0;i1&&Math.abs(a[r-2]-s[n-2])4?(t+="C".concat(a[0],", ").concat(a[1]),t+=", ".concat(a[2],", ").concat(a[3]),t+=", ".concat(a[4],", ").concat(a[5])):r>2&&(t+="S".concat(a[0],", ").concat(a[1]),t+=", ".concat(a[2],", ").concat(a[3]))}return t},wt=function(f){var e=Ki(f),t=f[1],i=f[0],a=[],s=e[1],r=e[0];a.push(i,[i[0]+r[0],i[1]+r[1],t[0]-s[0],t[1]-s[1],t[0],t[1]]);for(var n=2,o=e.length;n0&&(w=(r.globals.seriesX[p][0]-r.globals.minX)/this.xRatio),v.push(w);var A=w,l=this.zeroY,u=this.zeroY;l=this.lineHelpers.determineFirstPrevY({i:g,series:e,prevY:l,lineYPosition:0}).prevY,r.config.stroke.curve==="smooth"&&e[g][0]===null?x.push(null):x.push(l),o==="rangeArea"&&(u=this.lineHelpers.determineFirstPrevY({i:g,series:a,prevY:u,lineYPosition:0}).prevY,m.push(u));var b={type:o,series:e,realIndex:p,i:g,x:w,y:1,pathsFrom:this._calculatePathsFrom({type:o,series:e,i:g,realIndex:p,prevX:A,prevY:l,prevY2:u}),linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:v,yArrj:x,y2Arrj:m,seriesRangeEnd:a},y=this._iterateOverDataPoints(E(E({},b),{},{iterations:o==="rangeArea"?e[g].length-1:void 0,isRangeStart:!0}));if(o==="rangeArea"){var k=this._calculatePathsFrom({series:a,i:g,realIndex:p,prevX:A,prevY:u}),S=this._iterateOverDataPoints(E(E({},b),{},{series:a,pathsFrom:k,iterations:a[g].length-1,isRangeStart:!1}));y.linePaths[0]=S.linePath+y.linePath,y.pathFromLine=S.pathFromLine+y.pathFromLine}this._handlePaths({type:o,realIndex:p,i:g,paths:y}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),d.push(this.elSeries)}if(((s=r.config.series[0])===null||s===void 0?void 0:s.zIndex)!==void 0&&d.sort(function(T,z){return Number(T.node.getAttribute("zIndex"))-Number(z.node.getAttribute("zIndex"))}),r.config.chart.stacked)for(var C=d.length;C>0;C--)h.add(d[C-1]);else for(var L=0;L1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||a.config.plotOptions.area.fillTo==="end")&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",zIndex:a.config.series[i].zIndex!==void 0?a.config.series[i].zIndex:i,seriesName:P.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=e[t].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:t+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(e){var t,i,a,s,r=e.type,n=e.series,o=e.i,h=e.realIndex,c=e.prevX,d=e.prevY,g=e.prevY2,p=this.w,x=new M(this.ctx);if(n[o][0]===null){for(var m=0;m0){var v=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:h});a=v.pathFromLine,s=v.pathFromArea}return{prevX:c,prevY:d,linePath:t,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(e){var t=e.type,i=e.realIndex,a=e.i,s=e.paths,r=this.w,n=new M(this.ctx),o=new ee(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj;var h=r.config.forecastDataPoints;if(h.count>0&&t!=="rangeArea"){var c=r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length-h.count-1],d=n.drawRect(c,0,r.globals.gridWidth,r.globals.gridHeight,0);r.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,r.globals.gridHeight,0);r.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var p={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(t)};if(t==="area")for(var x=o.fillPath({seriesNumber:i}),m=0;m0&&t!=="rangeArea"){var k=n.renderPaths(b);k.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&k.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(k),k.attr("clip-path","url(#forecastMask".concat(r.globals.cuid,")")),y.attr("clip-path","url(#nonForecastMask".concat(r.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(e){var t,i=this,a=e.type,s=e.series,r=e.iterations,n=e.realIndex,o=e.i,h=e.x,c=e.y,d=e.pathsFrom,g=e.linePaths,p=e.areaPaths,x=e.seriesIndex,m=e.lineYPosition,v=e.xArrj,w=e.yArrj,A=e.y2Arrj,l=e.isRangeStart,u=e.seriesRangeEnd,b=this.w,y=new M(this.ctx),k=this.yRatio,S=d.prevY,C=d.linePath,L=d.areaPath,T=d.pathFromLine,z=d.pathFromArea,I=P.isNumber(b.globals.minYArr[n])?b.globals.minYArr[n]:b.globals.minY;r||(r=b.globals.dataPoints>1?b.globals.dataPoints-1:b.globals.dataPoints);for(var X=function(Z,K){return K-Z/k[i.yaxisIndex]+2*(i.isReversed?Z/k[i.yaxisIndex]:0)},R=c,H=b.config.chart.stacked&&!b.globals.comboCharts||b.config.chart.stacked&&b.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((t=this.w.config.series[n])===null||t===void 0?void 0:t.type)==="bar"),O=0;O0&&b.globals.collapsedSeries.length-1){K--;break}return K>=0?K:0}(o-1)][O+1]:m=this.zeroY:m=this.zeroY,D?c=X(I,m):(c=X(s[o][O+1],m),a==="rangeArea"&&(R=X(u[o][O+1],m))),v.push(h),D&&b.config.stroke.curve==="smooth"?w.push(null):w.push(c),A.push(R);var N=this.lineHelpers.calculatePoints({series:s,x:h,y:c,realIndex:n,i:o,j:O,prevY:S}),W=this._createPaths({type:a,series:s,i:o,realIndex:n,j:O,x:h,y:c,y2:R,xArrj:v,yArrj:w,y2Arrj:A,linePath:C,areaPath:L,linePaths:g,areaPaths:p,seriesIndex:x,isRangeStart:l});p=W.areaPaths,g=W.linePaths,L=W.areaPath,C=W.linePath,!this.appendPathFrom||b.config.stroke.curve==="smooth"&&a==="rangeArea"||(T+=y.line(h,this.zeroY),z+=y.line(h,this.zeroY)),this.handleNullDataPoints(s,N,o,O,n),this._handleMarkersAndLabels({type:a,pointsPos:N,i:o,j:O,realIndex:n,isRangeStart:l})}return{yArrj:w,xArrj:v,pathFromArea:z,areaPaths:p,pathFromLine:T,linePaths:g,linePath:C,areaPath:L}}},{key:"_handleMarkersAndLabels",value:function(e){var t=e.type,i=e.pointsPos,a=e.isRangeStart,s=e.i,r=e.j,n=e.realIndex,o=this.w,h=new de(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:n,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{o.globals.series[s].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var c=this.markers.plotChartMarkers(i,n,r+1);c!==null&&this.elPointsMain.add(c)}var d=h.drawDataLabel({type:t,isRangeStart:a,pos:i,i:n,j:r+1});d!==null&&this.elDataLabelsWrap.add(d)}},{key:"_createPaths",value:function(e){var t=e.type,i=e.series,a=e.i,s=e.realIndex,r=e.j,n=e.x,o=e.y,h=e.xArrj,c=e.yArrj,d=e.y2,g=e.y2Arrj,p=e.linePath,x=e.areaPath,m=e.linePaths,v=e.areaPaths,w=e.seriesIndex,A=e.isRangeStart,l=this.w,u=new M(this.ctx),b=l.config.stroke.curve,y=this.areaBottomY;if(Array.isArray(l.config.stroke.curve)&&(b=Array.isArray(w)?l.config.stroke.curve[w[a]]:l.config.stroke.curve[a]),t==="rangeArea"&&(l.globals.hasNullValues||l.config.forecastDataPoints.count>0)&&b==="smooth"&&(b="straight"),b==="smooth"){var k=t==="rangeArea"?h.length===l.globals.dataPoints:r===i[a].length-2,S=h.map(function(R,H){return[h[H],c[H]]}).filter(function(R){return R[1]!==null});if(k&&S.length>1){var C=wt(S);if(p+=qe(C,l.globals.gridWidth),i[a][0]===null?x=p:x+=qe(C,l.globals.gridWidth),t==="rangeArea"&&A){p+=u.line(h[h.length-1],g[g.length-1]);var L=h.slice().reverse(),T=g.slice().reverse(),z=L.map(function(R,H){return[L[H],T[H]]}),I=wt(z);x=p+=qe(I,l.globals.gridWidth)}else x+=u.line(S[S.length-1][0],y)+u.line(S[0][0],y)+u.move(S[0][0],S[0][1])+"z";m.push(p),v.push(x)}}else{if(i[a][r+1]===null){p+=u.move(n,o);var X=l.globals.isXNumeric?(l.globals.seriesX[s][r]-l.globals.minX)/this.xRatio:n-this.xDivision;x=x+u.line(X,y)+u.move(n,o)+"z"}i[a][r]===null&&(p+=u.move(n,o),x+=u.move(n,y)),b==="stepline"?(p=p+u.line(n,null,"H")+u.line(null,o,"V"),x=x+u.line(n,null,"H")+u.line(null,o,"V")):b==="straight"&&(p+=u.line(n,o),x+=u.line(n,o)),r===i[a].length-2&&(x=x+u.line(n,y)+u.move(n,o)+"z",t==="rangeArea"&&A?p=p+u.line(n,d)+u.move(n,d)+"z":(m.push(p),v.push(x)))}return{linePaths:m,areaPaths:v,linePath:p,areaPath:x}}},{key:"handleNullDataPoints",value:function(e,t,i,a,s){var r=this.w;if(e[i][a]===null&&r.config.markers.showNullDataPoints||e[i].length===1){var n=this.markers.plotChartMarkers(t,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);n!==null&&this.elPointsMain.add(n)}}}]),f}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function f(n,o,h,c){this.xoffset=n,this.yoffset=o,this.height=c,this.width=h,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(d){var g,p=[],x=this.xoffset,m=this.yoffset,v=s(d)/this.height,w=s(d)/this.width;if(this.width>=this.height)for(g=0;g=this.height){var p=d/this.height,x=this.width-p;g=new f(this.xoffset+p,this.yoffset,x,this.height)}else{var m=d/this.width,v=this.height-m;g=new f(this.xoffset,this.yoffset+m,this.width,v)}return g}}function e(n,o,h,c,d){c=c===void 0?0:c,d=d===void 0?0:d;var g=t(function(p,x){var m,v=[],w=x/s(p);for(m=0;m=l}(o,g=n[0],d)?(o.push(g),t(n.slice(1),o,h,c)):(p=h.cutArea(s(o),c),c.push(h.getCoordinates(o)),t(n,[],p,c)),c;c.push(h.getCoordinates(o))}function i(n,o){var h=Math.min.apply(Math,n),c=Math.max.apply(Math,n),d=s(n);return Math.max(Math.pow(o,2)*c/Math.pow(d,2),Math.pow(d,2)/(Math.pow(o,2)*h))}function a(n){return n&&n.constructor===Array}function s(n){var o,h=0;for(o=0;or-a&&h.width<=n-s){var c=o.rotateAroundCenter(e.node);e.node.setAttribute("transform","rotate(-90 ".concat(c.x," ").concat(c.y,") translate(").concat(h.height/3,")"))}}},{key:"truncateLabels",value:function(e,t,i,a,s,r){var n=new M(this.ctx),o=n.getTextRects(e,t).width+this.w.config.stroke.width+5>s-i&&r-a>s-i?r-a:s-i,h=n.getTextBasedOnMaxWidth({text:e,maxWidth:o,fontSize:t});return e.length!==h.length&&o/t<5?"":h}},{key:"animateTreemap",value:function(e,t,i,a){var s=new fe(this.ctx);s.animateRect(e,{x:t.x,y:t.y,width:t.width,height:t.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,function(){s.animationCompleted(e)})}}]),f}(),ea=86400,ta=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return F(f,[{key:"calculateTimeScaleTicks",value:function(e,t){var i=this,a=this.w;if(a.globals.allSeriesCollapsed)return a.globals.labels=[],a.globals.timescaleLabels=[],[];var s=new j(this.ctx),r=(t-e)/864e5;this.determineInterval(r),a.globals.disableZoomIn=!1,a.globals.disableZoomOut=!1,r<.00011574074074074075?a.globals.disableZoomIn=!0:r>5e4&&(a.globals.disableZoomOut=!0);var n=s.getTimeUnitsfromTimestamp(e,t,this.utc),o=a.globals.gridWidth/r,h=o/24,c=h/60,d=c/60,g=Math.floor(24*r),p=Math.floor(1440*r),x=Math.floor(r*ea),m=Math.floor(r),v=Math.floor(r/30),w=Math.floor(r/365),A={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},l={firstVal:A,currentMillisecond:A.minMillisecond,currentSecond:A.minSecond,currentMinute:A.minMinute,currentHour:A.minHour,currentMonthDate:A.minDate,currentDate:A.minDate,currentMonth:A.minMonth,currentYear:A.minYear,daysWidthOnXAxis:o,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:x,numberOfMinutes:p,numberOfHours:g,numberOfDays:m,numberOfMonths:v,numberOfYears:w};switch(this.tickInterval){case"years":this.generateYearScale(l);break;case"months":case"half_year":this.generateMonthScale(l);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(l);break;case"hours":this.generateHourScale(l);break;case"minutes_fives":case"minutes":this.generateMinuteScale(l);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(l)}var u=this.timeScaleArray.map(function(b){var y={position:b.position,unit:b.unit,year:b.year,day:b.day?b.day:1,hour:b.hour?b.hour:0,month:b.month+1};return b.unit==="month"?E(E({},y),{},{day:1,value:b.value+1}):b.unit==="day"||b.unit==="hour"?E(E({},y),{},{value:b.value}):b.unit==="minute"?E(E({},y),{},{value:b.value,minute:b.value}):b.unit==="second"?E(E({},y),{},{value:b.value,minute:b.minute,second:b.second}):b});return u.filter(function(b){var y=1,k=Math.ceil(a.globals.gridWidth/120),S=b.value;a.config.xaxis.tickAmount!==void 0&&(k=a.config.xaxis.tickAmount),u.length>k&&(y=Math.floor(u.length/k));var C=!1,L=!1;switch(i.tickInterval){case"years":b.unit==="year"&&(C=!0);break;case"half_year":y=7,b.unit==="year"&&(C=!0);break;case"months":y=1,b.unit==="year"&&(C=!0);break;case"months_fortnight":y=15,b.unit!=="year"&&b.unit!=="month"||(C=!0),S===30&&(L=!0);break;case"months_days":y=10,b.unit==="month"&&(C=!0),S===30&&(L=!0);break;case"week_days":y=8,b.unit==="month"&&(C=!0);break;case"days":y=1,b.unit==="month"&&(C=!0);break;case"hours":b.unit==="day"&&(C=!0);break;case"minutes_fives":case"seconds_fives":S%5!=0&&(L=!0);break;case"seconds_tens":S%10!=0&&(L=!0)}if(i.tickInterval==="hours"||i.tickInterval==="minutes_fives"||i.tickInterval==="seconds_tens"||i.tickInterval==="seconds_fives"){if(!L)return!0}else if((S%y==0||C)&&!L)return!0})}},{key:"recalcDimensionsBasedOnFormat",value:function(e,t){var i=this.w,a=this.formatDates(e),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new Ee(this.ctx).plotCoords()}},{key:"determineInterval",value:function(e){var t=24*e,i=60*t;switch(!0){case e/365>5:this.tickInterval="years";break;case e>800:this.tickInterval="half_year";break;case e>180:this.tickInterval="months";break;case e>90:this.tickInterval="months_fortnight";break;case e>60:this.tickInterval="months_days";break;case e>30:this.tickInterval="week_days";break;case e>2:this.tickInterval="days";break;case t>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(e){var t=e.firstVal,i=e.currentMonth,a=e.currentYear,s=e.daysWidthOnXAxis,r=e.numberOfYears,n=t.minYear,o=0,h=new j(this.ctx),c="year";if(t.minDate>1||t.minMonth>0){var d=h.determineRemainingDaysOfYear(t.minYear,t.minMonth,t.minDate);o=(h.determineDaysOfYear(t.minYear)-d+1)*s,n=t.minYear+1,this.timeScaleArray.push({position:o,value:n,unit:c,year:n,month:P.monthMod(i+1)})}else t.minDate===1&&t.minMonth===0&&this.timeScaleArray.push({position:o,value:n,unit:c,year:a,month:P.monthMod(i+1)});for(var g=n,p=o,x=0;x1){h=(c.determineDaysOfMonths(a+1,t.minYear)-i+1)*r,o=P.monthMod(a+1);var p=s+g,x=P.monthMod(o),m=o;o===0&&(d="year",m=p,x=1,p+=g+=1),this.timeScaleArray.push({position:h,value:m,unit:d,year:p,month:x})}else this.timeScaleArray.push({position:h,value:o,unit:d,year:s,month:P.monthMod(a)});for(var v=o+1,w=h,A=0,l=1;An.determineDaysOfMonths(u+1,b)&&(c=1,o="month",p=u+=1),u},g=(24-t.minHour)*s,p=h,x=d(c,i,a);t.minHour===0&&t.minDate===1?(g=0,p=P.monthMod(t.minMonth),o="month",c=t.minDate):t.minDate!==1&&t.minHour===0&&t.minMinute===0&&(g=0,h=t.minDate,p=h,x=d(c=h,i,a)),this.timeScaleArray.push({position:g,value:p,unit:o,year:this._getYear(a,x,0),month:P.monthMod(x),day:c});for(var m=g,v=0;vo.determineDaysOfMonths(k+1,s)&&(v=1,k+=1),{month:k,date:v}},d=function(y,k){return y>o.determineDaysOfMonths(k+1,s)?k+=1:k},g=60-(t.minMinute+t.minSecond/60),p=g*r,x=t.minHour+1,m=x;g===60&&(p=0,m=x=t.minHour);var v=i;m>=24&&(m=0,v+=1,h="day");var w=c(v,a).month;w=d(v,w),this.timeScaleArray.push({position:p,value:x,unit:h,day:v,hour:m,year:s,month:P.monthMod(w)}),m++;for(var A=p,l=0;l=24&&(m=0,h="day",w=c(v+=1,w).month,w=d(v,w));var u=this._getYear(s,w,0);A=60*r+A;var b=m===0?v:m;this.timeScaleArray.push({position:A,value:b,unit:h,hour:m,day:v,year:u,month:P.monthMod(w)}),m++}}},{key:"generateMinuteScale",value:function(e){for(var t=e.currentMillisecond,i=e.currentSecond,a=e.currentMinute,s=e.currentHour,r=e.currentDate,n=e.currentMonth,o=e.currentYear,h=e.minutesWidthOnXAxis,c=e.secondsWidthOnXAxis,d=e.numberOfMinutes,g=a+1,p=r,x=n,m=o,v=s,w=(60-i-t/1e3)*c,A=0;A=60&&(g=0,(v+=1)===24&&(v=0)),this.timeScaleArray.push({position:w,value:g,unit:"minute",hour:v,minute:g,day:p,year:this._getYear(m,x,0),month:P.monthMod(x)}),w+=h,g++}},{key:"generateSecondScale",value:function(e){for(var t=e.currentMillisecond,i=e.currentSecond,a=e.currentMinute,s=e.currentHour,r=e.currentDate,n=e.currentMonth,o=e.currentYear,h=e.secondsWidthOnXAxis,c=e.numberOfSeconds,d=i+1,g=a,p=r,x=n,m=o,v=s,w=(1e3-t)/1e3*h,A=0;A=60&&(d=0,++g>=60&&(g=0,++v===24&&(v=0))),this.timeScaleArray.push({position:w,value:d,unit:"second",hour:v,minute:g,second:d,day:p,year:this._getYear(m,x,0),month:P.monthMod(x)}),w+=h,d++}},{key:"createRawDateString",value:function(e,t){var i=e.year;return e.month===0&&(e.month=1),i+="-"+("0"+e.month.toString()).slice(-2),e.unit==="day"?i+=e.unit==="day"?"-"+("0"+t).slice(-2):"-01":i+="-"+("0"+(e.day?e.day:"1")).slice(-2),e.unit==="hour"?i+=e.unit==="hour"?"T"+("0"+t).slice(-2):"T00":i+="T"+("0"+(e.hour?e.hour:"0")).slice(-2),e.unit==="minute"?i+=":"+("0"+t).slice(-2):i+=":"+(e.minute?("0"+e.minute).slice(-2):"00"),e.unit==="second"?i+=":"+("0"+t).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(e){var t=this,i=this.w;return e.map(function(a){var s=a.value.toString(),r=new j(t.ctx),n=t.createRawDateString(a,s),o=r.getDate(r.parseDate(n));if(t.utc||(o=r.getDate(r.parseDateWithTimezone(n))),i.config.xaxis.labels.format===void 0){var h="dd MMM",c=i.config.xaxis.labels.datetimeFormatter;a.unit==="year"&&(h=c.year),a.unit==="month"&&(h=c.month),a.unit==="day"&&(h=c.day),a.unit==="hour"&&(h=c.hour),a.unit==="minute"&&(h=c.minute),a.unit==="second"&&(h=c.second),s=r.formatDate(o,h)}else s=r.formatDate(o,i.config.xaxis.labels.format);return{dateString:n,position:a.position,value:s,unit:a.unit,year:a.year,month:a.month}})}},{key:"removeOverlappingTS",value:function(e){var t,i=this,a=new M(this.ctx),s=!1;e.length>0&&e[0].value&&e.every(function(o){return o.value.length===e[0].value.length})&&(s=!0,t=a.getTextRects(e[0].value).width);var r=0,n=e.map(function(o,h){if(h>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var c=s?t:a.getTextRects(e[r].value).width,d=e[r].position;return o.position>d+c+10?(r=h,o):null}return o});return n=n.filter(function(o){return o!==null})}},{key:"_getYear",value:function(e,t,i){return e+Math.floor(t/12)+i}}]),f}(),ia=function(){function f(e,t){Y(this,f),this.ctx=t,this.w=t.w,this.el=e}return F(f,[{key:"setupElements",value:function(){var e=this.w.globals,t=this.w.config,i=t.chart.type;e.axisCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,e.xyCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,e.isBarHorizontal=(t.chart.type==="bar"||t.chart.type==="rangeBar"||t.chart.type==="boxPlot")&&t.plotOptions.bar.horizontal,e.chartClass=".apexcharts"+e.chartID,e.dom.baseEl=this.el,e.dom.elWrap=document.createElement("div"),M.setAttrs(e.dom.elWrap,{id:e.chartClass.substring(1),class:"apexcharts-canvas "+e.chartClass.substring(1)}),this.el.appendChild(e.dom.elWrap),e.dom.Paper=new window.SVG.Doc(e.dom.elWrap),e.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(t.chart.offsetX,", ").concat(t.chart.offsetY,")")}),e.dom.Paper.node.style.background=t.theme.mode!=="dark"||t.chart.background?t.chart.background:"rgba(0, 0, 0, 0.8)",this.setSVGDimensions(),e.dom.elLegendForeign=document.createElementNS(e.SVGNS,"foreignObject"),M.setAttrs(e.dom.elLegendForeign,{x:0,y:0,width:e.svgWidth,height:e.svgHeight}),e.dom.elLegendWrap=document.createElement("div"),e.dom.elLegendWrap.classList.add("apexcharts-legend"),e.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.dom.elLegendForeign.appendChild(e.dom.elLegendWrap),e.dom.Paper.node.appendChild(e.dom.elLegendForeign),e.dom.elGraphical=e.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),e.dom.elDefs=e.dom.Paper.defs(),e.dom.Paper.add(e.dom.elGraphical),e.dom.elGraphical.add(e.dom.elDefs)}},{key:"plotChartType",value:function(e,t){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},n={series:[],i:[]},o={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},p={series:[],i:[]},x={series:[],seriesRangeEnd:[],i:[]};s.series.map(function(k,S){var C=0;e[S].type!==void 0?(e[S].type==="column"||e[S].type==="bar"?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),c.series.push(k),c.i.push(S),C++,i.globals.columnSeries=c.series):e[S].type==="area"?(n.series.push(k),n.i.push(S),C++):e[S].type==="line"?(r.series.push(k),r.i.push(S),C++):e[S].type==="scatter"?(o.series.push(k),o.i.push(S)):e[S].type==="bubble"?(h.series.push(k),h.i.push(S),C++):e[S].type==="candlestick"?(d.series.push(k),d.i.push(S),C++):e[S].type==="boxPlot"?(g.series.push(k),g.i.push(S),C++):e[S].type==="rangeBar"?(p.series.push(k),p.i.push(S),C++):e[S].type==="rangeArea"?(x.series.push(s.seriesRangeStart[S]),x.seriesRangeEnd.push(s.seriesRangeEnd[S]),x.i.push(S),C++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble/candlestick/boxPlot/rangeBar/rangeArea"),C>1&&(s.comboCharts=!0)):(r.series.push(k),r.i.push(S))});var m=new $e(this.ctx,t),v=new Ue(this.ctx,t);this.ctx.pie=new Ht(this.ctx);var w=new Zi(this.ctx);this.ctx.rangeBar=new $i(this.ctx,t);var A=new qi(this.ctx),l=[];if(s.comboCharts){if(n.series.length>0&&l.push(m.draw(n.series,"area",n.i)),c.series.length>0)if(i.config.chart.stacked){var u=new yt(this.ctx,t);l.push(u.draw(c.series,c.i))}else this.ctx.bar=new ue(this.ctx,t),l.push(this.ctx.bar.draw(c.series,c.i));if(x.series.length>0&&l.push(m.draw(x.series,"rangeArea",x.i,x.seriesRangeEnd)),r.series.length>0&&l.push(m.draw(r.series,"line",r.i)),d.series.length>0&&l.push(v.draw(d.series,"candlestick",d.i)),g.series.length>0&&l.push(v.draw(g.series,"boxPlot",g.i)),p.series.length>0&&l.push(this.ctx.rangeBar.draw(p.series,p.i)),o.series.length>0){var b=new $e(this.ctx,t,!0);l.push(b.draw(o.series,"scatter",o.i))}if(h.series.length>0){var y=new $e(this.ctx,t,!0);l.push(y.draw(h.series,"bubble",h.i))}}else switch(a.chart.type){case"line":l=m.draw(s.series,"line");break;case"area":l=m.draw(s.series,"area");break;case"bar":a.chart.stacked?l=new yt(this.ctx,t).draw(s.series):(this.ctx.bar=new ue(this.ctx,t),l=this.ctx.bar.draw(s.series));break;case"candlestick":l=new Ue(this.ctx,t).draw(s.series,"candlestick");break;case"boxPlot":l=new Ue(this.ctx,t).draw(s.series,a.chart.type);break;case"rangeBar":l=this.ctx.rangeBar.draw(s.series);break;case"rangeArea":l=m.draw(s.seriesRangeStart,"rangeArea",void 0,s.seriesRangeEnd);break;case"heatmap":l=new Ui(this.ctx,t).draw(s.series);break;case"treemap":l=new Qi(this.ctx,t).draw(s.series);break;case"pie":case"donut":case"polarArea":l=this.ctx.pie.draw(s.series);break;case"radialBar":l=w.draw(s.series);break;case"radar":l=A.draw(s.series);break;default:l=m.draw(s.series)}return l}},{key:"setSVGDimensions",value:function(){var e=this.w.globals,t=this.w.config;e.svgWidth=t.chart.width,e.svgHeight=t.chart.height;var i=P.getDimensions(this.el),a=t.chart.width.toString().split(/[0-9]+/g).pop();a==="%"?P.isNumber(i[0])&&(i[0].width===0&&(i=P.getDimensions(this.el.parentNode)),e.svgWidth=i[0]*parseInt(t.chart.width,10)/100):a!=="px"&&a!==""||(e.svgWidth=parseInt(t.chart.width,10));var s=t.chart.height.toString().split(/[0-9]+/g).pop();if(e.svgHeight!=="auto"&&e.svgHeight!=="")if(s==="%"){var r=P.getDimensions(this.el.parentNode);e.svgHeight=r[1]*parseInt(t.chart.height,10)/100}else e.svgHeight=parseInt(t.chart.height,10);else e.axisCharts?e.svgHeight=e.svgWidth/1.61:e.svgHeight=e.svgWidth/1.2;if(e.svgWidth<0&&(e.svgWidth=0),e.svgHeight<0&&(e.svgHeight=0),M.setAttrs(e.dom.Paper.node,{width:e.svgWidth,height:e.svgHeight}),s!=="%"){var n=t.chart.sparkline.enabled?0:e.axisCharts?t.chart.parentHeightOffset:0;e.dom.Paper.node.parentNode.parentNode.style.minHeight=e.svgHeight+n+"px"}e.dom.elWrap.style.width=e.svgWidth+"px",e.dom.elWrap.style.height=e.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var e=this.w.globals,t=e.translateY,i={transform:"translate("+e.translateX+", "+t+")"};M.setAttrs(e.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var e=this.w,t=e.globals,i=0,a=e.config.chart.sparkline.enabled?1:15;a+=e.config.grid.padding.bottom,e.config.legend.position!=="top"&&e.config.legend.position!=="bottom"||!e.config.legend.show||e.config.legend.floating||(i=new Xt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=e.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*e.globals.radialSize;if(s&&!e.config.chart.sparkline.enabled&&e.config.plotOptions.radialBar.startAngle!==0){var n=P.getBoundingClientRect(s);r=n.bottom;var o=n.bottom-n.top;r=Math.max(2.05*e.globals.radialSize,o)}var h=r+t.translateY+i+a;t.dom.elLegendForeign&&t.dom.elLegendForeign.setAttribute("height",h),e.config.chart.height&&String(e.config.chart.height).indexOf("%")>0||(t.dom.elWrap.style.height=h+"px",M.setAttrs(t.dom.Paper.node,{height:h}),t.dom.Paper.node.parentNode.parentNode.style.minHeight=h+"px")}},{key:"coreCalculations",value:function(){new et(this.ctx).init()}},{key:"resetGlobals",value:function(){var e=this,t=function(){return e.w.config.series.map(function(s){return[]})},i=new Tt,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=t(),a.seriesYvalues=t()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var e=null,t=this.w;if(t.globals.axisCharts){if(t.config.xaxis.crosshairs.position==="back"&&new tt(this.ctx).drawXCrosshairs(),t.config.yaxis[0].crosshairs.position==="back"&&new tt(this.ctx).drawYCrosshairs(),t.config.xaxis.type==="datetime"&&t.config.xaxis.labels.formatter===void 0){this.ctx.timeScale=new ta(this.ctx);var i=[];isFinite(t.globals.minX)&&isFinite(t.globals.maxX)&&!t.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(t.globals.minX,t.globals.maxX):t.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(t.globals.minY,t.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}e=new V(this.ctx).getCalculatedRatios()}return e}},{key:"updateSourceChart",value:function(e){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:e.w.globals.minX,max:e.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var e=this,t=this.w;if(t.config.chart.brush.enabled&&typeof t.config.chart.events.selection!="function"){var i=Array.isArray(t.config.chart.brush.targets)||[t.config.chart.brush.target];i.forEach(function(a){var s=ApexCharts.getChartByID(a);s.w.globals.brushSource=e.ctx,typeof s.w.config.chart.events.zoomed!="function"&&(s.w.config.chart.events.zoomed=function(){e.updateSourceChart(s)}),typeof s.w.config.chart.events.scrolled!="function"&&(s.w.config.chart.events.scrolled=function(){e.updateSourceChart(s)})}),t.config.chart.events.selection=function(a,s){i.forEach(function(r){var n=ApexCharts.getChartByID(r),o=P.clone(t.config.yaxis);if(t.config.chart.brush.autoScaleYaxis&&n.w.globals.series.length===1){var h=new ge(n);o=h.autoScaleY(n,o,s)}var c=n.w.config.yaxis.reduce(function(d,g,p){return[].concat(J(d),[E(E({},n.w.config.yaxis[p]),{},{min:o[0].min,max:o[0].max})])},[]);n.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:c},!1,!1,!1,!1)})}}}}]),f}(),aa=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"_updateOptions",value:function(e){var t=this,i=arguments.length>1&&arguments[1]!==void 0&&arguments[1],a=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],s=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],r=arguments.length>4&&arguments[4]!==void 0&&arguments[4];return new Promise(function(n){var o=[t.ctx];s&&(o=t.ctx.getSyncedCharts()),t.ctx.w.globals.isExecCalled&&(o=[t.ctx],t.ctx.w.globals.isExecCalled=!1),o.forEach(function(h,c){var d=h.w;if(d.globals.shouldAnimate=a,i||(d.globals.resized=!0,d.globals.dataChanged=!0,a&&h.series.getPreviousPaths()),e&&_(e)==="object"&&(h.config=new ye(e),e=V.extendArrayProps(h.config,e,d),h.w.globals.chartID!==t.ctx.w.globals.chartID&&delete e.series,d.config=P.extend(d.config,e),r&&(d.globals.lastXAxis=e.xaxis?P.clone(e.xaxis):[],d.globals.lastYAxis=e.yaxis?P.clone(e.yaxis):[],d.globals.initialConfig=P.extend({},d.config),d.globals.initialSeries=P.clone(d.config.series),e.series))){for(var g=0;g2&&arguments[2]!==void 0&&arguments[2];return new Promise(function(s){var r,n=i.w;return n.globals.shouldAnimate=t,n.globals.dataChanged=!0,t&&i.ctx.series.getPreviousPaths(),n.globals.axisCharts?((r=e.map(function(o,h){return i._extendSeries(o,h)})).length===0&&(r=[{data:[]}]),n.config.series=r):n.config.series=e.slice(),a&&(n.globals.initialConfig.series=P.clone(n.config.series),n.globals.initialSeries=P.clone(n.config.series)),i.ctx.update().then(function(){s(i.ctx)})})}},{key:"_extendSeries",value:function(e,t){var i=this.w,a=i.config.series[t];return E(E({},i.config.series[t]),{},{name:e.name?e.name:a?.name,color:e.color?e.color:a?.color,type:e.type?e.type:a?.type,group:e.group?e.group:a?.group,data:e.data?e.data:a?.data,zIndex:e.zIndex!==void 0?e.zIndex:t})}},{key:"toggleDataPointSelection",value:function(e,t){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(e,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"'], ").concat(s," circle[j='").concat(t,"'], ").concat(s," rect[j='").concat(t,"']")).members[0]:t===void 0&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"']")).members[0],i.config.chart.type!=="pie"&&i.config.chart.type!=="polarArea"&&i.config.chart.type!=="donut"||this.ctx.pie.pieClicked(e)),a?(new M(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(e){var t=this.w;if(["min","max"].forEach(function(a){e.xaxis[a]!==void 0&&(t.config.xaxis[a]=e.xaxis[a],t.globals.lastXAxis[a]=e.xaxis[a])}),e.xaxis.categories&&e.xaxis.categories.length&&(t.config.xaxis.categories=e.xaxis.categories),t.config.xaxis.convertedCatToNumeric){var i=new ve(e);e=i.convertCatToNumericXaxis(e,this.ctx)}return e}},{key:"forceYAxisUpdate",value:function(e){return e.chart&&e.chart.stacked&&e.chart.stackType==="100%"&&(Array.isArray(e.yaxis)?e.yaxis.forEach(function(t,i){e.yaxis[i].min=0,e.yaxis[i].max=100}):(e.yaxis.min=0,e.yaxis.max=100)),e}},{key:"revertDefaultAxisMinMax",value:function(e){var t=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;e&&e.xaxis&&(a=e.xaxis),e&&e.yaxis&&(s=e.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(n){s[n]!==void 0&&(i.config.yaxis[n].min=s[n].min,i.config.yaxis[n].max=s[n].max)};i.config.yaxis.map(function(n,o){i.globals.zoomed||s[o]!==void 0?r(o):t.ctx.opts.yaxis[o]!==void 0&&(n.min=t.ctx.opts.yaxis[o].min,n.max=t.ctx.opts.yaxis[o].max)})}}]),f}();te=typeof window<"u"?window:void 0,me=function(f,e){var t=(this!==void 0?this:f).SVG=function(l){if(t.supported)return l=new t.Doc(l),t.parser.draw||t.prepare(),l};if(t.ns="http://www.w3.org/2000/svg",t.xmlns="http://www.w3.org/2000/xmlns/",t.xlink="http://www.w3.org/1999/xlink",t.svgjs="http://svgjs.dev",t.supported=!0,!t.supported)return!1;t.did=1e3,t.eid=function(l){return"Svgjs"+c(l)+t.did++},t.create=function(l){var u=e.createElementNS(this.ns,l);return u.setAttribute("id",this.eid(l)),u},t.extend=function(){var l,u;u=(l=[].slice.call(arguments)).pop();for(var b=l.length-1;b>=0;b--)if(l[b])for(var y in u)l[b].prototype[y]=u[y];t.Set&&t.Set.inherit&&t.Set.inherit()},t.invent=function(l){var u=typeof l.create=="function"?l.create:function(){this.constructor.call(this,t.create(l.create))};return l.inherit&&(u.prototype=new l.inherit),l.extend&&t.extend(u,l.extend),l.construct&&t.extend(l.parent||t.Container,l.construct),u},t.adopt=function(l){return l?l.instance?l.instance:((u=l.nodeName=="svg"?l.parentNode instanceof f.SVGElement?new t.Nested:new t.Doc:l.nodeName=="linearGradient"?new t.Gradient("linear"):l.nodeName=="radialGradient"?new t.Gradient("radial"):t[c(l.nodeName)]?new t[c(l.nodeName)]:new t.Element(l)).type=l.nodeName,u.node=l,l.instance=u,u instanceof t.Doc&&u.namespace().defs(),u.setData(JSON.parse(l.getAttribute("svgjs:data"))||{}),u):null;var u},t.prepare=function(){var l=e.getElementsByTagName("body")[0],u=(l?new t.Doc(l):t.adopt(e.documentElement).nested()).size(2,0);t.parser={body:l||e.documentElement,draw:u.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:u.polyline().node,path:u.path().node,native:t.create("svg")}},t.parser={native:t.create("svg")},e.addEventListener("DOMContentLoaded",function(){t.parser.draw||t.prepare()},!1),t.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},t.utils={map:function(l,u){for(var b=l.length,y=[],k=0;k1?1:l,new t.Color({r:~~(this.r+(this.destination.r-this.r)*l),g:~~(this.g+(this.destination.g-this.g)*l),b:~~(this.b+(this.destination.b-this.b)*l)})):this}}),t.Color.test=function(l){return l+="",t.regex.isHex.test(l)||t.regex.isRgb.test(l)},t.Color.isRgb=function(l){return l&&typeof l.r=="number"&&typeof l.g=="number"&&typeof l.b=="number"},t.Color.isColor=function(l){return t.Color.isRgb(l)||t.Color.test(l)},t.Array=function(l,u){(l=(l||[]).valueOf()).length==0&&u&&(l=u.valueOf()),this.value=this.parse(l)},t.extend(t.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(l){return l=l.valueOf(),Array.isArray(l)?l:this.split(l)}}),t.PointArray=function(l,u){t.Array.call(this,l,u||[[0,0]])},t.PointArray.prototype=new t.Array,t.PointArray.prototype.constructor=t.PointArray;for(var i={M:function(l,u,b){return u.x=b.x=l[0],u.y=b.y=l[1],["M",u.x,u.y]},L:function(l,u){return u.x=l[0],u.y=l[1],["L",l[0],l[1]]},H:function(l,u){return u.x=l[0],["H",l[0]]},V:function(l,u){return u.y=l[0],["V",l[0]]},C:function(l,u){return u.x=l[4],u.y=l[5],["C",l[0],l[1],l[2],l[3],l[4],l[5]]},Q:function(l,u){return u.x=l[2],u.y=l[3],["Q",l[0],l[1],l[2],l[3]]},S:function(l,u){return u.x=l[2],u.y=l[3],["S",l[0],l[1],l[2],l[3]]},Z:function(l,u,b){return u.x=b.x,u.y=b.y,["Z"]}},a="mlhvqtcsaz".split(""),s=0,r=a.length;sC);return y},bbox:function(){return t.parser.draw||t.prepare(),t.parser.path.setAttribute("d",this.toString()),t.parser.path.getBBox()}}),t.Number=t.invent({create:function(l,u){this.value=0,this.unit=u||"",typeof l=="number"?this.value=isNaN(l)?0:isFinite(l)?l:l<0?-34e37:34e37:typeof l=="string"?(u=l.match(t.regex.numberAndUnit))&&(this.value=parseFloat(u[1]),u[5]=="%"?this.value/=100:u[5]=="s"&&(this.value*=1e3),this.unit=u[5]):l instanceof t.Number&&(this.value=l.valueOf(),this.unit=l.unit)},extend:{toString:function(){return(this.unit=="%"?~~(1e8*this.value)/1e6:this.unit=="s"?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(l){return l=new t.Number(l),new t.Number(this+l,this.unit||l.unit)},minus:function(l){return l=new t.Number(l),new t.Number(this-l,this.unit||l.unit)},times:function(l){return l=new t.Number(l),new t.Number(this*l,this.unit||l.unit)},divide:function(l){return l=new t.Number(l),new t.Number(this/l,this.unit||l.unit)},to:function(l){var u=new t.Number(this);return typeof l=="string"&&(u.unit=l),u},morph:function(l){return this.destination=new t.Number(l),l.relative&&(this.destination.value+=this.value),this},at:function(l){return this.destination?new t.Number(this.destination).minus(this).times(l).plus(this):this}}}),t.Element=t.invent({create:function(l){this._stroke=t.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=l)&&(this.type=l.nodeName,this.node.instance=this,this._stroke=l.getAttribute("stroke")||this._stroke)},extend:{x:function(l){return this.attr("x",l)},y:function(l){return this.attr("y",l)},cx:function(l){return l==null?this.x()+this.width()/2:this.x(l-this.width()/2)},cy:function(l){return l==null?this.y()+this.height()/2:this.y(l-this.height()/2)},move:function(l,u){return this.x(l).y(u)},center:function(l,u){return this.cx(l).cy(u)},width:function(l){return this.attr("width",l)},height:function(l){return this.attr("height",l)},size:function(l,u){var b=g(this,l,u);return this.width(new t.Number(b.width)).height(new t.Number(b.height))},clone:function(l){this.writeDataToDom();var u=m(this.node.cloneNode(!0));return l?l.add(u):this.after(u),u},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(l){return this.after(l).remove(),l},addTo:function(l){return l.put(this)},putIn:function(l){return l.add(this)},id:function(l){return this.attr("id",l)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return this.style("display")!="none"},toString:function(){return this.attr("id")},classes:function(){var l=this.attr("class");return l==null?[]:l.trim().split(t.regex.delimiter)},hasClass:function(l){return this.classes().indexOf(l)!=-1},addClass:function(l){if(!this.hasClass(l)){var u=this.classes();u.push(l),this.attr("class",u.join(" "))}return this},removeClass:function(l){return this.hasClass(l)&&this.attr("class",this.classes().filter(function(u){return u!=l}).join(" ")),this},toggleClass:function(l){return this.hasClass(l)?this.removeClass(l):this.addClass(l)},reference:function(l){return t.get(this.attr(l))},parent:function(l){var u=this;if(!u.node.parentNode)return null;if(u=t.adopt(u.node.parentNode),!l)return u;for(;u&&u.node instanceof f.SVGElement;){if(typeof l=="string"?u.matches(l):u instanceof l)return u;if(!u.node.parentNode||u.node.parentNode.nodeName=="#document")return null;u=t.adopt(u.node.parentNode)}},doc:function(){return this instanceof t.Doc?this:this.parent(t.Doc)},parents:function(l){var u=[],b=this;do{if(!(b=b.parent(l))||!b.node)break;u.push(b)}while(b.parent);return u},matches:function(l){return function(u,b){return(u.matches||u.matchesSelector||u.msMatchesSelector||u.mozMatchesSelector||u.webkitMatchesSelector||u.oMatchesSelector).call(u,b)}(this.node,l)},native:function(){return this.node},svg:function(l){var u=e.createElement("svg");if(!(l&&this instanceof t.Parent))return u.appendChild(l=e.createElement("svg")),this.writeDataToDom(),l.appendChild(this.node.cloneNode(!0)),u.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");u.innerHTML=""+l.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var b=0,y=u.firstChild.childNodes.length;b":function(l){return-Math.cos(l*Math.PI)/2+.5},">":function(l){return Math.sin(l*Math.PI/2)},"<":function(l){return 1-Math.cos(l*Math.PI/2)}},t.morph=function(l){return function(u,b){return new t.MorphObj(u,b).at(l)}},t.Situation=t.invent({create:function(l){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new t.Number(l.duration).valueOf(),this.delay=new t.Number(l.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=l.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),t.FX=t.invent({create:function(l){this._target=l,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(l,u,b){_(l)==="object"&&(u=l.ease,b=l.delay,l=l.duration);var y=new t.Situation({duration:l||1e3,delay:b||0,ease:t.easing[u||"-"]||u});return this.queue(y),this},target:function(l){return l&&l instanceof t.Element?(this._target=l,this):this._target},timeToAbsPos:function(l){return(l-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(l){return this.situation.duration/this._speed*l+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=f.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){f.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(l){return(typeof l=="function"||l instanceof t.Situation)&&this.situations.push(l),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof t.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var l,u=this.situation;if(u.init)return this;for(var b in u.animations){l=this.target()[b](),Array.isArray(l)||(l=[l]),Array.isArray(u.animations[b])||(u.animations[b]=[u.animations[b]]);for(var y=l.length;y--;)u.animations[b][y]instanceof t.Number&&(l[y]=new t.Number(l[y])),u.animations[b][y]=l[y].morph(u.animations[b][y])}for(var b in u.attrs)u.attrs[b]=new t.MorphObj(this.target().attr(b),u.attrs[b]);for(var b in u.styles)u.styles[b]=new t.MorphObj(this.target().style(b),u.styles[b]);return u.initialTransformation=this.target().matrixify(),u.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(l,u){var b=this.active;return this.active=!1,u&&this.clearQueue(),l&&this.situation&&(!b&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(l){var u=this.last();return this.target().on("finished.fx",function b(y){y.detail.situation==u&&(l.call(this,u),this.off("finished.fx",b))}),this._callStart()},during:function(l){var u=this.last(),b=function(y){y.detail.situation==u&&l.call(this,y.detail.pos,t.morph(y.detail.pos),y.detail.eased,u)};return this.target().off("during.fx",b).on("during.fx",b),this.after(function(){this.off("during.fx",b)}),this._callStart()},afterAll:function(l){var u=function b(y){l.call(this),this.off("allfinished.fx",b)};return this.target().off("allfinished.fx",u).on("allfinished.fx",u),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(l,u,b){return this.last()[b||"animations"][l]=u,this._callStart()},step:function(l){var u,b,y;l||(this.absPos=this.timeToAbsPos(+new Date)),this.situation.loops!==!1?(u=Math.max(this.absPos,0),b=Math.floor(u),this.situation.loops===!0||bthis.lastPos&&S<=k&&(this.situation.once[S].call(this.target(),this.pos,k),delete this.situation.once[S]);return this.active&&this.target().fire("during",{pos:this.pos,eased:k,fx:this,situation:this.situation}),this.situation?(this.eachAt(),this.pos==1&&!this.situation.reversed||this.situation.reversed&&this.pos==0?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=k,this):this},eachAt:function(){var l,u=this,b=this.target(),y=this.situation;for(var k in y.animations)l=[].concat(y.animations[k]).map(function(L){return typeof L!="string"&&L.at?L.at(y.ease(u.pos),u.pos):L}),b[k].apply(b,l);for(var k in y.attrs)l=[k].concat(y.attrs[k]).map(function(T){return typeof T!="string"&&T.at?T.at(y.ease(u.pos),u.pos):T}),b.attr.apply(b,l);for(var k in y.styles)l=[k].concat(y.styles[k]).map(function(T){return typeof T!="string"&&T.at?T.at(y.ease(u.pos),u.pos):T}),b.style.apply(b,l);if(y.transforms.length){l=y.initialTransformation,k=0;for(var S=y.transforms.length;k=0;--b)this[w[b]]=l[w[b]]!=null?l[w[b]]:u[w[b]]},extend:{extract:function(){var l=p(this,0,1);p(this,1,0);var u=180/Math.PI*Math.atan2(l.y,l.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(u*Math.PI/180)+this.f*Math.sin(u*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(u*Math.PI/180)+this.e*Math.sin(-u*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:u,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new t.Matrix(this)}},clone:function(){return new t.Matrix(this)},morph:function(l){return this.destination=new t.Matrix(l),this},multiply:function(l){return new t.Matrix(this.native().multiply(function(u){return u instanceof t.Matrix||(u=new t.Matrix(u)),u}(l).native()))},inverse:function(){return new t.Matrix(this.native().inverse())},translate:function(l,u){return new t.Matrix(this.native().translate(l||0,u||0))},native:function(){for(var l=t.parser.native.createSVGMatrix(),u=w.length-1;u>=0;u--)l[w[u]]=this[w[u]];return l},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:t.Element,construct:{ctm:function(){return new t.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof t.Nested){var l=this.rect(1,1),u=l.node.getScreenCTM();return l.remove(),new t.Matrix(u)}return new t.Matrix(this.node.getScreenCTM())}}}),t.Point=t.invent({create:function(l,u){var b;b=Array.isArray(l)?{x:l[0],y:l[1]}:_(l)==="object"?{x:l.x,y:l.y}:l!=null?{x:l,y:u??l}:{x:0,y:0},this.x=b.x,this.y=b.y},extend:{clone:function(){return new t.Point(this)},morph:function(l,u){return this.destination=new t.Point(l,u),this}}}),t.extend(t.Element,{point:function(l,u){return new t.Point(l,u).transform(this.screenCTM().inverse())}}),t.extend(t.Element,{attr:function(l,u,b){if(l==null){for(l={},b=(u=this.node.attributes).length-1;b>=0;b--)l[u[b].nodeName]=t.regex.isNumber.test(u[b].nodeValue)?parseFloat(u[b].nodeValue):u[b].nodeValue;return l}if(_(l)==="object")for(var y in l)this.attr(y,l[y]);else if(u===null)this.node.removeAttribute(l);else{if(u==null)return(u=this.node.getAttribute(l))==null?t.defaults.attrs[l]:t.regex.isNumber.test(u)?parseFloat(u):u;l=="stroke-width"?this.attr("stroke",parseFloat(u)>0?this._stroke:null):l=="stroke"&&(this._stroke=u),l!="fill"&&l!="stroke"||(t.regex.isImage.test(u)&&(u=this.doc().defs().image(u,0,0)),u instanceof t.Image&&(u=this.doc().defs().pattern(0,0,function(){this.add(u)}))),typeof u=="number"?u=new t.Number(u):t.Color.isColor(u)?u=new t.Color(u):Array.isArray(u)&&(u=new t.Array(u)),l=="leading"?this.leading&&this.leading(u):typeof b=="string"?this.node.setAttributeNS(b,l,u.toString()):this.node.setAttribute(l,u.toString()),!this.rebuild||l!="font-size"&&l!="x"||this.rebuild(l,u)}return this}}),t.extend(t.Element,{transform:function(l,u){var b;return _(l)!=="object"?(b=new t.Matrix(this).extract(),typeof l=="string"?b[l]:b):(b=new t.Matrix(this),u=!!u||!!l.relative,l.a!=null&&(b=u?b.multiply(new t.Matrix(l)):new t.Matrix(l)),this.attr("transform",b))}}),t.extend(t.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(t.regex.transforms).slice(0,-1).map(function(l){var u=l.trim().split("(");return[u[0],u[1].split(t.regex.delimiter).map(function(b){return parseFloat(b)})]}).reduce(function(l,u){return u[0]=="matrix"?l.multiply(x(u[1])):l[u[0]].apply(l,u[1])},new t.Matrix)},toParent:function(l){if(this==l)return this;var u=this.screenCTM(),b=l.screenCTM().inverse();return this.addTo(l).untransform().transform(b.multiply(u)),this},toDoc:function(){return this.toParent(this.doc())}}),t.Transformation=t.invent({create:function(l,u){if(arguments.length>1&&typeof u!="boolean")return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(l))for(var b=0,y=this.arguments.length;b=0},index:function(l){return[].slice.call(this.node.childNodes).indexOf(l.node)},get:function(l){return t.adopt(this.node.childNodes[l])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(l,u){for(var b=this.children(),y=0,k=b.length;y=0;u--)l.childNodes[u]instanceof f.SVGElement&&m(l.childNodes[u]);return t.adopt(l).id(t.eid(l.nodeName))}function v(l){return Math.abs(l)>1e-37?l:0}["fill","stroke"].forEach(function(l){var u={};u[l]=function(b){if(b===void 0)return this;if(typeof b=="string"||t.Color.isRgb(b)||b&&typeof b.fill=="function")this.attr(l,b);else for(var y=n[l].length-1;y>=0;y--)b[n[l][y]]!=null&&this.attr(n.prefix(l,n[l][y]),b[n[l][y]]);return this},t.extend(t.Element,t.FX,u)}),t.extend(t.Element,t.FX,{translate:function(l,u){return this.transform({x:l,y:u})},matrix:function(l){return this.attr("transform",new t.Matrix(arguments.length==6?[].slice.call(arguments):l))},opacity:function(l){return this.attr("opacity",l)},dx:function(l){return this.x(new t.Number(l).plus(this instanceof t.FX?0:this.x()),!0)},dy:function(l){return this.y(new t.Number(l).plus(this instanceof t.FX?0:this.y()),!0)}}),t.extend(t.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(l){return this.node.getPointAtLength(l)}}),t.Set=t.invent({create:function(l){Array.isArray(l)?this.members=l:this.clear()},extend:{add:function(){for(var l=[].slice.call(arguments),u=0,b=l.length;u-1&&this.members.splice(u,1),this},each:function(l){for(var u=0,b=this.members.length;u=0},index:function(l){return this.members.indexOf(l)},get:function(l){return this.members[l]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(l){return new t.Set(l)}}}),t.FX.Set=t.invent({create:function(l){this.set=l}}),t.Set.inherit=function(){var l=[];for(var u in t.Shape.prototype)typeof t.Shape.prototype[u]=="function"&&typeof t.Set.prototype[u]!="function"&&l.push(u);for(var u in l.forEach(function(y){t.Set.prototype[y]=function(){for(var k=0,S=this.members.length;k=0;l--)delete this.memory()[arguments[l]];return this},memory:function(){return this._memory||(this._memory={})}}),t.get=function(l){var u=e.getElementById(function(b){var y=(b||"").toString().match(t.regex.reference);if(y)return y[1]}(l)||l);return t.adopt(u)},t.select=function(l,u){return new t.Set(t.utils.map((u||e).querySelectorAll(l),function(b){return t.adopt(b)}))},t.extend(t.Parent,{select:function(l){return t.select(l,this.node)}});var w="abcdef".split("");if(typeof f.CustomEvent!="function"){var A=function(l,u){u=u||{bubbles:!1,cancelable:!1,detail:void 0};var b=e.createEvent("CustomEvent");return b.initCustomEvent(l,u.bubbles,u.cancelable,u.detail),b};A.prototype=f.Event.prototype,t.CustomEvent=A}else t.CustomEvent=f.CustomEvent;return t},typeof define=="function"&&define.amd?define(function(){return me(te,te.document)}):(typeof it>"u"?"undefined":_(it))==="object"&&typeof Ye<"u"?Ye.exports=te.document?me(te,te.document):function(f){return me(f,f.document)}:te.SVG=me(te,te.document),function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(r,n){return this.add(r,n),!r.attr("in")&&this.autoSetIn&&r.attr("in",this.source),r.attr("result")||r.attr("result",r),r},blend:function(r,n,o){return this.put(new SVG.BlendEffect(r,n,o))},colorMatrix:function(r,n){return this.put(new SVG.ColorMatrixEffect(r,n))},convolveMatrix:function(r){return this.put(new SVG.ConvolveMatrixEffect(r))},componentTransfer:function(r){return this.put(new SVG.ComponentTransferEffect(r))},composite:function(r,n,o){return this.put(new SVG.CompositeEffect(r,n,o))},flood:function(r,n){return this.put(new SVG.FloodEffect(r,n))},offset:function(r,n){return this.put(new SVG.OffsetEffect(r,n))},image:function(r){return this.put(new SVG.ImageEffect(r))},merge:function(){var r=[void 0];for(var n in arguments)r.push(arguments[n]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,r)))},gaussianBlur:function(r,n){return this.put(new SVG.GaussianBlurEffect(r,n))},morphology:function(r,n){return this.put(new SVG.MorphologyEffect(r,n))},diffuseLighting:function(r,n,o){return this.put(new SVG.DiffuseLightingEffect(r,n,o))},displacementMap:function(r,n,o,h,c){return this.put(new SVG.DisplacementMapEffect(r,n,o,h,c))},specularLighting:function(r,n,o,h){return this.put(new SVG.SpecularLightingEffect(r,n,o,h))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(r,n,o,h,c){return this.put(new SVG.TurbulenceEffect(r,n,o,h,c))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(r){var n=this.put(new SVG.Filter);return typeof r=="function"&&r.call(n,n),n}}),SVG.extend(SVG.Container,{filter:function(r){return this.defs().filter(r)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(r){return this.filterer=r instanceof SVG.Element?r:this.doc().filter(r),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(r){return this.filterer&&r===!0&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(r){return r==null?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",r)},result:function(r){return r==null?this.attr("result"):this.attr("result",r)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(r){return r==null?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",r)},result:function(r){return r==null?this.attr("result"):this.attr("result",r)},toString:function(){return this.result()}}});var f={blend:function(r,n){return this.parent()&&this.parent().blend(this,r,n)},colorMatrix:function(r,n){return this.parent()&&this.parent().colorMatrix(r,n).in(this)},convolveMatrix:function(r){return this.parent()&&this.parent().convolveMatrix(r).in(this)},componentTransfer:function(r){return this.parent()&&this.parent().componentTransfer(r).in(this)},composite:function(r,n){return this.parent()&&this.parent().composite(this,r,n)},flood:function(r,n){return this.parent()&&this.parent().flood(r,n)},offset:function(r,n){return this.parent()&&this.parent().offset(r,n).in(this)},image:function(r){return this.parent()&&this.parent().image(r)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(r,n){return this.parent()&&this.parent().gaussianBlur(r,n).in(this)},morphology:function(r,n){return this.parent()&&this.parent().morphology(r,n).in(this)},diffuseLighting:function(r,n,o){return this.parent()&&this.parent().diffuseLighting(r,n,o).in(this)},displacementMap:function(r,n,o,h){return this.parent()&&this.parent().displacementMap(this,r,n,o,h)},specularLighting:function(r,n,o,h){return this.parent()&&this.parent().specularLighting(r,n,o,h).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(r,n,o,h,c){return this.parent()&&this.parent().turbulence(r,n,o,h,c).in(this)}};SVG.extend(SVG.Effect,f),SVG.extend(SVG.ParentEffect,f),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(r){this.attr("in",r)}}});var e={blend:function(r,n,o){this.attr({in:r,in2:n,mode:o||"normal"})},colorMatrix:function(r,n){r=="matrix"&&(n=a(n)),this.attr({type:r,values:n===void 0?null:n})},convolveMatrix:function(r){r=a(r),this.attr({order:Math.sqrt(r.split(" ").length),kernelMatrix:r})},composite:function(r,n,o){this.attr({in:r,in2:n,operator:o})},flood:function(r,n){this.attr("flood-color",r),n!=null&&this.attr("flood-opacity",n)},offset:function(r,n){this.attr({dx:r,dy:n})},image:function(r){this.attr("href",r,SVG.xlink)},displacementMap:function(r,n,o,h,c){this.attr({in:r,in2:n,scale:o,xChannelSelector:h,yChannelSelector:c})},gaussianBlur:function(r,n){r!=null||n!=null?this.attr("stdDeviation",function(o){if(!Array.isArray(o))return o;for(var h=0,c=o.length,d=[];h1&&(G*=c=Math.sqrt(c),N*=c),d=new SVG.Matrix().rotate(W).scale(1/G,1/N).rotate(-W),$=$.transform(d),U=U.transform(d),g=[U.x-$.x,U.y-$.y],x=g[0]*g[0]+g[1]*g[1],p=Math.sqrt(x),g[0]/=p,g[1]/=p,m=x<4?Math.sqrt(1-x/4):0,Z===K&&(m*=-1),v=new SVG.Point((U.x+$.x)/2+m*-g[1],(U.y+$.y)/2+m*g[0]),w=new SVG.Point($.x-v.x,$.y-v.y),A=new SVG.Point(U.x-v.x,U.y-v.y),l=Math.acos(w.x/Math.sqrt(w.x*w.x+w.y*w.y)),w.y<0&&(l*=-1),u=Math.acos(A.x/Math.sqrt(A.x*A.x+A.y*A.y)),A.y<0&&(u*=-1),K&&l>u&&(u+=2*Math.PI),!K&&lr.maxX-t.width&&(n=(a=r.maxX-t.width)-this.startPoints.box.x),r.minY!=null&&sr.maxY-t.height&&(o=(s=r.maxY-t.height)-this.startPoints.box.y),r.snapToGrid!=null&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,n-=n%r.snapToGrid,o-=o%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:n,y:o},!0):this.el.move(a,s));return i},f.prototype.end=function(e){var t=this.drag(e);this.el.fire("dragend",{event:e,p:t,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,t){typeof e!="function"&&typeof e!="object"||(t=e,e=!0);var i=this.remember("_draggable")||new f(this);return(e=e===void 0||e)?i.init(t||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function f(e){this.el=e,e.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,i,a){var s=typeof t!="string"?t:i[t];return a?s/2:s},this.pointCoords=function(t,i){var a=this.pointsList[t];return{x:this.pointCoord(a[0],i,t==="t"||t==="b"),y:this.pointCoord(a[1],i,t==="r"||t==="l")}}}f.prototype.init=function(e,t){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],t[s]!==void 0&&(this.options[s]=t[s]);var r=["points","pointsExclude"];for(var s in r){var n=this.options[r[s]];typeof n=="string"?n=n.length>0?n.split(/\s*,\s*/i):[]:typeof n=="boolean"&&r[s]==="points"&&(n=n?a:[]),this.options[r[s]]=n}this.options.points=[a,this.options.points].reduce(function(o,h){return o.filter(function(c){return h.indexOf(c)>-1})}),this.options.points=[this.options.points,this.options.pointsExclude].reduce(function(o,h){return o.filter(function(c){return h.indexOf(c)<0})}),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&["line","polyline","polygon"].indexOf(this.el.type)!==-1?this.selectPoints(e):this.selectRect(e),this.observe(),this.cleanup()},f.prototype.selectPoints=function(e){return this.pointSelection.isSelected=e,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},f.prototype.getPointArray=function(){var e=this.el.bbox();return this.el.array().valueOf().map(function(t){return[t[0]-e.x,t[1]-e.y]})},f.prototype.drawPoints=function(){for(var e=this,t=this.getPointArray(),i=0,a=t.length;i0&&this.parameters.box.height-n[1]>0){if(this.parameters.type==="text")return this.el.move(this.parameters.box.x+n[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-n[0]);n=this.checkAspectRatio(n),this.el.move(this.parameters.box.x+n[0],this.parameters.box.y+n[1]).size(this.parameters.box.width-n[0],this.parameters.box.height-n[1])}};break;case"rt":this.calc=function(s,r){var n=this.snapToGrid(s,r,2);if(this.parameters.box.width+n[0]>0&&this.parameters.box.height-n[1]>0){if(this.parameters.type==="text")return this.el.move(this.parameters.box.x-n[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+n[0]);n=this.checkAspectRatio(n,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+n[1]).size(this.parameters.box.width+n[0],this.parameters.box.height-n[1])}};break;case"rb":this.calc=function(s,r){var n=this.snapToGrid(s,r,0);if(this.parameters.box.width+n[0]>0&&this.parameters.box.height+n[1]>0){if(this.parameters.type==="text")return this.el.move(this.parameters.box.x-n[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+n[0]);n=this.checkAspectRatio(n),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+n[0],this.parameters.box.height+n[1])}};break;case"lb":this.calc=function(s,r){var n=this.snapToGrid(s,r,1);if(this.parameters.box.width-n[0]>0&&this.parameters.box.height+n[1]>0){if(this.parameters.type==="text")return this.el.move(this.parameters.box.x+n[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-n[0]);n=this.checkAspectRatio(n,!0),this.el.move(this.parameters.box.x+n[0],this.parameters.box.y).size(this.parameters.box.width-n[0],this.parameters.box.height+n[1])}};break;case"t":this.calc=function(s,r){var n=this.snapToGrid(s,r,2);if(this.parameters.box.height-n[1]>0){if(this.parameters.type==="text")return;this.el.move(this.parameters.box.x,this.parameters.box.y+n[1]).height(this.parameters.box.height-n[1])}};break;case"r":this.calc=function(s,r){var n=this.snapToGrid(s,r,0);if(this.parameters.box.width+n[0]>0){if(this.parameters.type==="text")return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+n[0])}};break;case"b":this.calc=function(s,r){var n=this.snapToGrid(s,r,0);if(this.parameters.box.height+n[1]>0){if(this.parameters.type==="text")return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+n[1])}};break;case"l":this.calc=function(s,r){var n=this.snapToGrid(s,r,1);if(this.parameters.box.width-n[0]>0){if(this.parameters.type==="text")return;this.el.move(this.parameters.box.x+n[0],this.parameters.box.y).width(this.parameters.box.width-n[0])}};break;case"rot":this.calc=function(s,r){var n=s+this.parameters.p.x,o=r+this.parameters.p.y,h=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),c=Math.atan2(o-this.parameters.box.y-this.parameters.box.height/2,n-this.parameters.box.x-this.parameters.box.width/2),d=this.parameters.rotation+180*(c-h)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(d-d%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(s,r){var n=this.snapToGrid(s,r,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),o=this.el.array().valueOf();o[this.parameters.i][0]=this.parameters.pointCoords[0]+n[0],o[this.parameters.i][1]=this.parameters.pointCoords[1]+n[1],this.el.plot(o)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:e}),SVG.on(window,"touchmove.resize",function(s){t.update(s||window.event)}),SVG.on(window,"touchend.resize",function(){t.done()}),SVG.on(window,"mousemove.resize",function(s){t.update(s||window.event)}),SVG.on(window,"mouseup.resize",function(){t.done()})},f.prototype.update=function(e){if(e){var t=this._extractPosition(e),i=this.transformPoint(t.x,t.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:e})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},f.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},f.prototype.snapToGrid=function(e,t,i,a){var s;return a!==void 0?s=[(i+e)%this.options.snapToGrid,(a+t)%this.options.snapToGrid]:(i=i??3,s=[(this.parameters.box.x+e+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+t+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),e<0&&(s[0]-=this.options.snapToGrid),t<0&&(s[1]-=this.options.snapToGrid),e-=Math.abs(s[0])n.maxX&&(e=n.maxX-s),n.minY!==void 0&&r+tn.maxY&&(t=n.maxY-r),[e,t]},f.prototype.checkAspectRatio=function(e,t){if(!this.options.saveAspectRatio)return e;var i=e.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+e[0],r=this.parameters.box.height-e[1],n=s/r;return na&&(i[0]=this.parameters.box.width-r*a,t&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new f(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),window.Apex===void 0&&(window.Apex={});var kt=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","isSeriesHidden","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new fe(this.ctx),this.ctx.axes=new Mi(this.ctx),this.ctx.core=new ia(this.ctx.el,this.ctx),this.ctx.config=new ye({}),this.ctx.data=new zt(this.ctx),this.ctx.grid=new Mt(this.ctx),this.ctx.graphics=new M(this.ctx),this.ctx.coreUtils=new V(this.ctx),this.ctx.crosshairs=new tt(this.ctx),this.ctx.events=new Ii(this.ctx),this.ctx.exports=new Xe(this.ctx),this.ctx.localization=new zi(this.ctx),this.ctx.options=new re,this.ctx.responsive=new Xi(this.ctx),this.ctx.series=new Q(this.ctx),this.ctx.theme=new Ei(this.ctx),this.ctx.formatters=new Se(this.ctx),this.ctx.titleSubtitle=new Yi(this.ctx),this.ctx.legend=new Xt(this.ctx),this.ctx.toolbar=new Et(this.ctx),this.ctx.tooltip=new vt(this.ctx),this.ctx.dimensions=new Ee(this.ctx),this.ctx.updateHelpers=new aa(this.ctx),this.ctx.zoomPanSelection=new Ni(this.ctx),this.ctx.w.globals.tooltip=new vt(this.ctx)}}]),f}(),At=function(){function f(e){Y(this,f),this.ctx=e,this.w=e.w}return F(f,[{key:"clear",value:function(e){var t=e.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:t})}},{key:"killSVG",value:function(e){e.each(function(t,i){this.removeClass("*"),this.off(),this.stop()},!0),e.ungroup(),e.clear()}},{key:"clearDomElements",value:function(e){var t=this,i=e.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach(function(n){s.removeEventListener(n,t.ctx.events.documentEvent)});var r=this.w.globals.dom;if(this.ctx.el!==null)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),f}(),Je=new WeakMap,sa=function(){function f(e,t){Y(this,f),this.opts=t,this.ctx=this,this.w=new Ti(t).init(),this.el=e,this.w.globals.cuid=P.randomId(),this.w.globals.chartID=this.w.config.chart.id?P.escapeString(this.w.config.chart.id):this.w.globals.cuid,new kt(this).initModules(),this.create=P.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return F(f,[{key:"render",value:function(){var e=this;return new Promise(function(t,i){if(e.el!==null){Apex._chartInstances===void 0&&(Apex._chartInstances=[]),e.w.config.chart.id&&Apex._chartInstances.push({id:e.w.globals.chartID,group:e.w.config.chart.group,chart:e}),e.setLocale(e.w.config.chart.defaultLocale);var a=e.w.config.chart.events.beforeMount;if(typeof a=="function"&&a(e,e.w),e.events.fireEvent("beforeMount",[e,e.w]),window.addEventListener("resize",e.windowResizeHandler),function(g,p){var x=!1;if(g.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var m=g.getBoundingClientRect();g.style.display!=="none"&&m.width!==0||(x=!0)}var v=new ResizeObserver(function(w){x&&p.call(g,w),x=!0});g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(g.children).forEach(function(w){return v.observe(w)}):v.observe(g),Je.set(p,v)}(e.el.parentNode,e.parentResizeHandler),!e.css){var s=e.el.getRootNode&&e.el.getRootNode(),r=P.is("ShadowRoot",s),n=e.el.ownerDocument,o=n.getElementById("apexcharts-css");if(r||!o){var h;e.css=document.createElement("style"),e.css.id="apexcharts-css",e.css.textContent=`@keyframes opaque { + 0% { + opacity: 0 + } + + to { + opacity: 1 + } +} + +@keyframes resizeanim { + 0%,to { + opacity: 0 + } +} + +.apexcharts-canvas { + position: relative; + user-select: none +} + +.apexcharts-canvas ::-webkit-scrollbar { + -webkit-appearance: none; + width: 6px +} + +.apexcharts-canvas ::-webkit-scrollbar-thumb { + border-radius: 4px; + background-color: rgba(0,0,0,.5); + box-shadow: 0 0 1px rgba(255,255,255,.5); + -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5) +} + +.apexcharts-inner { + position: relative +} + +.apexcharts-text tspan { + font-family: inherit +} + +.legend-mouseover-inactive { + transition: .15s ease all; + opacity: .2 +} + +.apexcharts-legend-text { + padding-left: 15px; + margin-left: -15px; +} + +.apexcharts-series-collapsed { + opacity: 0 +} + +.apexcharts-tooltip { + border-radius: 5px; + box-shadow: 2px 2px 6px -4px #999; + cursor: default; + font-size: 14px; + left: 62px; + opacity: 0; + pointer-events: none; + position: absolute; + top: 20px; + display: flex; + flex-direction: column; + overflow: hidden; + white-space: nowrap; + z-index: 12; + transition: .15s ease all +} + +.apexcharts-tooltip.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-tooltip.apexcharts-theme-light { + border: 1px solid #e3e3e3; + background: rgba(255,255,255,.96) +} + +.apexcharts-tooltip.apexcharts-theme-dark { + color: #fff; + background: rgba(30,30,30,.8) +} + +.apexcharts-tooltip * { + font-family: inherit +} + +.apexcharts-tooltip-title { + padding: 6px; + font-size: 15px; + margin-bottom: 4px +} + +.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { + background: #eceff1; + border-bottom: 1px solid #ddd +} + +.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title { + background: rgba(0,0,0,.7); + border-bottom: 1px solid #333 +} + +.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value { + display: inline-block; + margin-left: 5px; + font-weight: 600 +} + +.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty { + display: none +} + +.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value { + padding: 6px 0 5px +} + +.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value { + display: flex +} + +.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) { + margin-top: -6px +} + +.apexcharts-tooltip-marker { + width: 12px; + height: 12px; + position: relative; + top: 0; + margin-right: 10px; + border-radius: 50% +} + +.apexcharts-tooltip-series-group { + padding: 0 10px; + display: none; + text-align: left; + justify-content: left; + align-items: center +} + +.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker { + opacity: 1 +} + +.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child { + padding-bottom: 4px +} + +.apexcharts-tooltip-series-group-hidden { + opacity: 0; + height: 0; + line-height: 0; + padding: 0!important +} + +.apexcharts-tooltip-y-group { + padding: 6px 0 5px +} + +.apexcharts-custom-tooltip,.apexcharts-tooltip-box { + padding: 4px 8px +} + +.apexcharts-tooltip-boxPlot { + display: flex; + flex-direction: column-reverse +} + +.apexcharts-tooltip-box>div { + margin: 4px 0 +} + +.apexcharts-tooltip-box span.value { + font-weight: 700 +} + +.apexcharts-tooltip-rangebar { + padding: 5px 8px +} + +.apexcharts-tooltip-rangebar .category { + font-weight: 600; + color: #777 +} + +.apexcharts-tooltip-rangebar .series-name { + font-weight: 700; + display: block; + margin-bottom: 5px +} + +.apexcharts-xaxistooltip,.apexcharts-yaxistooltip { + opacity: 0; + pointer-events: none; + color: #373d3f; + font-size: 13px; + text-align: center; + border-radius: 2px; + position: absolute; + z-index: 10; + background: #eceff1; + border: 1px solid #90a4ae +} + +.apexcharts-xaxistooltip { + padding: 9px 10px; + transition: .15s ease all +} + +.apexcharts-xaxistooltip.apexcharts-theme-dark { + background: rgba(0,0,0,.7); + border: 1px solid rgba(0,0,0,.5); + color: #fff +} + +.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before { + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none +} + +.apexcharts-xaxistooltip:after { + border-color: transparent; + border-width: 6px; + margin-left: -6px +} + +.apexcharts-xaxistooltip:before { + border-color: transparent; + border-width: 7px; + margin-left: -7px +} + +.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before { + bottom: 100% +} + +.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before { + top: 100% +} + +.apexcharts-xaxistooltip-bottom:after { + border-bottom-color: #eceff1 +} + +.apexcharts-xaxistooltip-bottom:before { + border-bottom-color: #90a4ae +} + +.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before { + border-bottom-color: rgba(0,0,0,.5) +} + +.apexcharts-xaxistooltip-top:after { + border-top-color: #eceff1 +} + +.apexcharts-xaxistooltip-top:before { + border-top-color: #90a4ae +} + +.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before { + border-top-color: rgba(0,0,0,.5) +} + +.apexcharts-xaxistooltip.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-yaxistooltip { + padding: 4px 10px +} + +.apexcharts-yaxistooltip.apexcharts-theme-dark { + background: rgba(0,0,0,.7); + border: 1px solid rgba(0,0,0,.5); + color: #fff +} + +.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before { + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none +} + +.apexcharts-yaxistooltip:after { + border-color: transparent; + border-width: 6px; + margin-top: -6px +} + +.apexcharts-yaxistooltip:before { + border-color: transparent; + border-width: 7px; + margin-top: -7px +} + +.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before { + left: 100% +} + +.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before { + right: 100% +} + +.apexcharts-yaxistooltip-left:after { + border-left-color: #eceff1 +} + +.apexcharts-yaxistooltip-left:before { + border-left-color: #90a4ae +} + +.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before { + border-left-color: rgba(0,0,0,.5) +} + +.apexcharts-yaxistooltip-right:after { + border-right-color: #eceff1 +} + +.apexcharts-yaxistooltip-right:before { + border-right-color: #90a4ae +} + +.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before { + border-right-color: rgba(0,0,0,.5) +} + +.apexcharts-yaxistooltip.apexcharts-active { + opacity: 1 +} + +.apexcharts-yaxistooltip-hidden { + display: none +} + +.apexcharts-xcrosshairs,.apexcharts-ycrosshairs { + pointer-events: none; + opacity: 0; + transition: .15s ease all +} + +.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-ycrosshairs-hidden { + opacity: 0 +} + +.apexcharts-selection-rect { + cursor: move +} + +.svg_select_boundingRect,.svg_select_points_rot { + pointer-events: none; + opacity: 0; + visibility: hidden +} + +.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot { + opacity: 0; + visibility: hidden +} + +.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r { + cursor: ew-resize; + opacity: 1; + visibility: visible +} + +.svg_select_points { + fill: #efefef; + stroke: #333; + rx: 2 +} + +.apexcharts-svg.apexcharts-zoomable.hovering-zoom { + cursor: crosshair +} + +.apexcharts-svg.apexcharts-zoomable.hovering-pan { + cursor: move +} + +.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon { + cursor: pointer; + width: 20px; + height: 20px; + line-height: 24px; + color: #6e8192; + text-align: center +} + +.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg { + fill: #6e8192 +} + +.apexcharts-selection-icon svg { + fill: #444; + transform: scale(.76) +} + +.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg { + fill: #f3f4f5 +} + +.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg { + fill: #008ffb +} + +.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg { + fill: #333 +} + +.apexcharts-menu-icon,.apexcharts-selection-icon { + position: relative +} + +.apexcharts-reset-icon { + margin-left: 5px +} + +.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon { + transform: scale(.85) +} + +.apexcharts-zoomin-icon,.apexcharts-zoomout-icon { + transform: scale(.7) +} + +.apexcharts-zoomout-icon { + margin-right: 3px +} + +.apexcharts-pan-icon { + transform: scale(.62); + position: relative; + left: 1px; + top: 0 +} + +.apexcharts-pan-icon svg { + fill: #fff; + stroke: #6e8192; + stroke-width: 2 +} + +.apexcharts-pan-icon.apexcharts-selected svg { + stroke: #008ffb +} + +.apexcharts-pan-icon:not(.apexcharts-selected):hover svg { + stroke: #333 +} + +.apexcharts-toolbar { + position: absolute; + z-index: 11; + max-width: 176px; + text-align: right; + border-radius: 3px; + padding: 0 6px 2px; + display: flex; + justify-content: space-between; + align-items: center +} + +.apexcharts-menu { + background: #fff; + position: absolute; + top: 100%; + border: 1px solid #ddd; + border-radius: 3px; + padding: 3px; + right: 10px; + opacity: 0; + min-width: 110px; + transition: .15s ease all; + pointer-events: none +} + +.apexcharts-menu.apexcharts-menu-open { + opacity: 1; + pointer-events: all; + transition: .15s ease all +} + +.apexcharts-menu-item { + padding: 6px 7px; + font-size: 12px; + cursor: pointer +} + +.apexcharts-theme-light .apexcharts-menu-item:hover { + background: #eee +} + +.apexcharts-theme-dark .apexcharts-menu { + background: rgba(0,0,0,.7); + color: #fff +} + +@media screen and (min-width:768px) { + .apexcharts-canvas:hover .apexcharts-toolbar { + opacity: 1 + } +} + +.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points { + opacity: 0 +} + +.apexcharts-hidden-element-shown { + opacity: 1; + transition: 0.25s ease all; +} +.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label { + cursor: default; + pointer-events: none +} + +.apexcharts-pie-label-delay { + opacity: 0; + animation-name: opaque; + animation-duration: .3s; + animation-fill-mode: forwards; + animation-timing-function: ease +} + +.apexcharts-radialbar-label { + cursor: pointer; +} + +.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect { + pointer-events: none +} + +.apexcharts-marker { + transition: .15s ease all +} + +.resize-triggers { + animation: 1ms resizeanim; + visibility: hidden; + opacity: 0; + height: 100%; + width: 100%; + overflow: hidden +} + +.contract-trigger:before,.resize-triggers,.resize-triggers>div { + content: " "; + display: block; + position: absolute; + top: 0; + left: 0 +} + +.resize-triggers>div { + height: 100%; + width: 100%; + background: #eee; + overflow: auto +} + +.contract-trigger:before { + overflow: hidden; + width: 200%; + height: 200% +} + +.apexcharts-bar-goals-markers{ + pointer-events: none +} + +.apexcharts-bar-shadows{ + pointer-events: none +} + +.apexcharts-rangebar-goals-markers{ + pointer-events: none +}`;var c=((h=e.opts.chart)===null||h===void 0?void 0:h.nonce)||e.w.config.chart.nonce;c&&e.css.setAttribute("nonce",c),r?s.prepend(e.css):n.head.appendChild(e.css)}}var d=e.create(e.w.config.series,{});if(!d)return t(e);e.mount(d).then(function(){typeof e.w.config.chart.events.mounted=="function"&&e.w.config.chart.events.mounted(e,e.w),e.events.fireEvent("mounted",[e,e.w]),t(d)}).catch(function(g){i(g)})}else i(new Error("Element not found"))})}},{key:"create",value:function(e,t){var i=this.w;new kt(this).initModules();var a=this.w.globals;if(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(t),i.config.xaxis.convertedCatToNumeric&&new ve(i.config).convertCatToNumericXaxis(i.config,this.ctx),this.el===null||(this.core.setupElements(),i.config.chart.type==="treemap"&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),a.svgWidth===0))return a.animationEnded=!0,null;var s=V.checkComboSeries(e);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=e.every(function(c){return c.data&&c.data.length===0});(e.length===0||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(e),this.theme.init(),new Ce(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),i.config.xaxis.type!=="category"&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new V(this).getLargestMarkerSize(),this.dimensions.plotCoords();var n=this.core.xySettings();this.grid.createGridMask();var o=this.core.plotChartType(e,n),h=new de(this);return h.bringForward(),i.config.dataLabels.background.enabled&&h.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:o,xyRatios:n,dimensions:{plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}}}}},{key:"mount",value:function(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,i=this,a=i.w;return new Promise(function(s,r){if(i.el===null)return r(new Error("Not enough data to display or target element not found"));(t===null||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new Mt(i);var n,o,h=i.grid.drawGrid();if(i.annotations=new Pi(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),a.config.grid.position==="back"&&(h&&a.globals.dom.elGraphical.add(h.el),h!=null&&(n=h.elGridBorders)!==null&&n!==void 0&&n.node&&a.globals.dom.elGraphical.add(h.elGridBorders)),Array.isArray(t.elGraph))for(var c=0;c0&&a.globals.memory.methodsToExec.forEach(function(x){x.method(x.params,!1,x.context)}),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)})}},{key:"destroy",value:function(){var e,t;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,e=this.parentResizeHandler,(t=Je.get(e))&&(t.disconnect(),Je.delete(e));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach(function(a,s){a.id===P.escapeString(i)&&Apex._chartInstances.splice(s,1)}),new At(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(e){var t=this,i=arguments.length>1&&arguments[1]!==void 0&&arguments[1],a=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],s=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3],r=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],n=this.w;return n.globals.selection=void 0,e.series&&(this.series.resetSeries(!1,!0,!1),e.series.length&&e.series[0].data&&(e.series=e.series.map(function(o,h){return t.updateHelpers._extendSeries(o,h)})),this.updateHelpers.revertDefaultAxisMinMax()),e.xaxis&&(e=this.updateHelpers.forceXAxisUpdate(e)),e.yaxis&&(e=this.updateHelpers.forceYAxisUpdate(e)),n.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),e.theme&&(e=this.theme.updateThemeOptions(e)),this.updateHelpers._updateOptions(e,i,a,s,r)}},{key:"updateSeries",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(e,t,i)}},{key:"appendSeries",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],a=this.w.config.series.slice();return a.push(e),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,t,i)}},{key:"appendData",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&arguments[0]!==void 0)||arguments[0],t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];this.series.resetSeries(e,t)}},{key:"addEventListener",value:function(e,t){this.events.addEventListener(e,t)}},{key:"removeEventListener",value:function(e,t){this.events.removeEventListener(e,t)}},{key:"addXaxisAnnotation",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(e,t,a)}},{key:"addYaxisAnnotation",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(e,t,a)}},{key:"addPointAnnotation",value:function(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(e,t,a)}},{key:"clearAnnotations",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,t=this;e&&(t=e),t.annotations.clearAnnotations(t)}},{key:"removeAnnotation",value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,i=this;t&&(i=t),i.annotations.removeAnnotation(i,e)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(e,t){return this.coreUtils.getSeriesTotalsXRange(e,t)}},{key:"getHighestValueInSeries",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new et(this.ctx).getMinYMaxY(e).highestY}},{key:"getLowestValueInSeries",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new et(this.ctx).getMinYMaxY(e).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(e,t){return this.updateHelpers.toggleDataPointSelection(e,t)}},{key:"zoomX",value:function(e,t){this.ctx.toolbar.zoomUpdateOptions(e,t)}},{key:"setLocale",value:function(e){this.localization.setCurrentLocaleValues(e)}},{key:"dataURI",value:function(e){return new Xe(this.ctx).dataURI(e)}},{key:"exportToCSV",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return new Xe(this.ctx).exportToCSV(e)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var e=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout(function(){e.w.globals.resized=!0,e.w.globals.dataChanged=!1,e.ctx.update()},150)}},{key:"_windowResizeHandler",value:function(){var e=this.w.config.chart.redrawOnWindowResize;typeof e=="function"&&(e=e()),e&&this._windowResize()}}],[{key:"getChartByID",value:function(e){var t=P.escapeString(e);if(Apex._chartInstances){var i=Apex._chartInstances.filter(function(a){return a.id===t})[0];return i&&i.chart}}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),t=0;t2?s-2:0),n=2;n{var ra=200,Zt="__lodash_hash_undefined__",na=800,oa=16,$t=9007199254740991,Jt="[object Arguments]",la="[object Array]",ha="[object AsyncFunction]",ca="[object Boolean]",da="[object Date]",ga="[object Error]",Kt="[object Function]",ua="[object GeneratorFunction]",fa="[object Map]",pa="[object Number]",xa="[object Null]",Qt="[object Object]",ba="[object Proxy]",ma="[object RegExp]",va="[object Set]",ya="[object String]",wa="[object Undefined]",ka="[object WeakMap]",Aa="[object ArrayBuffer]",Sa="[object DataView]",Ca="[object Float32Array]",La="[object Float64Array]",Pa="[object Int8Array]",Ta="[object Int16Array]",Ia="[object Int32Array]",za="[object Uint8Array]",Ma="[object Uint8ClampedArray]",Xa="[object Uint16Array]",Ea="[object Uint32Array]",Ya=/[\\^$.*+?()[\]{}|]/g,Fa=/^\[object .+?Constructor\]$/,Ra=/^(?:0|[1-9]\d*)$/,B={};B[Ca]=B[La]=B[Pa]=B[Ta]=B[Ia]=B[za]=B[Ma]=B[Xa]=B[Ea]=!0;B[Jt]=B[la]=B[Aa]=B[ca]=B[Sa]=B[da]=B[ga]=B[Kt]=B[fa]=B[pa]=B[Qt]=B[ma]=B[va]=B[ya]=B[ka]=!1;var ei=typeof global=="object"&&global&&global.Object===Object&&global,Oa=typeof self=="object"&&self&&self.Object===Object&&self,Ie=ei||Oa||Function("return this")(),ti=typeof Le=="object"&&Le&&!Le.nodeType&&Le,Pe=ti&&typeof pe=="object"&&pe&&!pe.nodeType&&pe,ii=Pe&&Pe.exports===ti,st=ii&&ei.process,Nt=function(){try{var f=Pe&&Pe.require&&Pe.require("util").types;return f||st&&st.binding&&st.binding("util")}catch{}}(),Wt=Nt&&Nt.isTypedArray;function Ha(f,e,t){switch(t.length){case 0:return f.call(e);case 1:return f.call(e,t[0]);case 2:return f.call(e,t[0],t[1]);case 3:return f.call(e,t[0],t[1],t[2])}return f.apply(e,t)}function Da(f,e){for(var t=-1,i=Array(f);++t-1}function os(f,e){var t=this.__data__,i=Ne(t,f);return i<0?(++this.size,t.push([f,e])):t[i][1]=e,this}se.prototype.clear=as;se.prototype.delete=ss;se.prototype.get=rs;se.prototype.has=ns;se.prototype.set=os;function xe(f){var e=-1,t=f==null?0:f.length;for(this.clear();++e1?t[a-1]:void 0,r=a>2?t[2]:void 0;for(s=f.length>3&&typeof s=="function"?(a--,s):void 0,r&&Rs(t[0],t[1],r)&&(s=a<3?void 0:s,a=1),e=Object(e);++i-1&&f%1==0&&f0){if(++e>=na)return arguments[0]}else e=0;return f.apply(void 0,arguments)}}function Vs(f){if(f!=null){try{return De.call(f)}catch{}try{return f+""}catch{}}return""}function Ge(f,e){return f===e||f!==f&&e!==e}var lt=qt(function(){return arguments}())?qt:function(f){return ze(f)&&ae.call(f,"callee")&&!Ua.call(f,"callee")},ht=Array.isArray;function gt(f){return f!=null&&ci(f.length)&&!ut(f)}function _s(f){return ze(f)&>(f)}var hi=Za||$s;function ut(f){if(!he(f))return!1;var e=We(f);return e==Kt||e==ua||e==ha||e==ba}function ci(f){return typeof f=="number"&&f>-1&&f%1==0&&f<=$t}function he(f){var e=typeof f;return f!=null&&(e=="object"||e=="function")}function ze(f){return f!=null&&typeof f=="object"}function js(f){if(!ze(f)||We(f)!=Qt)return!1;var e=si(f);if(e===null)return!0;var t=ae.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&De.call(t)==_a}var di=Wt?Na(Wt):ks;function Us(f){return Ms(f,gi(f))}function gi(f){return gt(f)?ms(f,!0):As(f)}var qs=Xs(function(f,e,t){ni(f,e,t)});function Zs(f){return function(){return f}}function ui(f){return f}function $s(){return!1}pe.exports=qs});var xi=Ai(Dt(),1),pi=fi();function Js({options:f,chartId:e,theme:t,extraJsOptions:i}){return{chart:null,options:f,chartId:e,theme:t,extraJsOptions:i,init:function(){this.$wire.$on("updateOptions",({options:a})=>{a=pi(a,this.extraJsOptions),this.updateChart(a)}),Alpine.effect(()=>{let a=Alpine.store("theme");this.$nextTick(()=>{this.chart===null?this.initChart():this.updateChart({theme:{mode:a},chart:{background:"inherit"}})})})},initChart:function(){this.options.theme={mode:this.theme},this.options.chart.background="inherit",this.options=pi(this.options,this.extraJsOptions),this.chart=new xi.default(document.querySelector(this.chartId),this.options),this.chart.render()},updateChart:function(a){this.chart.updateOptions(a,!1,!0,!0)}}}export{Js as default}; +/*! Bundled license information: + +apexcharts/dist/apexcharts.common.js: + (*! + * ApexCharts v3.45.1 + * (c) 2018-2023 ApexCharts + * Released under the MIT License. + *) +*/ diff --git a/public/js/filament/filament/app.js b/public/js/filament/filament/app.js new file mode 100644 index 000000000..6edaa6322 --- /dev/null +++ b/public/js/filament/filament/app.js @@ -0,0 +1 @@ +(()=>{var Z=Object.create,L=Object.defineProperty,ee=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty,re=Object.getOwnPropertyNames,ne=Object.getOwnPropertyDescriptor,ae=o=>L(o,"__esModule",{value:!0}),ie=(o,n)=>()=>(n||(n={exports:{}},o(n.exports,n)),n.exports),se=(o,n,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let d of re(n))!te.call(o,d)&&d!=="default"&&L(o,d,{get:()=>n[d],enumerable:!(p=ne(n,d))||p.enumerable});return o},oe=o=>se(ae(L(o!=null?Z(ee(o)):{},"default",o&&o.__esModule&&"default"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o),fe=ie((o,n)=>{(function(p,d,P){if(!p)return;for(var h={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},y={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},g={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},q={option:"alt",command:"meta",return:"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},S,w=1;w<20;++w)h[111+w]="f"+w;for(w=0;w<=9;++w)h[w+96]=w.toString();function O(e,t,a){if(e.addEventListener){e.addEventListener(t,a,!1);return}e.attachEvent("on"+t,a)}function T(e){if(e.type=="keypress"){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return h[e.which]?h[e.which]:y[e.which]?y[e.which]:String.fromCharCode(e.which).toLowerCase()}function $(e,t){return e.sort().join(",")===t.sort().join(",")}function B(e){var t=[];return e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),e.ctrlKey&&t.push("ctrl"),e.metaKey&&t.push("meta"),t}function V(e){if(e.preventDefault){e.preventDefault();return}e.returnValue=!1}function H(e){if(e.stopPropagation){e.stopPropagation();return}e.cancelBubble=!0}function C(e){return e=="shift"||e=="ctrl"||e=="alt"||e=="meta"}function J(){if(!S){S={};for(var e in h)e>95&&e<112||h.hasOwnProperty(e)&&(S[h[e]]=e)}return S}function U(e,t,a){return a||(a=J()[e]?"keydown":"keypress"),a=="keypress"&&t.length&&(a="keydown"),a}function X(e){return e==="+"?["+"]:(e=e.replace(/\+{2}/g,"+plus"),e.split("+"))}function I(e,t){var a,c,b,M=[];for(a=X(e),b=0;b1){z(r,m,s,l);return}f=I(r,l),t._callbacks[f.key]=t._callbacks[f.key]||[],j(f.key,f.modifiers,{type:f.action},i,r,u),t._callbacks[f.key][i?"unshift":"push"]({callback:s,modifiers:f.modifiers,action:f.action,seq:i,level:u,combo:r})}t._bindMultiple=function(r,s,l){for(var i=0;i-1||D(t,a.target))return!1;if("composedPath"in e&&typeof e.composedPath=="function"){var c=e.composedPath()[0];c!==e.target&&(t=c)}return t.tagName=="INPUT"||t.tagName=="SELECT"||t.tagName=="TEXTAREA"||t.isContentEditable},v.prototype.handleKey=function(){var e=this;return e._handleKey.apply(e,arguments)},v.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(h[t]=e[t]);S=null},v.init=function(){var e=v(d);for(var t in e)t.charAt(0)!=="_"&&(v[t]=function(a){return function(){return e[a].apply(e,arguments)}}(t))},v.init(),p.Mousetrap=v,typeof n<"u"&&n.exports&&(n.exports=v),typeof define=="function"&&define.amd&&define(function(){return v})})(typeof window<"u"?window:null,typeof window<"u"?document:null)}),R=oe(fe());(function(o){if(o){var n={},p=o.prototype.stopCallback;o.prototype.stopCallback=function(d,P,h,y){var g=this;return g.paused?!0:n[h]||n[y]?!1:p.call(g,d,P,h)},o.prototype.bindGlobal=function(d,P,h){var y=this;if(y.bind(d,P,h),d instanceof Array){for(var g=0;g{o.directive("mousetrap",(n,{modifiers:p,expression:d},{evaluate:P})=>{let h=()=>d?P(d):n.click();p=p.map(y=>y.replace("-","+")),p.includes("global")&&(p=p.filter(y=>y!=="global"),R.default.bindGlobal(p,y=>{y.preventDefault(),h()})),R.default.bind(p,y=>{y.preventDefault(),h()})})},F=le;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(F),window.Alpine.store("sidebar",{isOpen:window.Alpine.$persist(!0).as("isOpen"),collapsedGroups:window.Alpine.$persist(null).as("collapsedGroups"),groupIsCollapsed:function(n){return this.collapsedGroups.includes(n)},collapseGroup:function(n){this.collapsedGroups.includes(n)||(this.collapsedGroups=this.collapsedGroups.concat(n))},toggleCollapsedGroup:function(n){this.collapsedGroups=this.collapsedGroups.includes(n)?this.collapsedGroups.filter(p=>p!==n):this.collapsedGroups.concat(n)},close:function(){this.isOpen=!1},open:function(){this.isOpen=!0}});let o=localStorage.getItem("theme")??"system";window.Alpine.store("theme",o==="dark"||o==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),window.addEventListener("theme-changed",n=>{let p=n.detail;localStorage.setItem("theme",p),p==="system"&&(p=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),window.Alpine.store("theme",p)}),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{localStorage.getItem("theme")==="system"&&window.Alpine.store("theme",n.matches?"dark":"light")}),window.Alpine.effect(()=>{window.Alpine.store("theme")==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")})});})(); diff --git a/public/js/filament/filament/echo.js b/public/js/filament/filament/echo.js new file mode 100644 index 000000000..2a43d89ea --- /dev/null +++ b/public/js/filament/filament/echo.js @@ -0,0 +1,13 @@ +(()=>{var wi=Object.create;var he=Object.defineProperty;var ki=Object.getOwnPropertyDescriptor;var Si=Object.getOwnPropertyNames;var Ci=Object.getPrototypeOf,Ti=Object.prototype.hasOwnProperty;var Pi=(l,h)=>()=>(h||l((h={exports:{}}).exports,h),h.exports);var xi=(l,h,a,c)=>{if(h&&typeof h=="object"||typeof h=="function")for(let s of Si(h))!Ti.call(l,s)&&s!==a&&he(l,s,{get:()=>h[s],enumerable:!(c=ki(h,s))||c.enumerable});return l};var Oi=(l,h,a)=>(a=l!=null?wi(Ci(l)):{},xi(h||!l||!l.__esModule?he(a,"default",{value:l,enumerable:!0}):a,l));var ge=Pi((dt,It)=>{(function(h,a){typeof dt=="object"&&typeof It=="object"?It.exports=a():typeof define=="function"&&define.amd?define([],a):typeof dt=="object"?dt.Pusher=a():h.Pusher=a()})(window,function(){return function(l){var h={};function a(c){if(h[c])return h[c].exports;var s=h[c]={i:c,l:!1,exports:{}};return l[c].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=l,a.c=h,a.d=function(c,s,f){a.o(c,s)||Object.defineProperty(c,s,{enumerable:!0,get:f})},a.r=function(c){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},a.t=function(c,s){if(s&1&&(c=a(c)),s&8||s&4&&typeof c=="object"&&c&&c.__esModule)return c;var f=Object.create(null);if(a.r(f),Object.defineProperty(f,"default",{enumerable:!0,value:c}),s&2&&typeof c!="string")for(var d in c)a.d(f,d,function(N){return c[N]}.bind(null,d));return f},a.n=function(c){var s=c&&c.__esModule?function(){return c.default}:function(){return c};return a.d(s,"a",s),s},a.o=function(c,s){return Object.prototype.hasOwnProperty.call(c,s)},a.p="",a(a.s=2)}([function(l,h,a){"use strict";var c=this&&this.__extends||function(){var m=function(v,y){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(w,O){w.__proto__=O}||function(w,O){for(var I in O)O.hasOwnProperty(I)&&(w[I]=O[I])},m(v,y)};return function(v,y){m(v,y);function w(){this.constructor=v}v.prototype=y===null?Object.create(y):(w.prototype=y.prototype,new w)}}();Object.defineProperty(h,"__esModule",{value:!0});var s=256,f=function(){function m(v){v===void 0&&(v="="),this._paddingCharacter=v}return m.prototype.encodedLength=function(v){return this._paddingCharacter?(v+2)/3*4|0:(v*8+5)/6|0},m.prototype.encode=function(v){for(var y="",w=0;w>>3*6&63),y+=this._encodeByte(O>>>2*6&63),y+=this._encodeByte(O>>>1*6&63),y+=this._encodeByte(O>>>0*6&63)}var I=v.length-w;if(I>0){var O=v[w]<<16|(I===2?v[w+1]<<8:0);y+=this._encodeByte(O>>>3*6&63),y+=this._encodeByte(O>>>2*6&63),I===2?y+=this._encodeByte(O>>>1*6&63):y+=this._paddingCharacter||"",y+=this._paddingCharacter||""}return y},m.prototype.maxDecodedLength=function(v){return this._paddingCharacter?v/4*3|0:(v*6+7)/8|0},m.prototype.decodedLength=function(v){return this.maxDecodedLength(v.length-this._getPaddingLength(v))},m.prototype.decode=function(v){if(v.length===0)return new Uint8Array(0);for(var y=this._getPaddingLength(v),w=v.length-y,O=new Uint8Array(this.maxDecodedLength(w)),I=0,q=0,M=0,J=0,F=0,z=0,B=0;q>>4,O[I++]=F<<4|z>>>2,O[I++]=z<<6|B,M|=J&s,M|=F&s,M|=z&s,M|=B&s;if(q>>4,M|=J&s,M|=F&s),q>>2,M|=z&s),q>>8&0-65-26+97,y+=51-v>>>8&26-97-52+48,y+=61-v>>>8&52-48-62+43,y+=62-v>>>8&62-43-63+47,String.fromCharCode(y)},m.prototype._decodeChar=function(v){var y=s;return y+=(42-v&v-44)>>>8&-s+v-43+62,y+=(46-v&v-48)>>>8&-s+v-47+63,y+=(47-v&v-58)>>>8&-s+v-48+52,y+=(64-v&v-91)>>>8&-s+v-65+0,y+=(96-v&v-123)>>>8&-s+v-97+26,y},m.prototype._getPaddingLength=function(v){var y=0;if(this._paddingCharacter){for(var w=v.length-1;w>=0&&v[w]===this._paddingCharacter;w--)y++;if(v.length<4||y>2)throw new Error("Base64Coder: incorrect padding")}return y},m}();h.Coder=f;var d=new f;function N(m){return d.encode(m)}h.encode=N;function P(m){return d.decode(m)}h.decode=P;var T=function(m){c(v,m);function v(){return m!==null&&m.apply(this,arguments)||this}return v.prototype._encodeByte=function(y){var w=y;return w+=65,w+=25-y>>>8&0-65-26+97,w+=51-y>>>8&26-97-52+48,w+=61-y>>>8&52-48-62+45,w+=62-y>>>8&62-45-63+95,String.fromCharCode(w)},v.prototype._decodeChar=function(y){var w=s;return w+=(44-y&y-46)>>>8&-s+y-45+62,w+=(94-y&y-96)>>>8&-s+y-95+63,w+=(47-y&y-58)>>>8&-s+y-48+52,w+=(64-y&y-91)>>>8&-s+y-65+0,w+=(96-y&y-123)>>>8&-s+y-97+26,w},v}(f);h.URLSafeCoder=T;var S=new T;function C(m){return S.encode(m)}h.encodeURLSafe=C;function x(m){return S.decode(m)}h.decodeURLSafe=x,h.encodedLength=function(m){return d.encodedLength(m)},h.maxDecodedLength=function(m){return d.maxDecodedLength(m)},h.decodedLength=function(m){return d.decodedLength(m)}},function(l,h,a){"use strict";Object.defineProperty(h,"__esModule",{value:!0});var c="utf8: invalid string",s="utf8: invalid source encoding";function f(P){for(var T=new Uint8Array(d(P)),S=0,C=0;C>6,T[S++]=128|x&63):x<55296?(T[S++]=224|x>>12,T[S++]=128|x>>6&63,T[S++]=128|x&63):(C++,x=(x&1023)<<10,x|=P.charCodeAt(C)&1023,x+=65536,T[S++]=240|x>>18,T[S++]=128|x>>12&63,T[S++]=128|x>>6&63,T[S++]=128|x&63)}return T}h.encode=f;function d(P){for(var T=0,S=0;S=P.length-1)throw new Error(c);S++,T+=4}else throw new Error(c)}return T}h.encodedLength=d;function N(P){for(var T=[],S=0;S=P.length)throw new Error(s);var m=P[++S];if((m&192)!==128)throw new Error(s);C=(C&31)<<6|m&63,x=128}else if(C<240){if(S>=P.length-1)throw new Error(s);var m=P[++S],v=P[++S];if((m&192)!==128||(v&192)!==128)throw new Error(s);C=(C&15)<<12|(m&63)<<6|v&63,x=2048}else if(C<248){if(S>=P.length-2)throw new Error(s);var m=P[++S],v=P[++S],y=P[++S];if((m&192)!==128||(v&192)!==128||(y&192)!==128)throw new Error(s);C=(C&15)<<18|(m&63)<<12|(v&63)<<6|y&63,x=65536}else throw new Error(s);if(C=55296&&C<=57343)throw new Error(s);if(C>=65536){if(C>1114111)throw new Error(s);C-=65536,T.push(String.fromCharCode(55296|C>>10)),C=56320|C&1023}}T.push(String.fromCharCode(C))}return T.join("")}h.decode=N},function(l,h,a){l.exports=a(3).default},function(l,h,a){"use strict";a.r(h);var c=function(){function e(t,n){this.lastId=0,this.prefix=t,this.name=n}return e.prototype.create=function(t){this.lastId++;var n=this.lastId,r=this.prefix+n,i=this.name+"["+n+"]",o=!1,u=function(){o||(t.apply(null,arguments),o=!0)};return this[n]=u,{number:n,id:r,name:i,callback:u}},e.prototype.remove=function(t){delete this[t.number]},e}(),s=new c("_pusher_script_","Pusher.ScriptReceivers"),f={VERSION:"7.6.0",PROTOCOL:7,wsPort:80,wssPort:443,wsPath:"",httpHost:"sockjs.pusher.com",httpPort:80,httpsPort:443,httpPath:"/pusher",stats_host:"stats.pusher.com",authEndpoint:"/pusher/auth",authTransport:"ajax",activityTimeout:12e4,pongTimeout:3e4,unavailableTimeout:1e4,cluster:"mt1",userAuthentication:{endpoint:"/pusher/user-auth",transport:"ajax"},channelAuthorization:{endpoint:"/pusher/auth",transport:"ajax"},cdn_http:"http://js.pusher.com",cdn_https:"https://js.pusher.com",dependency_suffix:""},d=f,N=function(){function e(t){this.options=t,this.receivers=t.receivers||s,this.loading={}}return e.prototype.load=function(t,n,r){var i=this;if(i.loading[t]&&i.loading[t].length>0)i.loading[t].push(r);else{i.loading[t]=[r];var o=b.createScriptRequest(i.getPath(t,n)),u=i.receivers.create(function(p){if(i.receivers.remove(u),i.loading[t]){var _=i.loading[t];delete i.loading[t];for(var g=function(L){L||o.cleanup()},k=0;k<_.length;k++)_[k](p,g)}});o.send(u)}},e.prototype.getRoot=function(t){var n,r=b.getDocument().location.protocol;return t&&t.useTLS||r==="https:"?n=this.options.cdn_https:n=this.options.cdn_http,n.replace(/\/*$/,"")+"/"+this.options.version},e.prototype.getPath=function(t,n){return this.getRoot(n)+"/"+t+this.options.suffix+".js"},e}(),P=N,T=new c("_pusher_dependencies","Pusher.DependenciesReceivers"),S=new P({cdn_http:d.cdn_http,cdn_https:d.cdn_https,version:d.VERSION,suffix:d.dependency_suffix,receivers:T}),C={baseUrl:"https://pusher.com",urls:{authenticationEndpoint:{path:"/docs/channels/server_api/authenticating_users"},authorizationEndpoint:{path:"/docs/channels/server_api/authorizing-users/"},javascriptQuickStart:{path:"/docs/javascript_quick_start"},triggeringClientEvents:{path:"/docs/client_api_guide/client_events#trigger-events"},encryptedChannelSupport:{fullUrl:"https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support"}}},x=function(e){var t="See:",n=C.urls[e];if(!n)return"";var r;return n.fullUrl?r=n.fullUrl:n.path&&(r=C.baseUrl+n.path),r?t+" "+r:""},m={buildLogSuffix:x},v;(function(e){e.UserAuthentication="user-authentication",e.ChannelAuthorization="channel-authorization"})(v||(v={}));var y=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),w=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),O=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),I=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),q=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),M=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),J=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),F=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),z=function(e){y(t,e);function t(n){var r=this.constructor,i=e.call(this,n)||this;return Object.setPrototypeOf(i,r.prototype),i}return t}(Error),B=function(e){y(t,e);function t(n,r){var i=this.constructor,o=e.call(this,r)||this;return o.status=n,Object.setPrototypeOf(o,i.prototype),o}return t}(Error),me=function(e,t,n,r,i){var o=b.createXHR();o.open("POST",n.endpoint,!0),o.setRequestHeader("Content-Type","application/x-www-form-urlencoded");for(var u in n.headers)o.setRequestHeader(u,n.headers[u]);if(n.headersProvider!=null){var p=n.headersProvider();for(var u in p)o.setRequestHeader(u,p[u])}return o.onreadystatechange=function(){if(o.readyState===4)if(o.status===200){var _=void 0,g=!1;try{_=JSON.parse(o.responseText),g=!0}catch{i(new B(200,"JSON returned from "+r.toString()+" endpoint was invalid, yet status code was 200. Data was: "+o.responseText),null)}g&&i(null,_)}else{var k="";switch(r){case v.UserAuthentication:k=m.buildLogSuffix("authenticationEndpoint");break;case v.ChannelAuthorization:k="Clients must be authorized to join private or presence channels. "+m.buildLogSuffix("authorizationEndpoint");break}i(new B(o.status,"Unable to retrieve auth string from "+r.toString()+" endpoint - "+("received status: "+o.status+" from "+n.endpoint+". "+k)),null)}},o.send(t),o},be=me;function we(e){return xe(Te(e))}for(var nt=String.fromCharCode,Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ke={},st=0,Se=Z.length;st>>6)+nt(128|t&63):nt(224|t>>>12&15)+nt(128|t>>>6&63)+nt(128|t&63)},Te=function(e){return e.replace(/[^\x00-\x7F]/g,Ce)},Pe=function(e){var t=[0,2,1][e.length%3],n=e.charCodeAt(0)<<16|(e.length>1?e.charCodeAt(1):0)<<8|(e.length>2?e.charCodeAt(2):0),r=[Z.charAt(n>>>18),Z.charAt(n>>>12&63),t>=2?"=":Z.charAt(n>>>6&63),t>=1?"=":Z.charAt(n&63)];return r.join("")},xe=window.btoa||function(e){return e.replace(/[\s\S]{1,3}/g,Pe)},Oe=function(){function e(t,n,r,i){var o=this;this.clear=n,this.timer=t(function(){o.timer&&(o.timer=i(o.timer))},r)}return e.prototype.isRunning=function(){return this.timer!==null},e.prototype.ensureAborted=function(){this.timer&&(this.clear(this.timer),this.timer=null)},e}(),jt=Oe,Nt=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();function Ae(e){window.clearTimeout(e)}function Le(e){window.clearInterval(e)}var Q=function(e){Nt(t,e);function t(n,r){return e.call(this,setTimeout,Ae,n,function(i){return r(),null})||this}return t}(jt),Ee=function(e){Nt(t,e);function t(n,r){return e.call(this,setInterval,Le,n,function(i){return r(),i})||this}return t}(jt),Re={now:function(){return Date.now?Date.now():new Date().valueOf()},defer:function(e){return new Q(0,e)},method:function(e){for(var t=[],n=1;n0)for(var i=0;i=1002&&e.code<=1004?"backoff":null:e.code===4e3?"tls_only":e.code<4100?"refused":e.code<4200?"backoff":e.code<4300?"retry":"refused"},getCloseError:function(e){return e.code!==1e3&&e.code!==1001?{type:"PusherError",data:{code:e.code,message:e.reason||e.message}}:null}},K=Vt,wn=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),kn=function(e){wn(t,e);function t(n,r){var i=e.call(this)||this;return i.id=n,i.transport=r,i.activityTimeout=r.activityTimeout,i.bindListeners(),i}return t.prototype.handlesActivityChecks=function(){return this.transport.handlesActivityChecks()},t.prototype.send=function(n){return this.transport.send(n)},t.prototype.send_event=function(n,r,i){var o={event:n,data:r};return i&&(o.channel=i),A.debug("Event sent",o),this.send(K.encodeMessage(o))},t.prototype.ping=function(){this.transport.supportsPing()?this.transport.ping():this.send_event("pusher:ping",{})},t.prototype.close=function(){this.transport.close()},t.prototype.bindListeners=function(){var n=this,r={message:function(o){var u;try{u=K.decodeMessage(o)}catch(p){n.emit("error",{type:"MessageParseError",error:p,data:o.data})}if(u!==void 0){switch(A.debug("Event recd",u),u.event){case"pusher:error":n.emit("error",{type:"PusherError",data:u.data});break;case"pusher:ping":n.emit("ping");break;case"pusher:pong":n.emit("pong");break}n.emit("message",u)}},activity:function(){n.emit("activity")},error:function(o){n.emit("error",o)},closed:function(o){i(),o&&o.code&&n.handleCloseEvent(o),n.transport=null,n.emit("closed")}},i=function(){W(r,function(o,u){n.transport.unbind(u,o)})};W(r,function(o,u){n.transport.bind(u,o)})},t.prototype.handleCloseEvent=function(n){var r=K.getCloseAction(n),i=K.getCloseError(n);i&&this.emit("error",i),r&&this.emit(r,{action:r,error:i})},t}(V),Sn=kn,Cn=function(){function e(t,n){this.transport=t,this.callback=n,this.bindListeners()}return e.prototype.close=function(){this.unbindListeners(),this.transport.close()},e.prototype.bindListeners=function(){var t=this;this.onMessage=function(n){t.unbindListeners();var r;try{r=K.processHandshake(n)}catch(i){t.finish("error",{error:i}),t.transport.close();return}r.action==="connected"?t.finish("connected",{connection:new Sn(r.id,t.transport),activityTimeout:r.activityTimeout}):(t.finish(r.action,{error:r.error}),t.transport.close())},this.onClosed=function(n){t.unbindListeners();var r=K.getCloseAction(n)||"backoff",i=K.getCloseError(n);t.finish(r,{error:i})},this.transport.bind("message",this.onMessage),this.transport.bind("closed",this.onClosed)},e.prototype.unbindListeners=function(){this.transport.unbind("message",this.onMessage),this.transport.unbind("closed",this.onClosed)},e.prototype.finish=function(t,n){this.callback(U({transport:this.transport,action:t},n))},e}(),Tn=Cn,Pn=function(){function e(t,n){this.timeline=t,this.options=n||{}}return e.prototype.send=function(t,n){this.timeline.isEmpty()||this.timeline.send(b.TimelineTransport.getAgent(this,t),n)},e}(),xn=Pn,On=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),An=function(e){On(t,e);function t(n,r){var i=e.call(this,function(o,u){A.debug("No callbacks on "+n+" for "+o)})||this;return i.name=n,i.pusher=r,i.subscribed=!1,i.subscriptionPending=!1,i.subscriptionCancelled=!1,i}return t.prototype.authorize=function(n,r){return r(null,{auth:""})},t.prototype.trigger=function(n,r){if(n.indexOf("client-")!==0)throw new w("Event '"+n+"' does not start with 'client-'");if(!this.subscribed){var i=m.buildLogSuffix("triggeringClientEvents");A.warn("Client event triggered before channel 'subscription_succeeded' event . "+i)}return this.pusher.send_event(n,r,this.name)},t.prototype.disconnect=function(){this.subscribed=!1,this.subscriptionPending=!1},t.prototype.handleEvent=function(n){var r=n.event,i=n.data;if(r==="pusher_internal:subscription_succeeded")this.handleSubscriptionSucceededEvent(n);else if(r==="pusher_internal:subscription_count")this.handleSubscriptionCountEvent(n);else if(r.indexOf("pusher_internal:")!==0){var o={};this.emit(r,i,o)}},t.prototype.handleSubscriptionSucceededEvent=function(n){this.subscriptionPending=!1,this.subscribed=!0,this.subscriptionCancelled?this.pusher.unsubscribe(this.name):this.emit("pusher:subscription_succeeded",n.data)},t.prototype.handleSubscriptionCountEvent=function(n){n.data.subscription_count&&(this.subscriptionCount=n.data.subscription_count),this.emit("pusher:subscription_count",n.data)},t.prototype.subscribe=function(){var n=this;this.subscribed||(this.subscriptionPending=!0,this.subscriptionCancelled=!1,this.authorize(this.pusher.connection.socket_id,function(r,i){r?(n.subscriptionPending=!1,A.error(r.toString()),n.emit("pusher:subscription_error",Object.assign({},{type:"AuthError",error:r.message},r instanceof B?{status:r.status}:{}))):n.pusher.send_event("pusher:subscribe",{auth:i.auth,channel_data:i.channel_data,channel:n.name})}))},t.prototype.unsubscribe=function(){this.subscribed=!1,this.pusher.send_event("pusher:unsubscribe",{channel:this.name})},t.prototype.cancelSubscription=function(){this.subscriptionCancelled=!0},t.prototype.reinstateSubscription=function(){this.subscriptionCancelled=!1},t}(V),_t=An,Ln=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),En=function(e){Ln(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.authorize=function(n,r){return this.pusher.config.channelAuthorizer({channelName:this.name,socketId:n},r)},t}(_t),mt=En,Rn=function(){function e(){this.reset()}return e.prototype.get=function(t){return Object.prototype.hasOwnProperty.call(this.members,t)?{id:t,info:this.members[t]}:null},e.prototype.each=function(t){var n=this;W(this.members,function(r,i){t(n.get(i))})},e.prototype.setMyID=function(t){this.myID=t},e.prototype.onSubscription=function(t){this.members=t.presence.hash,this.count=t.presence.count,this.me=this.get(this.myID)},e.prototype.addMember=function(t){return this.get(t.user_id)===null&&this.count++,this.members[t.user_id]=t.user_info,this.get(t.user_id)},e.prototype.removeMember=function(t){var n=this.get(t.user_id);return n&&(delete this.members[t.user_id],this.count--),n},e.prototype.reset=function(){this.members={},this.count=0,this.myID=null,this.me=null},e}(),In=Rn,jn=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Nn=function(e,t,n,r){function i(o){return o instanceof n?o:new n(function(u){u(o)})}return new(n||(n=Promise))(function(o,u){function p(k){try{g(r.next(k))}catch(L){u(L)}}function _(k){try{g(r.throw(k))}catch(L){u(L)}}function g(k){k.done?o(k.value):i(k.value).then(p,_)}g((r=r.apply(e,t||[])).next())})},qn=function(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,u;return u={next:p(0),throw:p(1),return:p(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function p(g){return function(k){return _([g,k])}}function _(g){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(o=g[0]&2?i.return:g[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,g[1])).done)return o;switch(i=0,o&&(g=[g[0]&2,o.value]),g[0]){case 0:case 1:o=g;break;case 4:return n.label++,{value:g[1],done:!1};case 5:n.label++,i=g[1],g=[0];continue;case 7:g=n.ops.pop(),n.trys.pop();continue;default:if(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(g[0]===6||g[0]===2)){n=0;continue}if(g[0]===3&&(!o||g[1]>o[0]&&g[1]0&&this.emit("connecting_in",Math.round(n/1e3)),this.retryTimer=new Q(n||0,function(){r.disconnectInternally(),r.connect()})},t.prototype.clearRetryTimer=function(){this.retryTimer&&(this.retryTimer.ensureAborted(),this.retryTimer=null)},t.prototype.setUnavailableTimer=function(){var n=this;this.unavailableTimer=new Q(this.options.unavailableTimeout,function(){n.updateState("unavailable")})},t.prototype.clearUnavailableTimer=function(){this.unavailableTimer&&this.unavailableTimer.ensureAborted()},t.prototype.sendActivityCheck=function(){var n=this;this.stopActivityCheck(),this.connection.ping(),this.activityTimer=new Q(this.options.pongTimeout,function(){n.timeline.error({pong_timed_out:n.options.pongTimeout}),n.retryIn(0)})},t.prototype.resetActivityCheck=function(){var n=this;this.stopActivityCheck(),this.connection&&!this.connection.handlesActivityChecks()&&(this.activityTimer=new Q(this.activityTimeout,function(){n.sendActivityCheck()}))},t.prototype.stopActivityCheck=function(){this.activityTimer&&this.activityTimer.ensureAborted()},t.prototype.buildConnectionCallbacks=function(n){var r=this;return U({},n,{message:function(i){r.resetActivityCheck(),r.emit("message",i)},ping:function(){r.send_event("pusher:pong",{})},activity:function(){r.resetActivityCheck()},error:function(i){r.emit("error",i)},closed:function(){r.abandonConnection(),r.shouldRetry()&&r.retryIn(1e3)}})},t.prototype.buildHandshakeCallbacks=function(n){var r=this;return U({},n,{connected:function(i){r.activityTimeout=Math.min(r.options.activityTimeout,i.activityTimeout,i.connection.activityTimeout||1/0),r.clearUnavailableTimer(),r.setConnection(i.connection),r.socket_id=r.connection.id,r.updateState("connected",{socket_id:r.socket_id})}})},t.prototype.buildErrorCallbacks=function(){var n=this,r=function(i){return function(o){o.error&&n.emit("error",{type:"WebSocketError",error:o.error}),i(o)}};return{tls_only:r(function(){n.usingTLS=!0,n.updateStrategy(),n.retryIn(0)}),refused:r(function(){n.disconnect()}),backoff:r(function(){n.retryIn(1e3)}),retry:r(function(){n.retryIn(0)})}},t.prototype.setConnection=function(n){this.connection=n;for(var r in this.connectionCallbacks)this.connection.bind(r,this.connectionCallbacks[r]);this.resetActivityCheck()},t.prototype.abandonConnection=function(){if(this.connection){this.stopActivityCheck();for(var n in this.connectionCallbacks)this.connection.unbind(n,this.connectionCallbacks[n]);var r=this.connection;return this.connection=null,r}},t.prototype.updateState=function(n,r){var i=this.state;if(this.state=n,i!==n){var o=n;o==="connected"&&(o+=" with new socket ID "+r.socket_id),A.debug("State changed",i+" -> "+o),this.timeline.info({state:n,params:r}),this.emit("state_change",{previous:i,current:n}),this.emit(n,r)}},t.prototype.shouldRetry=function(){return this.state==="connecting"||this.state==="connected"},t}(V),Jn=Xn,Wn=function(){function e(){this.channels={}}return e.prototype.add=function(t,n){return this.channels[t]||(this.channels[t]=Gn(t,n)),this.channels[t]},e.prototype.all=function(){return je(this.channels)},e.prototype.find=function(t){return this.channels[t]},e.prototype.remove=function(t){var n=this.channels[t];return delete this.channels[t],n},e.prototype.disconnect=function(){W(this.channels,function(t){t.disconnect()})},e}(),Vn=Wn;function Gn(e,t){if(e.indexOf("private-encrypted-")===0){if(t.config.nacl)return G.createEncryptedChannel(e,t,t.config.nacl);var n="Tried to subscribe to a private-encrypted- channel but no nacl implementation available",r=m.buildLogSuffix("encryptedChannelSupport");throw new J(n+". "+r)}else{if(e.indexOf("private-")===0)return G.createPrivateChannel(e,t);if(e.indexOf("presence-")===0)return G.createPresenceChannel(e,t);if(e.indexOf("#")===0)throw new O('Cannot create a channel with name "'+e+'".');return G.createChannel(e,t)}}var Qn={createChannels:function(){return new Vn},createConnectionManager:function(e,t){return new Jn(e,t)},createChannel:function(e,t){return new _t(e,t)},createPrivateChannel:function(e,t){return new mt(e,t)},createPresenceChannel:function(e,t){return new Dn(e,t)},createEncryptedChannel:function(e,t,n){return new Fn(e,t,n)},createTimelineSender:function(e,t){return new xn(e,t)},createHandshake:function(e,t){return new Tn(e,t)},createAssistantToTheTransportManager:function(e,t,n){return new bn(e,t,n)}},G=Qn,Kn=function(){function e(t){this.options=t||{},this.livesLeft=this.options.lives||1/0}return e.prototype.getAssistant=function(t){return G.createAssistantToTheTransportManager(this,t,{minPingDelay:this.options.minPingDelay,maxPingDelay:this.options.maxPingDelay})},e.prototype.isAlive=function(){return this.livesLeft>0},e.prototype.reportDeath=function(){this.livesLeft-=1},e}(),Gt=Kn,Yn=function(){function e(t,n){this.strategies=t,this.loop=!!n.loop,this.failFast=!!n.failFast,this.timeout=n.timeout,this.timeoutLimit=n.timeoutLimit}return e.prototype.isSupported=function(){return zt(this.strategies,j.method("isSupported"))},e.prototype.connect=function(t,n){var r=this,i=this.strategies,o=0,u=this.timeout,p=null,_=function(g,k){k?n(null,k):(o=o+1,r.loop&&(o=o%i.length),o0&&(o=new Q(r.timeout,function(){u.abort(),i(!0)})),u=t.connect(n,function(p,_){p&&o&&o.isRunning()&&!r.failFast||(o&&o.ensureAborted(),i(p,_))}),{abort:function(){o&&o.ensureAborted(),u.abort()},forceMinPriority:function(p){u.forceMinPriority(p)}}},e}(),Y=Yn,$n=function(){function e(t){this.strategies=t}return e.prototype.isSupported=function(){return zt(this.strategies,j.method("isSupported"))},e.prototype.connect=function(t,n){return Zn(this.strategies,t,function(r,i){return function(o,u){if(i[r].error=o,o){tr(i)&&n(!0);return}rt(i,function(p){p.forceMinPriority(u.transport.priority)}),n(null,u)}})},e}(),wt=$n;function Zn(e,t,n){var r=Dt(e,function(i,o,u,p){return i.connect(t,n(o,p))});return{abort:function(){rt(r,er)},forceMinPriority:function(i){rt(r,function(o){o.forceMinPriority(i)})}}}function tr(e){return Ue(e,function(t){return!!t.error})}function er(e){!e.error&&!e.aborted&&(e.abort(),e.aborted=!0)}var nr=function(){function e(t,n,r){this.strategy=t,this.transports=n,this.ttl=r.ttl||1800*1e3,this.usingTLS=r.useTLS,this.timeline=r.timeline}return e.prototype.isSupported=function(){return this.strategy.isSupported()},e.prototype.connect=function(t,n){var r=this.usingTLS,i=ir(r),o=[this.strategy];if(i&&i.timestamp+this.ttl>=j.now()){var u=this.transports[i.transport];u&&(this.timeline.info({cached:!0,transport:i.transport,latency:i.latency}),o.push(new Y([u],{timeout:i.latency*2+1e3,failFast:!0})))}var p=j.now(),_=o.pop().connect(t,function g(k,L){k?(Qt(r),o.length>0?(p=j.now(),_=o.pop().connect(t,g)):n(k)):(or(r,L.transport.name,j.now()-p),n(null,L))});return{abort:function(){_.abort()},forceMinPriority:function(g){t=g,_&&_.forceMinPriority(g)}}},e}(),rr=nr;function kt(e){return"pusherTransport"+(e?"TLS":"NonTLS")}function ir(e){var t=b.getLocalStorage();if(t)try{var n=t[kt(e)];if(n)return JSON.parse(n)}catch{Qt(e)}return null}function or(e,t,n){var r=b.getLocalStorage();if(r)try{r[kt(e)]=at({timestamp:j.now(),transport:t,latency:n})}catch{}}function Qt(e){var t=b.getLocalStorage();if(t)try{delete t[kt(e)]}catch{}}var sr=function(){function e(t,n){var r=n.delay;this.strategy=t,this.options={delay:r}}return e.prototype.isSupported=function(){return this.strategy.isSupported()},e.prototype.connect=function(t,n){var r=this.strategy,i,o=new Q(this.options.delay,function(){i=r.connect(t,n)});return{abort:function(){o.ensureAborted(),i&&i.abort()},forceMinPriority:function(u){t=u,i&&i.forceMinPriority(u)}}},e}(),ut=sr,ar=function(){function e(t,n,r){this.test=t,this.trueBranch=n,this.falseBranch=r}return e.prototype.isSupported=function(){var t=this.test()?this.trueBranch:this.falseBranch;return t.isSupported()},e.prototype.connect=function(t,n){var r=this.test()?this.trueBranch:this.falseBranch;return r.connect(t,n)},e}(),it=ar,cr=function(){function e(t){this.strategy=t}return e.prototype.isSupported=function(){return this.strategy.isSupported()},e.prototype.connect=function(t,n){var r=this.strategy.connect(t,function(i,o){o&&r.abort(),n(i,o)});return r},e}(),ur=cr;function ot(e){return function(){return e.isSupported()}}var hr=function(e,t,n){var r={};function i(ce,gi,_i,mi,bi){var ue=n(e,ce,gi,_i,mi,bi);return r[ce]=ue,ue}var o=Object.assign({},t,{hostNonTLS:e.wsHost+":"+e.wsPort,hostTLS:e.wsHost+":"+e.wssPort,httpPath:e.wsPath}),u=Object.assign({},o,{useTLS:!0}),p=Object.assign({},t,{hostNonTLS:e.httpHost+":"+e.httpPort,hostTLS:e.httpHost+":"+e.httpsPort,httpPath:e.httpPath}),_={loop:!0,timeout:15e3,timeoutLimit:6e4},g=new Gt({lives:2,minPingDelay:1e4,maxPingDelay:e.activityTimeout}),k=new Gt({lives:2,minPingDelay:1e4,maxPingDelay:e.activityTimeout}),L=i("ws","ws",3,o,g),X=i("wss","ws",3,u,g),fi=i("sockjs","sockjs",1,p),ne=i("xhr_streaming","xhr_streaming",1,p,k),pi=i("xdr_streaming","xdr_streaming",1,p,k),re=i("xhr_polling","xhr_polling",1,p),di=i("xdr_polling","xdr_polling",1,p),ie=new Y([L],_),vi=new Y([X],_),yi=new Y([fi],_),oe=new Y([new it(ot(ne),ne,pi)],_),se=new Y([new it(ot(re),re,di)],_),ae=new Y([new it(ot(oe),new wt([oe,new ut(se,{delay:4e3})]),se)],_),Pt=new it(ot(ae),ae,yi),xt;return t.useTLS?xt=new wt([ie,new ut(Pt,{delay:2e3})]):xt=new wt([ie,new ut(vi,{delay:2e3}),new ut(Pt,{delay:5e3})]),new rr(new ur(new it(ot(L),xt,Pt)),r,{ttl:18e5,timeline:t.timeline,useTLS:t.useTLS})},lr=hr,fr=function(){var e=this;e.timeline.info(e.buildTimelineMessage({transport:e.name+(e.options.useTLS?"s":"")})),e.hooks.isInitialized()?e.changeState("initialized"):e.hooks.file?(e.changeState("initializing"),S.load(e.hooks.file,{useTLS:e.options.useTLS},function(t,n){e.hooks.isInitialized()?(e.changeState("initialized"),n(!0)):(t&&e.onError(t),e.onClose(),n(!1))})):e.onClose()},pr={getRequest:function(e){var t=new window.XDomainRequest;return t.ontimeout=function(){e.emit("error",new I),e.close()},t.onerror=function(n){e.emit("error",n),e.close()},t.onprogress=function(){t.responseText&&t.responseText.length>0&&e.onChunk(200,t.responseText)},t.onload=function(){t.responseText&&t.responseText.length>0&&e.onChunk(200,t.responseText),e.emit("finished",200),e.close()},t},abortRequest:function(e){e.ontimeout=e.onerror=e.onprogress=e.onload=null,e.abort()}},dr=pr,vr=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)i.hasOwnProperty(o)&&(r[o]=i[o])},e(t,n)};return function(t,n){e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),yr=256*1024,gr=function(e){vr(t,e);function t(n,r,i){var o=e.call(this)||this;return o.hooks=n,o.method=r,o.url=i,o}return t.prototype.start=function(n){var r=this;this.position=0,this.xhr=this.hooks.getRequest(this),this.unloader=function(){r.close()},b.addUnloadListener(this.unloader),this.xhr.open(this.method,this.url,!0),this.xhr.setRequestHeader&&this.xhr.setRequestHeader("Content-Type","application/json"),this.xhr.send(n)},t.prototype.close=function(){this.unloader&&(b.removeUnloadListener(this.unloader),this.unloader=null),this.xhr&&(this.hooks.abortRequest(this.xhr),this.xhr=null)},t.prototype.onChunk=function(n,r){for(;;){var i=this.advanceBuffer(r);if(i)this.emit("chunk",{status:n,data:i});else break}this.isBufferTooLong(r)&&this.emit("buffer_too_long")},t.prototype.advanceBuffer=function(n){var r=n.slice(this.position),i=r.indexOf(` +`);return i!==-1?(this.position+=i+1,r.slice(0,i)):null},t.prototype.isBufferTooLong=function(n){return this.position===n.length&&n.length>yr},t}(V),_r=gr,St;(function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSED=3]="CLOSED"})(St||(St={}));var $=St,mr=1,br=function(){function e(t,n){this.hooks=t,this.session=Yt(1e3)+"/"+Cr(8),this.location=wr(n),this.readyState=$.CONNECTING,this.openStream()}return e.prototype.send=function(t){return this.sendRaw(JSON.stringify([t]))},e.prototype.ping=function(){this.hooks.sendHeartbeat(this)},e.prototype.close=function(t,n){this.onClose(t,n,!0)},e.prototype.sendRaw=function(t){if(this.readyState===$.OPEN)try{return b.createSocketRequest("POST",Kt(kr(this.location,this.session))).start(t),!0}catch{return!1}else return!1},e.prototype.reconnect=function(){this.closeStream(),this.openStream()},e.prototype.onClose=function(t,n,r){this.closeStream(),this.readyState=$.CLOSED,this.onclose&&this.onclose({code:t,reason:n,wasClean:r})},e.prototype.onChunk=function(t){if(t.status===200){this.readyState===$.OPEN&&this.onActivity();var n,r=t.data.slice(0,1);switch(r){case"o":n=JSON.parse(t.data.slice(1)||"{}"),this.onOpen(n);break;case"a":n=JSON.parse(t.data.slice(1)||"[]");for(var i=0;i0&&e.onChunk(n.status,n.responseText);break;case 4:n.responseText&&n.responseText.length>0&&e.onChunk(n.status,n.responseText),e.emit("finished",n.status),e.close();break}},n},abortRequest:function(e){e.onreadystatechange=null,e.abort()}},Er=Lr,Rr={createStreamingSocket:function(e){return this.createSocket(xr,e)},createPollingSocket:function(e){return this.createSocket(Ar,e)},createSocket:function(e,t){return new Tr(e,t)},createXHR:function(e,t){return this.createRequest(Er,e,t)},createRequest:function(e,t,n){return new _r(e,t,n)}},$t=Rr;$t.createXDR=function(e,t){return this.createRequest(dr,e,t)};var Ir=$t,jr={nextAuthCallbackID:1,auth_callbacks:{},ScriptReceivers:s,DependenciesReceivers:T,getDefaultStrategy:lr,Transports:vn,transportConnectionInitializer:fr,HTTPFactory:Ir,TimelineTransport:Ke,getXHRAPI:function(){return window.XMLHttpRequest},getWebSocketAPI:function(){return window.WebSocket||window.MozWebSocket},setup:function(e){var t=this;window.Pusher=e;var n=function(){t.onDocumentBody(e.ready)};window.JSON?n():S.load("json2",{},n)},getDocument:function(){return document},getProtocol:function(){return this.getDocument().location.protocol},getAuthorizers:function(){return{ajax:be,jsonp:Be}},onDocumentBody:function(e){var t=this;document.body?e():setTimeout(function(){t.onDocumentBody(e)},0)},createJSONPRequest:function(e,t){return new Ve(e,t)},createScriptRequest:function(e){return new Je(e)},getLocalStorage:function(){try{return window.localStorage}catch{return}},createXHR:function(){return this.getXHRAPI()?this.createXMLHttpRequest():this.createMicrosoftXHR()},createXMLHttpRequest:function(){var e=this.getXHRAPI();return new e},createMicrosoftXHR:function(){return new ActiveXObject("Microsoft.XMLHTTP")},getNetwork:function(){return _n},createWebSocket:function(e){var t=this.getWebSocketAPI();return new t(e)},createSocketRequest:function(e,t){if(this.isXHRSupported())return this.HTTPFactory.createXHR(e,t);if(this.isXDRSupported(t.indexOf("https:")===0))return this.HTTPFactory.createXDR(e,t);throw"Cross-origin HTTP requests are not supported"},isXHRSupported:function(){var e=this.getXHRAPI();return!!e&&new e().withCredentials!==void 0},isXDRSupported:function(e){var t=e?"https:":"http:",n=this.getProtocol();return!!window.XDomainRequest&&n===t},addUnloadListener:function(e){window.addEventListener!==void 0?window.addEventListener("unload",e,!1):window.attachEvent!==void 0&&window.attachEvent("onunload",e)},removeUnloadListener:function(e){window.addEventListener!==void 0?window.removeEventListener("unload",e,!1):window.detachEvent!==void 0&&window.detachEvent("onunload",e)},randomInt:function(e){var t=function(){var n=window.crypto||window.msCrypto,r=n.getRandomValues(new Uint32Array(1))[0];return r/Math.pow(2,32)};return Math.floor(t()*e)}},b=jr,Ct;(function(e){e[e.ERROR=3]="ERROR",e[e.INFO=6]="INFO",e[e.DEBUG=7]="DEBUG"})(Ct||(Ct={}));var ht=Ct,Nr=function(){function e(t,n,r){this.key=t,this.session=n,this.events=[],this.options=r||{},this.sent=0,this.uniqueID=0}return e.prototype.log=function(t,n){t<=this.options.level&&(this.events.push(U({},n,{timestamp:j.now()})),this.options.limit&&this.events.length>this.options.limit&&this.events.shift())},e.prototype.error=function(t){this.log(ht.ERROR,t)},e.prototype.info=function(t){this.log(ht.INFO,t)},e.prototype.debug=function(t){this.log(ht.DEBUG,t)},e.prototype.isEmpty=function(){return this.events.length===0},e.prototype.send=function(t,n){var r=this,i=U({session:this.session,bundle:this.sent+1,key:this.key,lib:"js",version:this.options.version,cluster:this.options.cluster,features:this.options.features,timeline:this.events},this.options.params);return this.events=[],t(i,function(o,u){o||r.sent++,n&&n(o,u)}),!0},e.prototype.generateUniqueID=function(){return this.uniqueID++,this.uniqueID},e}(),qr=Nr,Ur=function(){function e(t,n,r,i){this.name=t,this.priority=n,this.transport=r,this.options=i||{}}return e.prototype.isSupported=function(){return this.transport.isSupported({useTLS:this.options.useTLS})},e.prototype.connect=function(t,n){var r=this;if(this.isSupported()){if(this.priority"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Li(l){if(l===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l}function Ei(l,h){if(h&&(typeof h=="object"||typeof h=="function"))return h;if(h!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Li(l)}function H(l){var h=Ai();return function(){var c=lt(l),s;if(h){var f=lt(this).constructor;s=Reflect.construct(c,arguments,f)}else s=c.apply(this,arguments);return Ei(this,s)}}var Et=function(){function l(){E(this,l)}return R(l,[{key:"listenForWhisper",value:function(a,c){return this.listen(".client-"+a,c)}},{key:"notification",value:function(a){return this.listen(".Illuminate\\Notifications\\Events\\BroadcastNotificationCreated",a)}},{key:"stopListeningForWhisper",value:function(a,c){return this.stopListening(".client-"+a,c)}}]),l}(),pe=function(){function l(h){E(this,l),this.namespace=h}return R(l,[{key:"format",value:function(a){return a.charAt(0)==="."||a.charAt(0)==="\\"?a.substr(1):(this.namespace&&(a=this.namespace+"."+a),a.replace(/\./g,"\\"))}},{key:"setNamespace",value:function(a){this.namespace=a}}]),l}(),pt=function(l){D(a,l);var h=H(a);function a(c,s,f){var d;return E(this,a),d=h.call(this),d.name=s,d.pusher=c,d.options=f,d.eventFormatter=new pe(d.options.namespace),d.subscribe(),d}return R(a,[{key:"subscribe",value:function(){this.subscription=this.pusher.subscribe(this.name)}},{key:"unsubscribe",value:function(){this.pusher.unsubscribe(this.name)}},{key:"listen",value:function(s,f){return this.on(this.eventFormatter.format(s),f),this}},{key:"listenToAll",value:function(s){var f=this;return this.subscription.bind_global(function(d,N){if(!d.startsWith("pusher:")){var P=f.options.namespace.replace(/\./g,"\\"),T=d.startsWith(P)?d.substring(P.length+1):"."+d;s(T,N)}}),this}},{key:"stopListening",value:function(s,f){return f?this.subscription.unbind(this.eventFormatter.format(s),f):this.subscription.unbind(this.eventFormatter.format(s)),this}},{key:"stopListeningToAll",value:function(s){return s?this.subscription.unbind_global(s):this.subscription.unbind_global(),this}},{key:"subscribed",value:function(s){return this.on("pusher:subscription_succeeded",function(){s()}),this}},{key:"error",value:function(s){return this.on("pusher:subscription_error",function(f){s(f)}),this}},{key:"on",value:function(s,f){return this.subscription.bind(s,f),this}}]),a}(Et),Ri=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"whisper",value:function(s,f){return this.pusher.channels.channels[this.name].trigger("client-".concat(s),f),this}}]),a}(pt),Ii=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"whisper",value:function(s,f){return this.pusher.channels.channels[this.name].trigger("client-".concat(s),f),this}}]),a}(pt),ji=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"here",value:function(s){return this.on("pusher:subscription_succeeded",function(f){s(Object.keys(f.members).map(function(d){return f.members[d]}))}),this}},{key:"joining",value:function(s){return this.on("pusher:member_added",function(f){s(f.info)}),this}},{key:"whisper",value:function(s,f){return this.pusher.channels.channels[this.name].trigger("client-".concat(s),f),this}},{key:"leaving",value:function(s){return this.on("pusher:member_removed",function(f){s(f.info)}),this}}]),a}(pt),de=function(l){D(a,l);var h=H(a);function a(c,s,f){var d;return E(this,a),d=h.call(this),d.events={},d.listeners={},d.name=s,d.socket=c,d.options=f,d.eventFormatter=new pe(d.options.namespace),d.subscribe(),d}return R(a,[{key:"subscribe",value:function(){this.socket.emit("subscribe",{channel:this.name,auth:this.options.auth||{}})}},{key:"unsubscribe",value:function(){this.unbind(),this.socket.emit("unsubscribe",{channel:this.name,auth:this.options.auth||{}})}},{key:"listen",value:function(s,f){return this.on(this.eventFormatter.format(s),f),this}},{key:"stopListening",value:function(s,f){return this.unbindEvent(this.eventFormatter.format(s),f),this}},{key:"subscribed",value:function(s){return this.on("connect",function(f){s(f)}),this}},{key:"error",value:function(s){return this}},{key:"on",value:function(s,f){var d=this;return this.listeners[s]=this.listeners[s]||[],this.events[s]||(this.events[s]=function(N,P){d.name===N&&d.listeners[s]&&d.listeners[s].forEach(function(T){return T(P)})},this.socket.on(s,this.events[s])),this.listeners[s].push(f),this}},{key:"unbind",value:function(){var s=this;Object.keys(this.events).forEach(function(f){s.unbindEvent(f)})}},{key:"unbindEvent",value:function(s,f){this.listeners[s]=this.listeners[s]||[],f&&(this.listeners[s]=this.listeners[s].filter(function(d){return d!==f})),(!f||this.listeners[s].length===0)&&(this.events[s]&&(this.socket.removeListener(s,this.events[s]),delete this.events[s]),delete this.listeners[s])}}]),a}(Et),ve=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"whisper",value:function(s,f){return this.socket.emit("client event",{channel:this.name,event:"client-".concat(s),data:f}),this}}]),a}(de),Ni=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"here",value:function(s){return this.on("presence:subscribed",function(f){s(f.map(function(d){return d.user_info}))}),this}},{key:"joining",value:function(s){return this.on("presence:joining",function(f){return s(f.user_info)}),this}},{key:"whisper",value:function(s,f){return this.socket.emit("client event",{channel:this.name,event:"client-".concat(s),data:f}),this}},{key:"leaving",value:function(s){return this.on("presence:leaving",function(f){return s(f.user_info)}),this}}]),a}(ve),ft=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"subscribe",value:function(){}},{key:"unsubscribe",value:function(){}},{key:"listen",value:function(s,f){return this}},{key:"listenToAll",value:function(s){return this}},{key:"stopListening",value:function(s,f){return this}},{key:"subscribed",value:function(s){return this}},{key:"error",value:function(s){return this}},{key:"on",value:function(s,f){return this}}]),a}(Et),fe=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"whisper",value:function(s,f){return this}}]),a}(ft),qi=function(l){D(a,l);var h=H(a);function a(){return E(this,a),h.apply(this,arguments)}return R(a,[{key:"here",value:function(s){return this}},{key:"joining",value:function(s){return this}},{key:"whisper",value:function(s,f){return this}},{key:"leaving",value:function(s){return this}}]),a}(ft),Rt=function(){function l(h){E(this,l),this._defaultOptions={auth:{headers:{}},authEndpoint:"/broadcasting/auth",userAuthentication:{endpoint:"/broadcasting/user-auth",headers:{}},broadcaster:"pusher",csrfToken:null,bearerToken:null,host:null,key:null,namespace:"App.Events"},this.setOptions(h),this.connect()}return R(l,[{key:"setOptions",value:function(a){this.options=At(this._defaultOptions,a);var c=this.csrfToken();return c&&(this.options.auth.headers["X-CSRF-TOKEN"]=c,this.options.userAuthentication.headers["X-CSRF-TOKEN"]=c),c=this.options.bearerToken,c&&(this.options.auth.headers.Authorization="Bearer "+c,this.options.userAuthentication.headers.Authorization="Bearer "+c),a}},{key:"csrfToken",value:function(){var a;return typeof window<"u"&&window.Laravel&&window.Laravel.csrfToken?window.Laravel.csrfToken:this.options.csrfToken?this.options.csrfToken:typeof document<"u"&&typeof document.querySelector=="function"&&(a=document.querySelector('meta[name="csrf-token"]'))?a.getAttribute("content"):null}}]),l}(),Ui=function(l){D(a,l);var h=H(a);function a(){var c;return E(this,a),c=h.apply(this,arguments),c.channels={},c}return R(a,[{key:"connect",value:function(){typeof this.options.client<"u"?this.pusher=this.options.client:this.options.Pusher?this.pusher=new this.options.Pusher(this.options.key,this.options):this.pusher=new Pusher(this.options.key,this.options)}},{key:"signin",value:function(){this.pusher.signin()}},{key:"listen",value:function(s,f,d){return this.channel(s).listen(f,d)}},{key:"channel",value:function(s){return this.channels[s]||(this.channels[s]=new pt(this.pusher,s,this.options)),this.channels[s]}},{key:"privateChannel",value:function(s){return this.channels["private-"+s]||(this.channels["private-"+s]=new Ri(this.pusher,"private-"+s,this.options)),this.channels["private-"+s]}},{key:"encryptedPrivateChannel",value:function(s){return this.channels["private-encrypted-"+s]||(this.channels["private-encrypted-"+s]=new Ii(this.pusher,"private-encrypted-"+s,this.options)),this.channels["private-encrypted-"+s]}},{key:"presenceChannel",value:function(s){return this.channels["presence-"+s]||(this.channels["presence-"+s]=new ji(this.pusher,"presence-"+s,this.options)),this.channels["presence-"+s]}},{key:"leave",value:function(s){var f=this,d=[s,"private-"+s,"private-encrypted-"+s,"presence-"+s];d.forEach(function(N,P){f.leaveChannel(N)})}},{key:"leaveChannel",value:function(s){this.channels[s]&&(this.channels[s].unsubscribe(),delete this.channels[s])}},{key:"socketId",value:function(){return this.pusher.connection.socket_id}},{key:"disconnect",value:function(){this.pusher.disconnect()}}]),a}(Rt),Di=function(l){D(a,l);var h=H(a);function a(){var c;return E(this,a),c=h.apply(this,arguments),c.channels={},c}return R(a,[{key:"connect",value:function(){var s=this,f=this.getSocketIO();return this.socket=f(this.options.host,this.options),this.socket.on("reconnect",function(){Object.values(s.channels).forEach(function(d){d.subscribe()})}),this.socket}},{key:"getSocketIO",value:function(){if(typeof this.options.client<"u")return this.options.client;if(typeof io<"u")return io;throw new Error("Socket.io client not found. Should be globally available or passed via options.client")}},{key:"listen",value:function(s,f,d){return this.channel(s).listen(f,d)}},{key:"channel",value:function(s){return this.channels[s]||(this.channels[s]=new de(this.socket,s,this.options)),this.channels[s]}},{key:"privateChannel",value:function(s){return this.channels["private-"+s]||(this.channels["private-"+s]=new ve(this.socket,"private-"+s,this.options)),this.channels["private-"+s]}},{key:"presenceChannel",value:function(s){return this.channels["presence-"+s]||(this.channels["presence-"+s]=new Ni(this.socket,"presence-"+s,this.options)),this.channels["presence-"+s]}},{key:"leave",value:function(s){var f=this,d=[s,"private-"+s,"presence-"+s];d.forEach(function(N){f.leaveChannel(N)})}},{key:"leaveChannel",value:function(s){this.channels[s]&&(this.channels[s].unsubscribe(),delete this.channels[s])}},{key:"socketId",value:function(){return this.socket.id}},{key:"disconnect",value:function(){this.socket.disconnect()}}]),a}(Rt),Hi=function(l){D(a,l);var h=H(a);function a(){var c;return E(this,a),c=h.apply(this,arguments),c.channels={},c}return R(a,[{key:"connect",value:function(){}},{key:"listen",value:function(s,f,d){return new ft}},{key:"channel",value:function(s){return new ft}},{key:"privateChannel",value:function(s){return new fe}},{key:"encryptedPrivateChannel",value:function(s){return new fe}},{key:"presenceChannel",value:function(s){return new qi}},{key:"leave",value:function(s){}},{key:"leaveChannel",value:function(s){}},{key:"socketId",value:function(){return"fake-socket-id"}},{key:"disconnect",value:function(){}}]),a}(Rt),ye=function(){function l(h){E(this,l),this.options=h,this.connect(),this.options.withoutInterceptors||this.registerInterceptors()}return R(l,[{key:"channel",value:function(a){return this.connector.channel(a)}},{key:"connect",value:function(){this.options.broadcaster=="pusher"?this.connector=new Ui(this.options):this.options.broadcaster=="socket.io"?this.connector=new Di(this.options):this.options.broadcaster=="null"?this.connector=new Hi(this.options):typeof this.options.broadcaster=="function"&&(this.connector=new this.options.broadcaster(this.options))}},{key:"disconnect",value:function(){this.connector.disconnect()}},{key:"join",value:function(a){return this.connector.presenceChannel(a)}},{key:"leave",value:function(a){this.connector.leave(a)}},{key:"leaveChannel",value:function(a){this.connector.leaveChannel(a)}},{key:"leaveAllChannels",value:function(){for(var a in this.connector.channels)this.leaveChannel(a)}},{key:"listen",value:function(a,c,s){return this.connector.listen(a,c,s)}},{key:"private",value:function(a){return this.connector.privateChannel(a)}},{key:"encryptedPrivate",value:function(a){return this.connector.encryptedPrivateChannel(a)}},{key:"socketId",value:function(){return this.connector.socketId()}},{key:"registerInterceptors",value:function(){typeof Vue=="function"&&Vue.http&&this.registerVueRequestInterceptor(),typeof axios=="function"&&this.registerAxiosRequestInterceptor(),typeof jQuery=="function"&&this.registerjQueryAjaxSetup(),(typeof Turbo>"u"?"undefined":Ot(Turbo))==="object"&&this.registerTurboRequestInterceptor()}},{key:"registerVueRequestInterceptor",value:function(){var a=this;Vue.http.interceptors.push(function(c,s){a.socketId()&&c.headers.set("X-Socket-ID",a.socketId()),s()})}},{key:"registerAxiosRequestInterceptor",value:function(){var a=this;axios.interceptors.request.use(function(c){return a.socketId()&&(c.headers["X-Socket-Id"]=a.socketId()),c})}},{key:"registerjQueryAjaxSetup",value:function(){var a=this;typeof jQuery.ajax<"u"&&jQuery.ajaxPrefilter(function(c,s,f){a.socketId()&&f.setRequestHeader("X-Socket-Id",a.socketId())})}},{key:"registerTurboRequestInterceptor",value:function(){var a=this;document.addEventListener("turbo:before-fetch-request",function(c){c.detail.fetchOptions.headers["X-Socket-Id"]=a.socketId()})}}]),l}();var _e=Oi(ge(),1);window.EchoFactory=ye;window.Pusher=_e.default;})(); +/*! Bundled license information: + +pusher-js/dist/web/pusher.js: + (*! + * Pusher JavaScript Library v7.6.0 + * https://pusher.com/ + * + * Copyright 2020, Pusher + * Released under the MIT licence. + *) +*/ diff --git a/public/js/filament/forms/components/color-picker.js b/public/js/filament/forms/components/color-picker.js new file mode 100644 index 000000000..a3ff70c85 --- /dev/null +++ b/public/js/filament/forms/components/color-picker.js @@ -0,0 +1 @@ +var l=(e,t=0,r=1)=>e>r?r:eMath.round(r*e)/r;var nt={grad:360/400,turn:360,rad:360/(Math.PI*2)},B=e=>J(x(e)),x=e=>(e[0]==="#"&&(e=e.substr(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:1}:{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:1}),it=(e,t="deg")=>Number(e)*(nt[t]||1),lt=e=>{let r=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?ct({h:it(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:r[5]===void 0?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},F=lt,ct=({h:e,s:t,l:r,a:s})=>(t*=(r<50?r:100-r)/100,{h:e,s:t>0?2*t/(r+t)*100:0,v:r+t,a:s}),X=e=>pt(N(e)),Y=({h:e,s:t,v:r,a:s})=>{let o=(200-t)*r/100;return{h:n(e),s:n(o>0&&o<200?t*r/100/(o<=100?o:200-o)*100:0),l:n(o/2),a:n(s,2)}};var u=e=>{let{h:t,s:r,l:s}=Y(e);return`hsl(${t}, ${r}%, ${s}%)`},b=e=>{let{h:t,s:r,l:s,a:o}=Y(e);return`hsla(${t}, ${r}%, ${s}%, ${o})`},N=({h:e,s:t,v:r,a:s})=>{e=e/360*6,t=t/100,r=r/100;let o=Math.floor(e),a=r*(1-t),i=r*(1-(e-o)*t),E=r*(1-(1-e+o)*t),q=o%6;return{r:n([r,i,a,a,E,r][q]*255),g:n([E,r,r,i,a,a][q]*255),b:n([a,a,E,r,r,i][q]*255),a:n(s,2)}},_=e=>{let{r:t,g:r,b:s}=N(e);return`rgb(${t}, ${r}, ${s})`},U=e=>{let{r:t,g:r,b:s,a:o}=N(e);return`rgba(${t}, ${r}, ${s}, ${o})`};var A=e=>{let r=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?J({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:r[7]===void 0?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},G=A,L=e=>{let t=e.toString(16);return t.length<2?"0"+t:t},pt=({r:e,g:t,b:r})=>"#"+L(e)+L(t)+L(r),J=({r:e,g:t,b:r,a:s})=>{let o=Math.max(e,t,r),a=o-Math.min(e,t,r),i=a?o===e?(t-r)/a:o===t?2+(r-e)/a:4+(e-t)/a:0;return{h:n(60*(i<0?i+6:i)),s:n(o?a/o*100:0),v:n(o/255*100),a:s}};var I=(e,t)=>{if(e===t)return!0;for(let r in e)if(e[r]!==t[r])return!1;return!0},d=(e,t)=>e.replace(/\s/g,"")===t.replace(/\s/g,""),K=(e,t)=>e.toLowerCase()===t.toLowerCase()?!0:I(x(e),x(t));var Q={},v=e=>{let t=Q[e];return t||(t=document.createElement("template"),t.innerHTML=e,Q[e]=t),t},m=(e,t,r)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:r}))};var h=!1,O=e=>"touches"in e,ut=e=>h&&!O(e)?!1:(h||(h=O(e)),!0),W=(e,t)=>{let r=O(t)?t.touches[0]:t,s=e.el.getBoundingClientRect();m(e.el,"move",e.getMove({x:l((r.pageX-(s.left+window.pageXOffset))/s.width),y:l((r.pageY-(s.top+window.pageYOffset))/s.height)}))},dt=(e,t)=>{let r=t.keyCode;r>40||e.xy&&r<37||r<33||(t.preventDefault(),m(e.el,"move",e.getMove({x:r===39?.01:r===37?-.01:r===34?.05:r===33?-.05:r===35?1:r===36?-1:0,y:r===40?.01:r===38?-.01:0},!0)))},p=class{constructor(t,r,s,o){let a=v(`
`);t.appendChild(a.content.cloneNode(!0));let i=t.querySelector(`[part=${r}]`);i.addEventListener("mousedown",this),i.addEventListener("touchstart",this),i.addEventListener("keydown",this),this.el=i,this.xy=o,this.nodes=[i.firstChild,i]}set dragging(t){let r=t?document.addEventListener:document.removeEventListener;r(h?"touchmove":"mousemove",this),r(h?"touchend":"mouseup",this)}handleEvent(t){switch(t.type){case"mousedown":case"touchstart":if(t.preventDefault(),!ut(t)||!h&&t.button!=0)return;this.el.focus(),W(this,t),this.dragging=!0;break;case"mousemove":case"touchmove":t.preventDefault(),W(this,t);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":dt(this,t);break}}style(t){t.forEach((r,s)=>{for(let o in r)this.nodes[s].style.setProperty(o,r[o])})}};var $=class extends p{constructor(t){super(t,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:t}){this.h=t,this.style([{left:`${t/360*100}%`,color:u({h:t,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${n(t)}`)}getMove(t,r){return{h:r?l(this.h+t.x*360,0,360):360*t.x}}};var H=class extends p{constructor(t){super(t,"saturation",'aria-label="Color"',!0)}update(t){this.hsva=t,this.style([{top:`${100-t.v}%`,left:`${t.s}%`,color:u(t)},{"background-color":u({h:t.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${n(t.s)}%, Brightness ${n(t.v)}%`)}getMove(t,r){return{s:r?l(this.hsva.s+t.x*100,0,100):t.x*100,v:r?l(this.hsva.v-t.y*100,0,100):Math.round(100-t.y*100)}}};var Z=":host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{display:block;content:'';position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}";var tt="[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}";var rt="[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}";var S=Symbol("same"),et=Symbol("color"),ot=Symbol("hsva"),R=Symbol("change"),P=Symbol("update"),st=Symbol("parts"),f=Symbol("css"),g=Symbol("sliders"),c=class extends HTMLElement{static get observedAttributes(){return["color"]}get[f](){return[Z,tt,rt]}get[g](){return[H,$]}get color(){return this[et]}set color(t){if(!this[S](t)){let r=this.colorModel.toHsva(t);this[P](r),this[R](t)}}constructor(){super();let t=v(``),r=this.attachShadow({mode:"open"});r.appendChild(t.content.cloneNode(!0)),r.addEventListener("move",this),this[st]=this[g].map(s=>new s(r))}connectedCallback(){if(this.hasOwnProperty("color")){let t=this.color;delete this.color,this.color=t}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(t,r,s){let o=this.colorModel.fromAttr(s);this[S](o)||(this.color=o)}handleEvent(t){let r=this[ot],s={...r,...t.detail};this[P](s);let o;!I(s,r)&&!this[S](o=this.colorModel.fromHsva(s))&&this[R](o)}[S](t){return this.color&&this.colorModel.equal(t,this.color)}[P](t){this[ot]=t,this[st].forEach(r=>r.update(t))}[R](t){this[et]=t,m(this,"color-changed",{value:t})}};var ht={defaultColor:"#000",toHsva:B,fromHsva:X,equal:K,fromAttr:e=>e},y=class extends c{get colorModel(){return ht}};var z=class extends y{};customElements.define("hex-color-picker",z);var mt={defaultColor:"hsl(0, 0%, 0%)",toHsva:F,fromHsva:u,equal:d,fromAttr:e=>e},T=class extends c{get colorModel(){return mt}};var V=class extends T{};customElements.define("hsl-string-color-picker",V);var ft={defaultColor:"rgb(0, 0, 0)",toHsva:G,fromHsva:_,equal:d,fromAttr:e=>e},w=class extends c{get colorModel(){return ft}};var j=class extends w{};customElements.define("rgb-string-color-picker",j);var M=class extends p{constructor(t){super(t,"alpha",'aria-label="Alpha" aria-valuemin="0" aria-valuemax="1"',!1)}update(t){this.hsva=t;let r=b({...t,a:0}),s=b({...t,a:1}),o=t.a*100;this.style([{left:`${o}%`,color:b(t)},{"--gradient":`linear-gradient(90deg, ${r}, ${s}`}]);let a=n(o);this.el.setAttribute("aria-valuenow",`${a}`),this.el.setAttribute("aria-valuetext",`${a}%`)}getMove(t,r){return{a:r?l(this.hsva.a+t.x):t.x}}};var at=`[part=alpha]{flex:0 0 24px}[part=alpha]::after{display:block;content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;background-image:var(--gradient);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part^=alpha]{background-color:#fff;background-image:url('data:image/svg+xml,')}[part=alpha-pointer]{top:50%}`;var k=class extends c{get[f](){return[...super[f],at]}get[g](){return[...super[g],M]}};var gt={defaultColor:"rgba(0, 0, 0, 1)",toHsva:A,fromHsva:U,equal:d,fromAttr:e=>e},C=class extends k{get colorModel(){return gt}};var D=class extends C{};customElements.define("rgba-string-color-picker",D);function xt({isAutofocused:e,isDisabled:t,isLiveDebounced:r,isLiveOnBlur:s,state:o}){return{state:o,init:function(){this.state===null||this.state===""||this.setState(this.state),e&&this.togglePanelVisibility(this.$refs.input),this.$refs.input.addEventListener("change",a=>{this.setState(a.target.value)}),this.$refs.panel.addEventListener("color-changed",a=>{this.setState(a.detail.value)}),(r||s)&&new MutationObserver(()=>{this.$refs.panel.style.display==="none"&&this.$wire.call("$refresh")}).observe(this.$refs.panel,{attributes:!0,childList:!0})},togglePanelVisibility:function(){t||this.$refs.panel.toggle(this.$refs.input)},setState:function(a){this.state=a,this.$refs.input.value=a,this.$refs.panel.color=a},isOpen:function(){return this.$refs.panel.style.display==="block"}}}export{xt as default}; diff --git a/public/js/filament/forms/components/date-time-picker.js b/public/js/filament/forms/components/date-time-picker.js new file mode 100644 index 000000000..23bcb79f8 --- /dev/null +++ b/public/js/filament/forms/components/date-time-picker.js @@ -0,0 +1 @@ +var oi=Object.create;var en=Object.defineProperty;var di=Object.getOwnPropertyDescriptor;var _i=Object.getOwnPropertyNames;var li=Object.getPrototypeOf,fi=Object.prototype.hasOwnProperty;var H=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var mi=(n,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of _i(t))!fi.call(n,e)&&e!==s&&en(n,e,{get:()=>t[e],enumerable:!(i=di(t,e))||i.enumerable});return n};var le=(n,t,s)=>(s=n!=null?oi(li(n)):{},mi(t||!n||!n.__esModule?en(s,"default",{value:n,enumerable:!0}):s,n));var hn=H((ge,Se)=>{(function(n,t){typeof ge=="object"&&typeof Se<"u"?Se.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_customParseFormat=t()})(ge,function(){"use strict";var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d\d/,i=/\d\d?/,e=/\d*[^-_:/,()\s\d]+/,a={},u=function(_){return(_=+_)+(_>68?1900:2e3)},r=function(_){return function(h){this[_]=+h}},o=[/[+-]\d\d:?(\d\d)?|Z/,function(_){(this.zone||(this.zone={})).offset=function(h){if(!h||h==="Z")return 0;var D=h.match(/([+-]|\d\d)/g),p=60*D[1]+(+D[2]||0);return p===0?0:D[0]==="+"?-p:p}(_)}],d=function(_){var h=a[_];return h&&(h.indexOf?h:h.s.concat(h.f))},l=function(_,h){var D,p=a.meridiem;if(p){for(var b=1;b<=24;b+=1)if(_.indexOf(p(b,0,h))>-1){D=b>12;break}}else D=_===(h?"pm":"PM");return D},y={A:[e,function(_){this.afternoon=l(_,!1)}],a:[e,function(_){this.afternoon=l(_,!0)}],S:[/\d/,function(_){this.milliseconds=100*+_}],SS:[s,function(_){this.milliseconds=10*+_}],SSS:[/\d{3}/,function(_){this.milliseconds=+_}],s:[i,r("seconds")],ss:[i,r("seconds")],m:[i,r("minutes")],mm:[i,r("minutes")],H:[i,r("hours")],h:[i,r("hours")],HH:[i,r("hours")],hh:[i,r("hours")],D:[i,r("day")],DD:[s,r("day")],Do:[e,function(_){var h=a.ordinal,D=_.match(/\d+/);if(this.day=D[0],h)for(var p=1;p<=31;p+=1)h(p).replace(/\[|\]/g,"")===_&&(this.day=p)}],M:[i,r("month")],MM:[s,r("month")],MMM:[e,function(_){var h=d("months"),D=(d("monthsShort")||h.map(function(p){return p.slice(0,3)})).indexOf(_)+1;if(D<1)throw new Error;this.month=D%12||D}],MMMM:[e,function(_){var h=d("months").indexOf(_)+1;if(h<1)throw new Error;this.month=h%12||h}],Y:[/[+-]?\d+/,r("year")],YY:[s,function(_){this.year=u(_)}],YYYY:[/\d{4}/,r("year")],Z:o,ZZ:o};function f(_){var h,D;h=_,D=a&&a.formats;for(var p=(_=h.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(q,w,k){var U=k&&k.toUpperCase();return w||D[k]||n[k]||D[U].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(Z,L,M){return L||M.slice(1)})})).match(t),b=p.length,T=0;T-1)return new Date((Y==="X"?1e3:1)*m);var v=f(Y)(m),g=v.year,C=v.month,x=v.day,N=v.hours,E=v.minutes,P=v.seconds,ee=v.milliseconds,G=v.zone,X=new Date,V=x||(g||C?1:X.getDate()),F=g||X.getFullYear(),W=0;g&&!C||(W=C>0?C-1:X.getMonth());var Q=N||0,te=E||0,ye=P||0,Ye=ee||0;return G?new Date(Date.UTC(F,W,V,Q,te,ye,Ye+60*G.offset*1e3)):c?new Date(Date.UTC(F,W,V,Q,te,ye,Ye)):new Date(F,W,V,Q,te,ye,Ye)}catch{return new Date("")}}(S,I,$),this.init(),U&&U!==!0&&(this.$L=this.locale(U).$L),k&&S!=this.format(I)&&(this.$d=new Date("")),a={}}else if(I instanceof Array)for(var Z=I.length,L=1;L<=Z;L+=1){O[1]=I[L-1];var M=D.apply(this,O);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}L===Z&&(this.$d=new Date(""))}else b.call(this,T)}}})});var Mn=H((be,ke)=>{(function(n,t){typeof be=="object"&&typeof ke<"u"?ke.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_localeData=t()})(be,function(){"use strict";return function(n,t,s){var i=t.prototype,e=function(d){return d&&(d.indexOf?d:d.s)},a=function(d,l,y,f,_){var h=d.name?d:d.$locale(),D=e(h[l]),p=e(h[y]),b=D||p.map(function(S){return S.slice(0,f)});if(!_)return b;var T=h.weekStart;return b.map(function(S,$){return b[($+(T||0))%7]})},u=function(){return s.Ls[s.locale()]},r=function(d,l){return d.formats[l]||function(y){return y.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(f,_,h){return _||h.slice(1)})}(d.formats[l.toUpperCase()])},o=function(){var d=this;return{months:function(l){return l?l.format("MMMM"):a(d,"months")},monthsShort:function(l){return l?l.format("MMM"):a(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(l){return l?l.format("dddd"):a(d,"weekdays")},weekdaysMin:function(l){return l?l.format("dd"):a(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(l){return l?l.format("ddd"):a(d,"weekdaysShort","weekdays",3)},longDateFormat:function(l){return r(d.$locale(),l)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return o.bind(this)()},s.localeData=function(){var d=u();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(l){return r(d,l)},meridiem:d.meridiem,ordinal:d.ordinal}},s.months=function(){return a(u(),"months")},s.monthsShort=function(){return a(u(),"monthsShort","months",3)},s.weekdays=function(d){return a(u(),"weekdays",null,null,d)},s.weekdaysShort=function(d){return a(u(),"weekdaysShort","weekdays",3,d)},s.weekdaysMin=function(d){return a(u(),"weekdaysMin","weekdays",2,d)}}})});var yn=H((He,je)=>{(function(n,t){typeof He=="object"&&typeof je<"u"?je.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_timezone=t()})(He,function(){"use strict";var n={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(s,i,e){var a,u=function(l,y,f){f===void 0&&(f={});var _=new Date(l),h=function(D,p){p===void 0&&(p={});var b=p.timeZoneName||"short",T=D+"|"+b,S=t[T];return S||(S=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:D,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:b}),t[T]=S),S}(y,f);return h.formatToParts(_)},r=function(l,y){for(var f=u(l,y),_=[],h=0;h=0&&(_[T]=parseInt(b,10))}var S=_[3],$=S===24?0:S,O=_[0]+"-"+_[1]+"-"+_[2]+" "+$+":"+_[4]+":"+_[5]+":000",I=+l;return(e.utc(O).valueOf()-(I-=I%1e3))/6e4},o=i.prototype;o.tz=function(l,y){l===void 0&&(l=a);var f=this.utcOffset(),_=this.toDate(),h=_.toLocaleString("en-US",{timeZone:l}),D=Math.round((_-new Date(h))/1e3/60),p=e(h,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(15*-Math.round(_.getTimezoneOffset()/15)-D,!0);if(y){var b=p.utcOffset();p=p.add(f-b,"minute")}return p.$x.$timezone=l,p},o.offsetName=function(l){var y=this.$x.$timezone||e.tz.guess(),f=u(this.valueOf(),y,{timeZoneName:l}).find(function(_){return _.type.toLowerCase()==="timezonename"});return f&&f.value};var d=o.startOf;o.startOf=function(l,y){if(!this.$x||!this.$x.$timezone)return d.call(this,l,y);var f=e(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return d.call(f,l,y).tz(this.$x.$timezone,!0)},e.tz=function(l,y,f){var _=f&&y,h=f||y||a,D=r(+e(),h);if(typeof l!="string")return e(l).tz(h);var p=function($,O,I){var q=$-60*O*1e3,w=r(q,I);if(O===w)return[q,O];var k=r(q-=60*(w-O)*1e3,I);return w===k?[q,w]:[$-60*Math.min(w,k)*1e3,Math.max(w,k)]}(e.utc(l,_).valueOf(),D,h),b=p[0],T=p[1],S=e(b).utcOffset(T);return S.$x.$timezone=h,S},e.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},e.tz.setDefault=function(l){a=l}}})});var Yn=H((Te,we)=>{(function(n,t){typeof Te=="object"&&typeof we<"u"?we.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_utc=t()})(Te,function(){"use strict";var n="minute",t=/[+-]\d\d(?::?\d\d)?/g,s=/([+-]|\d\d)/g;return function(i,e,a){var u=e.prototype;a.utc=function(_){var h={date:_,utc:!0,args:arguments};return new e(h)},u.utc=function(_){var h=a(this.toDate(),{locale:this.$L,utc:!0});return _?h.add(this.utcOffset(),n):h},u.local=function(){return a(this.toDate(),{locale:this.$L,utc:!1})};var r=u.parse;u.parse=function(_){_.utc&&(this.$u=!0),this.$utils().u(_.$offset)||(this.$offset=_.$offset),r.call(this,_)};var o=u.init;u.init=function(){if(this.$u){var _=this.$d;this.$y=_.getUTCFullYear(),this.$M=_.getUTCMonth(),this.$D=_.getUTCDate(),this.$W=_.getUTCDay(),this.$H=_.getUTCHours(),this.$m=_.getUTCMinutes(),this.$s=_.getUTCSeconds(),this.$ms=_.getUTCMilliseconds()}else o.call(this)};var d=u.utcOffset;u.utcOffset=function(_,h){var D=this.$utils().u;if(D(_))return this.$u?0:D(this.$offset)?d.call(this):this.$offset;if(typeof _=="string"&&(_=function(S){S===void 0&&(S="");var $=S.match(t);if(!$)return null;var O=(""+$[0]).match(s)||["-",0,0],I=O[0],q=60*+O[1]+ +O[2];return q===0?0:I==="+"?q:-q}(_),_===null))return this;var p=Math.abs(_)<=16?60*_:_,b=this;if(h)return b.$offset=p,b.$u=_===0,b;if(_!==0){var T=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(b=this.local().add(p+T,n)).$offset=p,b.$x.$localOffset=T}else b=this.utc();return b};var l=u.format;u.format=function(_){var h=_||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return l.call(this,h)},u.valueOf=function(){var _=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*_},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var y=u.toDate;u.toDate=function(_){return _==="s"&&this.$offset?a(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():y.call(this)};var f=u.diff;u.diff=function(_,h,D){if(_&&this.$u===_.$u)return f.call(this,_,h,D);var p=this.local(),b=a(_).local();return f.call(p,b,h,D)}}})});var j=H(($e,Ce)=>{(function(n,t){typeof $e=="object"&&typeof Ce<"u"?Ce.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs=t()})($e,function(){"use strict";var n=1e3,t=6e4,s=36e5,i="millisecond",e="second",a="minute",u="hour",r="day",o="week",d="month",l="quarter",y="year",f="date",_="Invalid Date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,D=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(L){var M=["th","st","nd","rd"],m=L%100;return"["+L+(M[(m-20)%10]||M[m]||M[0])+"]"}},b=function(L,M,m){var Y=String(L);return!Y||Y.length>=M?L:""+Array(M+1-Y.length).join(m)+L},T={s:b,z:function(L){var M=-L.utcOffset(),m=Math.abs(M),Y=Math.floor(m/60),c=m%60;return(M<=0?"+":"-")+b(Y,2,"0")+":"+b(c,2,"0")},m:function L(M,m){if(M.date()1)return L(g[0])}else{var C=M.name;$[C]=M,c=C}return!Y&&c&&(S=c),c||!Y&&S},w=function(L,M){if(I(L))return L.clone();var m=typeof M=="object"?M:{};return m.date=L,m.args=arguments,new U(m)},k=T;k.l=q,k.i=I,k.w=function(L,M){return w(L,{locale:M.$L,utc:M.$u,x:M.$x,$offset:M.$offset})};var U=function(){function L(m){this.$L=q(m.locale,null,!0),this.parse(m),this.$x=this.$x||m.x||{},this[O]=!0}var M=L.prototype;return M.parse=function(m){this.$d=function(Y){var c=Y.date,v=Y.utc;if(c===null)return new Date(NaN);if(k.u(c))return new Date;if(c instanceof Date)return new Date(c);if(typeof c=="string"&&!/Z$/i.test(c)){var g=c.match(h);if(g){var C=g[2]-1||0,x=(g[7]||"0").substring(0,3);return v?new Date(Date.UTC(g[1],C,g[3]||1,g[4]||0,g[5]||0,g[6]||0,x)):new Date(g[1],C,g[3]||1,g[4]||0,g[5]||0,g[6]||0,x)}}return new Date(c)}(m),this.init()},M.init=function(){var m=this.$d;this.$y=m.getFullYear(),this.$M=m.getMonth(),this.$D=m.getDate(),this.$W=m.getDay(),this.$H=m.getHours(),this.$m=m.getMinutes(),this.$s=m.getSeconds(),this.$ms=m.getMilliseconds()},M.$utils=function(){return k},M.isValid=function(){return this.$d.toString()!==_},M.isSame=function(m,Y){var c=w(m);return this.startOf(Y)<=c&&c<=this.endOf(Y)},M.isAfter=function(m,Y){return w(m){(function(n,t){typeof Oe=="object"&&typeof ze<"u"?ze.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ar=t(n.dayjs)})(Oe,function(n){"use strict";function t(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=t(n),i="\u064A\u0646\u0627\u064A\u0631_\u0641\u0628\u0631\u0627\u064A\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064A\u0644_\u0645\u0627\u064A\u0648_\u064A\u0648\u0646\u064A\u0648_\u064A\u0648\u0644\u064A\u0648_\u0623\u063A\u0633\u0637\u0633_\u0633\u0628\u062A\u0645\u0628\u0631_\u0623\u0643\u062A\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062F\u064A\u0633\u0645\u0628\u0631".split("_"),e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},a={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},u={name:"ar",weekdays:"\u0627\u0644\u0623\u062D\u062F_\u0627\u0644\u0625\u062B\u0646\u064A\u0646_\u0627\u0644\u062B\u0644\u0627\u062B\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062E\u0645\u064A\u0633_\u0627\u0644\u062C\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062A".split("_"),weekdaysShort:"\u0623\u062D\u062F_\u0625\u062B\u0646\u064A\u0646_\u062B\u0644\u0627\u062B\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062E\u0645\u064A\u0633_\u062C\u0645\u0639\u0629_\u0633\u0628\u062A".split("_"),weekdaysMin:"\u062D_\u0646_\u062B_\u0631_\u062E_\u062C_\u0633".split("_"),months:i,monthsShort:i,weekStart:6,meridiem:function(r){return r>12?"\u0645":"\u0635"},relativeTime:{future:"\u0628\u0639\u062F %s",past:"\u0645\u0646\u0630 %s",s:"\u062B\u0627\u0646\u064A\u0629 \u0648\u0627\u062D\u062F\u0629",m:"\u062F\u0642\u064A\u0642\u0629 \u0648\u0627\u062D\u062F\u0629",mm:"%d \u062F\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629 \u0648\u0627\u062D\u062F\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062A",d:"\u064A\u0648\u0645 \u0648\u0627\u062D\u062F",dd:"%d \u0623\u064A\u0627\u0645",M:"\u0634\u0647\u0631 \u0648\u0627\u062D\u062F",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0639\u0627\u0645 \u0648\u0627\u062D\u062F",yy:"%d \u0623\u0639\u0648\u0627\u0645"},preparse:function(r){return r.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(o){return a[o]}).replace(/،/g,",")},postformat:function(r){return r.replace(/\d/g,function(o){return e[o]}).replace(/,/g,"\u060C")},ordinal:function(r){return r},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200FM/\u200FYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return s.default.locale(u,null,!0),u})});var Dn=H((Ae,Ie)=>{(function(n,t){typeof Ae=="object"&&typeof Ie<"u"?Ie.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_bs=t(n.dayjs)})(Ae,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"bs",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010Detvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._\u010Det._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010De_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return s.default.locale(i,null,!0),i})});var Ln=H((xe,qe)=>{(function(n,t){typeof xe=="object"&&typeof qe<"u"?qe.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ca=t(n.dayjs)})(xe,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ca",weekdays:"Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte".split("_"),weekdaysShort:"Dg._Dl._Dt._Dc._Dj._Dv._Ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),months:"Gener_Febrer_Mar\xE7_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),monthsShort:"Gen._Febr._Mar\xE7_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",ll:"D MMM YYYY",lll:"D MMM YYYY, H:mm",llll:"ddd D MMM YYYY, H:mm"},relativeTime:{future:"d'aqu\xED %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:function(e){return""+e+(e===1||e===3?"r":e===2?"n":e===4?"t":"\xE8")}};return s.default.locale(i,null,!0),i})});var Ne=H((Me,vn)=>{(function(n,t){typeof Me=="object"&&typeof vn<"u"?t(Me,j()):typeof define=="function"&&define.amd?define(["exports","dayjs"],t):t((n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ku={},n.dayjs)})(Me,function(n,t){"use strict";function s(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var i=s(t),e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},a={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},u=["\u06A9\u0627\u0646\u0648\u0648\u0646\u06CC \u062F\u0648\u0648\u06D5\u0645","\u0634\u0648\u0628\u0627\u062A","\u0626\u0627\u062F\u0627\u0631","\u0646\u06CC\u0633\u0627\u0646","\u0626\u0627\u06CC\u0627\u0631","\u062D\u0648\u0632\u06D5\u06CC\u0631\u0627\u0646","\u062A\u06D5\u0645\u0645\u0648\u0648\u0632","\u0626\u0627\u0628","\u0626\u06D5\u06CC\u0644\u0648\u0648\u0644","\u062A\u0634\u0631\u06CC\u0646\u06CC \u06CC\u06D5\u06A9\u06D5\u0645","\u062A\u0634\u0631\u06CC\u0646\u06CC \u062F\u0648\u0648\u06D5\u0645","\u06A9\u0627\u0646\u0648\u0648\u0646\u06CC \u06CC\u06D5\u06A9\u06D5\u0645"],r={name:"ku",months:u,monthsShort:u,weekdays:"\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5_\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5_\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5_\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5_\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5_\u0647\u06D5\u06CC\u0646\u06CC_\u0634\u06D5\u0645\u0645\u06D5".split("_"),weekdaysShort:"\u06CC\u06D5\u06A9\u0634\u06D5\u0645_\u062F\u0648\u0648\u0634\u06D5\u0645_\u0633\u06CE\u0634\u06D5\u0645_\u0686\u0648\u0627\u0631\u0634\u06D5\u0645_\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645_\u0647\u06D5\u06CC\u0646\u06CC_\u0634\u06D5\u0645\u0645\u06D5".split("_"),weekStart:6,weekdaysMin:"\u06CC_\u062F_\u0633_\u0686_\u067E_\u0647\u0640_\u0634".split("_"),preparse:function(o){return o.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(d){return a[d]}).replace(/،/g,",")},postformat:function(o){return o.replace(/\d/g,function(d){return e[d]}).replace(/,/g,"\u060C")},ordinal:function(o){return o},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiem:function(o){return o<12?"\u067E.\u0646":"\u062F.\u0646"},relativeTime:{future:"\u0644\u06D5 %s",past:"\u0644\u06D5\u0645\u06D5\u0648\u067E\u06CE\u0634 %s",s:"\u0686\u06D5\u0646\u062F \u0686\u0631\u06A9\u06D5\u06CC\u06D5\u06A9",m:"\u06CC\u06D5\u06A9 \u062E\u0648\u0644\u06D5\u06A9",mm:"%d \u062E\u0648\u0644\u06D5\u06A9",h:"\u06CC\u06D5\u06A9 \u06A9\u0627\u062A\u0698\u0645\u06CE\u0631",hh:"%d \u06A9\u0627\u062A\u0698\u0645\u06CE\u0631",d:"\u06CC\u06D5\u06A9 \u0695\u06C6\u0698",dd:"%d \u0695\u06C6\u0698",M:"\u06CC\u06D5\u06A9 \u0645\u0627\u0646\u06AF",MM:"%d \u0645\u0627\u0646\u06AF",y:"\u06CC\u06D5\u06A9 \u0633\u0627\u06B5",yy:"%d \u0633\u0627\u06B5"}};i.default.locale(r,null,!0),n.default=r,n.englishToArabicNumbersMap=e,Object.defineProperty(n,"__esModule",{value:!0})})});var gn=H((Ee,Fe)=>{(function(n,t){typeof Ee=="object"&&typeof Fe<"u"?Fe.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_cs=t(n.dayjs)})(Ee,function(n){"use strict";function t(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var s=t(n);function i(u){return u>1&&u<5&&~~(u/10)!=1}function e(u,r,o,d){var l=u+" ";switch(o){case"s":return r||d?"p\xE1r sekund":"p\xE1r sekundami";case"m":return r?"minuta":d?"minutu":"minutou";case"mm":return r||d?l+(i(u)?"minuty":"minut"):l+"minutami";case"h":return r?"hodina":d?"hodinu":"hodinou";case"hh":return r||d?l+(i(u)?"hodiny":"hodin"):l+"hodinami";case"d":return r||d?"den":"dnem";case"dd":return r||d?l+(i(u)?"dny":"dn\xED"):l+"dny";case"M":return r||d?"m\u011Bs\xEDc":"m\u011Bs\xEDcem";case"MM":return r||d?l+(i(u)?"m\u011Bs\xEDce":"m\u011Bs\xEDc\u016F"):l+"m\u011Bs\xEDci";case"y":return r||d?"rok":"rokem";case"yy":return r||d?l+(i(u)?"roky":"let"):l+"lety"}}var a={name:"cs",weekdays:"ned\u011Ble_pond\u011Bl\xED_\xFAter\xFD_st\u0159eda_\u010Dtvrtek_p\xE1tek_sobota".split("_"),weekdaysShort:"ne_po_\xFAt_st_\u010Dt_p\xE1_so".split("_"),weekdaysMin:"ne_po_\xFAt_st_\u010Dt_p\xE1_so".split("_"),months:"leden_\xFAnor_b\u0159ezen_duben_kv\u011Bten_\u010Derven_\u010Dervenec_srpen_z\xE1\u0159\xED_\u0159\xEDjen_listopad_prosinec".split("_"),monthsShort:"led_\xFAno_b\u0159e_dub_kv\u011B_\u010Dvn_\u010Dvc_srp_z\xE1\u0159_\u0159\xEDj_lis_pro".split("_"),weekStart:1,yearStart:4,ordinal:function(u){return u+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e}};return s.default.locale(a,null,!0),a})});var Sn=H((Je,Ue)=>{(function(n,t){typeof Je=="object"&&typeof Ue<"u"?Ue.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_cy=t(n.dayjs)})(Je,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"cy",weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),weekStart:1,weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"mewn %s",past:"%s yn \xF4l",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"}};return s.default.locale(i,null,!0),i})});var bn=H((Pe,We)=>{(function(n,t){typeof Pe=="object"&&typeof We<"u"?We.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_da=t(n.dayjs)})(Pe,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"da",weekdays:"s\xF8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xF8rdag".split("_"),weekdaysShort:"s\xF8n._man._tirs._ons._tors._fre._l\xF8r.".split("_"),weekdaysMin:"s\xF8._ma._ti._on._to._fr._l\xF8.".split("_"),months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.".split("_"),weekStart:1,ordinal:function(e){return e+"."},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xE5 sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xE5ned",MM:"%d m\xE5neder",y:"et \xE5r",yy:"%d \xE5r"}};return s.default.locale(i,null,!0),i})});var kn=H((Re,Ze)=>{(function(n,t){typeof Re=="object"&&typeof Ze<"u"?Ze.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_de=t(n.dayjs)})(Re,function(n){"use strict";function t(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var s=t(n),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function e(u,r,o){var d=i[o];return Array.isArray(d)&&(d=d[r?0:1]),d.replace("%d",u)}var a={name:"de",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_M\xE4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xE4rz_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(u){return u+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e}};return s.default.locale(a,null,!0),a})});var Hn=H((Ve,Ge)=>{(function(n,t){typeof Ve=="object"&&typeof Ge<"u"?Ge.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_en=t()})(Ve,function(){"use strict";return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(n){var t=["th","st","nd","rd"],s=n%100;return"["+n+(t[(s-20)%10]||t[s]||t[0])+"]"}}})});var jn=H((Ke,Be)=>{(function(n,t){typeof Ke=="object"&&typeof Be<"u"?Be.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_es=t(n.dayjs)})(Ke,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xE9rcoles_jueves_viernes_s\xE1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xE9._jue._vie._s\xE1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xE1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xEDa",dd:"%d d\xEDas",M:"un mes",MM:"%d meses",y:"un a\xF1o",yy:"%d a\xF1os"},ordinal:function(e){return e+"\xBA"}};return s.default.locale(i,null,!0),i})});var Tn=H((Xe,Qe)=>{(function(n,t){typeof Xe=="object"&&typeof Qe<"u"?Qe.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_et=t(n.dayjs)})(Xe,function(n){"use strict";function t(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var s=t(n);function i(a,u,r,o){var d={s:["m\xF5ne sekundi","m\xF5ni sekund","paar sekundit"],m:["\xFChe minuti","\xFCks minut"],mm:["%d minuti","%d minutit"],h:["\xFChe tunni","tund aega","\xFCks tund"],hh:["%d tunni","%d tundi"],d:["\xFChe p\xE4eva","\xFCks p\xE4ev"],M:["kuu aja","kuu aega","\xFCks kuu"],MM:["%d kuu","%d kuud"],y:["\xFChe aasta","aasta","\xFCks aasta"],yy:["%d aasta","%d aastat"]};return u?(d[r][2]?d[r][2]:d[r][1]).replace("%d",a):(o?d[r][0]:d[r][1]).replace("%d",a)}var e={name:"et",weekdays:"p\xFChap\xE4ev_esmasp\xE4ev_teisip\xE4ev_kolmap\xE4ev_neljap\xE4ev_reede_laup\xE4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),months:"jaanuar_veebruar_m\xE4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xE4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),ordinal:function(a){return a+"."},weekStart:1,relativeTime:{future:"%s p\xE4rast",past:"%s tagasi",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:"%d p\xE4eva",M:i,MM:i,y:i,yy:i},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return s.default.locale(e,null,!0),e})});var wn=H((et,tt)=>{(function(n,t){typeof et=="object"&&typeof tt<"u"?tt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_fa=t(n.dayjs)})(et,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"fa",weekdays:"\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06CC_\u062F_\u0633_\u0686_\u067E_\u062C_\u0634".split("_"),weekStart:6,months:"\u0698\u0627\u0646\u0648\u06CC\u0647_\u0641\u0648\u0631\u06CC\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06CC\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06CC\u0647_\u0627\u0648\u062A_\u0633\u067E\u062A\u0627\u0645\u0628\u0631_\u0627\u06A9\u062A\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062F\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06CC\u0647_\u0641\u0648\u0631\u06CC\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06CC\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06CC\u0647_\u0627\u0648\u062A_\u0633\u067E\u062A\u0627\u0645\u0628\u0631_\u0627\u06A9\u062A\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062F\u0633\u0627\u0645\u0628\u0631".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\u062F\u0631 %s",past:"%s \u067E\u06CC\u0634",s:"\u0686\u0646\u062F \u062B\u0627\u0646\u06CC\u0647",m:"\u06CC\u06A9 \u062F\u0642\u06CC\u0642\u0647",mm:"%d \u062F\u0642\u06CC\u0642\u0647",h:"\u06CC\u06A9 \u0633\u0627\u0639\u062A",hh:"%d \u0633\u0627\u0639\u062A",d:"\u06CC\u06A9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06CC\u06A9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06CC\u06A9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return s.default.locale(i,null,!0),i})});var $n=H((nt,it)=>{(function(n,t){typeof nt=="object"&&typeof it<"u"?it.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_fi=t(n.dayjs)})(nt,function(n){"use strict";function t(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var s=t(n);function i(a,u,r,o){var d={s:"muutama sekunti",m:"minuutti",mm:"%d minuuttia",h:"tunti",hh:"%d tuntia",d:"p\xE4iv\xE4",dd:"%d p\xE4iv\xE4\xE4",M:"kuukausi",MM:"%d kuukautta",y:"vuosi",yy:"%d vuotta",numbers:"nolla_yksi_kaksi_kolme_nelj\xE4_viisi_kuusi_seitsem\xE4n_kahdeksan_yhdeks\xE4n".split("_")},l={s:"muutaman sekunnin",m:"minuutin",mm:"%d minuutin",h:"tunnin",hh:"%d tunnin",d:"p\xE4iv\xE4n",dd:"%d p\xE4iv\xE4n",M:"kuukauden",MM:"%d kuukauden",y:"vuoden",yy:"%d vuoden",numbers:"nollan_yhden_kahden_kolmen_nelj\xE4n_viiden_kuuden_seitsem\xE4n_kahdeksan_yhdeks\xE4n".split("_")},y=o&&!u?l:d,f=y[r];return a<10?f.replace("%d",y.numbers[a]):f.replace("%d",a)}var e={name:"fi",weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xE4kuu_hein\xE4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xE4_hein\xE4_elo_syys_loka_marras_joulu".split("_"),ordinal:function(a){return a+"."},weekStart:1,yearStart:4,relativeTime:{future:"%s p\xE4\xE4st\xE4",past:"%s sitten",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM[ta] YYYY",LLL:"D. MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, D. MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [klo] HH.mm",llll:"ddd, D. MMM YYYY, [klo] HH.mm"}};return s.default.locale(e,null,!0),e})});var Cn=H((st,rt)=>{(function(n,t){typeof st=="object"&&typeof rt<"u"?rt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_fr=t(n.dayjs)})(st,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"fr",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),months:"janvier_f\xE9vrier_mars_avril_mai_juin_juillet_ao\xFBt_septembre_octobre_novembre_d\xE9cembre".split("_"),monthsShort:"janv._f\xE9vr._mars_avr._mai_juin_juil._ao\xFBt_sept._oct._nov._d\xE9c.".split("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(e){return""+e+(e===1?"er":"")}};return s.default.locale(i,null,!0),i})});var On=H((at,ut)=>{(function(n,t){typeof at=="object"&&typeof ut<"u"?ut.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_hi=t(n.dayjs)})(at,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"hi",weekdays:"\u0930\u0935\u093F\u0935\u093E\u0930_\u0938\u094B\u092E\u0935\u093E\u0930_\u092E\u0902\u0917\u0932\u0935\u093E\u0930_\u092C\u0941\u0927\u0935\u093E\u0930_\u0917\u0941\u0930\u0942\u0935\u093E\u0930_\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930_\u0936\u0928\u093F\u0935\u093E\u0930".split("_"),months:"\u091C\u0928\u0935\u0930\u0940_\u092B\u093C\u0930\u0935\u0930\u0940_\u092E\u093E\u0930\u094D\u091A_\u0905\u092A\u094D\u0930\u0948\u0932_\u092E\u0908_\u091C\u0942\u0928_\u091C\u0941\u0932\u093E\u0908_\u0905\u0917\u0938\u094D\u0924_\u0938\u093F\u0924\u092E\u094D\u092C\u0930_\u0905\u0915\u094D\u091F\u0942\u092C\u0930_\u0928\u0935\u092E\u094D\u092C\u0930_\u0926\u093F\u0938\u092E\u094D\u092C\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093F_\u0938\u094B\u092E_\u092E\u0902\u0917\u0932_\u092C\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094D\u0930_\u0936\u0928\u093F".split("_"),monthsShort:"\u091C\u0928._\u092B\u093C\u0930._\u092E\u093E\u0930\u094D\u091A_\u0905\u092A\u094D\u0930\u0948._\u092E\u0908_\u091C\u0942\u0928_\u091C\u0941\u0932._\u0905\u0917._\u0938\u093F\u0924._\u0905\u0915\u094D\u091F\u0942._\u0928\u0935._\u0926\u093F\u0938.".split("_"),weekdaysMin:"\u0930_\u0938\u094B_\u092E\u0902_\u092C\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u092C\u091C\u0947",LTS:"A h:mm:ss \u092C\u091C\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092C\u091C\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092C\u091C\u0947"},relativeTime:{future:"%s \u092E\u0947\u0902",past:"%s \u092A\u0939\u0932\u0947",s:"\u0915\u0941\u091B \u0939\u0940 \u0915\u094D\u0937\u0923",m:"\u090F\u0915 \u092E\u093F\u0928\u091F",mm:"%d \u092E\u093F\u0928\u091F",h:"\u090F\u0915 \u0918\u0902\u091F\u093E",hh:"%d \u0918\u0902\u091F\u0947",d:"\u090F\u0915 \u0926\u093F\u0928",dd:"%d \u0926\u093F\u0928",M:"\u090F\u0915 \u092E\u0939\u0940\u0928\u0947",MM:"%d \u092E\u0939\u0940\u0928\u0947",y:"\u090F\u0915 \u0935\u0930\u094D\u0937",yy:"%d \u0935\u0930\u094D\u0937"}};return s.default.locale(i,null,!0),i})});var zn=H((ot,dt)=>{(function(n,t){typeof ot=="object"&&typeof dt<"u"?dt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_hu=t(n.dayjs)})(ot,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"hu",weekdays:"vas\xE1rnap_h\xE9tf\u0151_kedd_szerda_cs\xFCt\xF6rt\xF6k_p\xE9ntek_szombat".split("_"),weekdaysShort:"vas_h\xE9t_kedd_sze_cs\xFCt_p\xE9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),months:"janu\xE1r_febru\xE1r_m\xE1rcius_\xE1prilis_m\xE1jus_j\xFAnius_j\xFAlius_augusztus_szeptember_okt\xF3ber_november_december".split("_"),monthsShort:"jan_feb_m\xE1rc_\xE1pr_m\xE1j_j\xFAn_j\xFAl_aug_szept_okt_nov_dec".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s m\xFAlva",past:"%s",s:function(e,a,u,r){return"n\xE9h\xE1ny m\xE1sodperc"+(r||a?"":"e")},m:function(e,a,u,r){return"egy perc"+(r||a?"":"e")},mm:function(e,a,u,r){return e+" perc"+(r||a?"":"e")},h:function(e,a,u,r){return"egy "+(r||a?"\xF3ra":"\xF3r\xE1ja")},hh:function(e,a,u,r){return e+" "+(r||a?"\xF3ra":"\xF3r\xE1ja")},d:function(e,a,u,r){return"egy "+(r||a?"nap":"napja")},dd:function(e,a,u,r){return e+" "+(r||a?"nap":"napja")},M:function(e,a,u,r){return"egy "+(r||a?"h\xF3nap":"h\xF3napja")},MM:function(e,a,u,r){return e+" "+(r||a?"h\xF3nap":"h\xF3napja")},y:function(e,a,u,r){return"egy "+(r||a?"\xE9v":"\xE9ve")},yy:function(e,a,u,r){return e+" "+(r||a?"\xE9v":"\xE9ve")}},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"}};return s.default.locale(i,null,!0),i})});var An=H((_t,lt)=>{(function(n,t){typeof _t=="object"&&typeof lt<"u"?lt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_hy_am=t(n.dayjs)})(_t,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"hy-am",weekdays:"\u056F\u056B\u0580\u0561\u056F\u056B_\u0565\u0580\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B_\u0570\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),months:"\u0570\u0578\u0582\u0576\u057E\u0561\u0580\u056B_\u0583\u0565\u057F\u0580\u057E\u0561\u0580\u056B_\u0574\u0561\u0580\u057F\u056B_\u0561\u057A\u0580\u056B\u056C\u056B_\u0574\u0561\u0575\u056B\u057D\u056B_\u0570\u0578\u0582\u0576\u056B\u057D\u056B_\u0570\u0578\u0582\u056C\u056B\u057D\u056B_\u0585\u0563\u0578\u057D\u057F\u0578\u057D\u056B_\u057D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580\u056B_\u0570\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580\u056B_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056B_\u0564\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580\u056B".split("_"),weekStart:1,weekdaysShort:"\u056F\u0580\u056F_\u0565\u0580\u056F_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),monthsShort:"\u0570\u0576\u057E_\u0583\u057F\u0580_\u0574\u0580\u057F_\u0561\u057A\u0580_\u0574\u0575\u057D_\u0570\u0576\u057D_\u0570\u056C\u057D_\u0585\u0563\u057D_\u057D\u057A\u057F_\u0570\u056F\u057F_\u0576\u0574\u0562_\u0564\u056F\u057F".split("_"),weekdaysMin:"\u056F\u0580\u056F_\u0565\u0580\u056F_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},relativeTime:{future:"%s \u0570\u0565\u057F\u0578",past:"%s \u0561\u057C\u0561\u057B",s:"\u0574\u056B \u0584\u0561\u0576\u056B \u057E\u0561\u0575\u0580\u056F\u0575\u0561\u0576",m:"\u0580\u0578\u057A\u0565",mm:"%d \u0580\u0578\u057A\u0565",h:"\u056A\u0561\u0574",hh:"%d \u056A\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056B\u057D",MM:"%d \u0561\u0574\u056B\u057D",y:"\u057F\u0561\u0580\u056B",yy:"%d \u057F\u0561\u0580\u056B"}};return s.default.locale(i,null,!0),i})});var In=H((ft,mt)=>{(function(n,t){typeof ft=="object"&&typeof mt<"u"?mt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_id=t(n.dayjs)})(ft,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"id",weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var xn=H((ct,ht)=>{(function(n,t){typeof ct=="object"&&typeof ht<"u"?ht.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_it=t(n.dayjs)})(ct,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"it",weekdays:"domenica_luned\xEC_marted\xEC_mercoled\xEC_gioved\xEC_venerd\xEC_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"qualche secondo",m:"un minuto",mm:"%d minuti",h:"un' ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:function(e){return e+"\xBA"}};return s.default.locale(i,null,!0),i})});var qn=H((Mt,yt)=>{(function(n,t){typeof Mt=="object"&&typeof yt<"u"?yt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ja=t(n.dayjs)})(Mt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ja",weekdays:"\u65E5\u66DC\u65E5_\u6708\u66DC\u65E5_\u706B\u66DC\u65E5_\u6C34\u66DC\u65E5_\u6728\u66DC\u65E5_\u91D1\u66DC\u65E5_\u571F\u66DC\u65E5".split("_"),weekdaysShort:"\u65E5_\u6708_\u706B_\u6C34_\u6728_\u91D1_\u571F".split("_"),weekdaysMin:"\u65E5_\u6708_\u706B_\u6C34_\u6728_\u91D1_\u571F".split("_"),months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e){return e+"\u65E5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5 HH:mm",LLLL:"YYYY\u5E74M\u6708D\u65E5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5(ddd) HH:mm"},meridiem:function(e){return e<12?"\u5348\u524D":"\u5348\u5F8C"},relativeTime:{future:"%s\u5F8C",past:"%s\u524D",s:"\u6570\u79D2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65E5",dd:"%d\u65E5",M:"1\u30F6\u6708",MM:"%d\u30F6\u6708",y:"1\u5E74",yy:"%d\u5E74"}};return s.default.locale(i,null,!0),i})});var Nn=H((Yt,pt)=>{(function(n,t){typeof Yt=="object"&&typeof pt<"u"?pt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ka=t(n.dayjs)})(Yt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ka",weekdays:"\u10D9\u10D5\u10D8\u10E0\u10D0_\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8_\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8".split("_"),weekdaysShort:"\u10D9\u10D5\u10D8_\u10DD\u10E0\u10E8_\u10E1\u10D0\u10DB_\u10DD\u10D7\u10EE_\u10EE\u10E3\u10D7_\u10DE\u10D0\u10E0_\u10E8\u10D0\u10D1".split("_"),weekdaysMin:"\u10D9\u10D5_\u10DD\u10E0_\u10E1\u10D0_\u10DD\u10D7_\u10EE\u10E3_\u10DE\u10D0_\u10E8\u10D0".split("_"),months:"\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8_\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8_\u10DB\u10D0\u10E0\u10E2\u10D8_\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8_\u10DB\u10D0\u10D8\u10E1\u10D8_\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8_\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8_\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD_\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8_\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8_\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8_\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8".split("_"),monthsShort:"\u10D8\u10D0\u10DC_\u10D7\u10D4\u10D1_\u10DB\u10D0\u10E0_\u10D0\u10DE\u10E0_\u10DB\u10D0\u10D8_\u10D8\u10D5\u10DC_\u10D8\u10D5\u10DA_\u10D0\u10D2\u10D5_\u10E1\u10D4\u10E5_\u10DD\u10E5\u10E2_\u10DC\u10DD\u10D4_\u10D3\u10D4\u10D9".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"%s \u10E8\u10D4\u10DB\u10D3\u10D4\u10D2",past:"%s \u10EC\u10D8\u10DC",s:"\u10EC\u10D0\u10DB\u10D8",m:"\u10EC\u10E3\u10D7\u10D8",mm:"%d \u10EC\u10E3\u10D7\u10D8",h:"\u10E1\u10D0\u10D0\u10D7\u10D8",hh:"%d \u10E1\u10D0\u10D0\u10D7\u10D8\u10E1",d:"\u10D3\u10E6\u10D4\u10E1",dd:"%d \u10D3\u10E6\u10D8\u10E1 \u10D2\u10D0\u10DC\u10DB\u10D0\u10D5\u10DA\u10DD\u10D1\u10D0\u10E8\u10D8",M:"\u10D7\u10D5\u10D8\u10E1",MM:"%d \u10D7\u10D5\u10D8\u10E1",y:"\u10EC\u10D4\u10DA\u10D8",yy:"%d \u10EC\u10DA\u10D8\u10E1"},ordinal:function(e){return e}};return s.default.locale(i,null,!0),i})});var En=H((Dt,Lt)=>{(function(n,t){typeof Dt=="object"&&typeof Lt<"u"?Lt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_km=t(n.dayjs)})(Dt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"km",weekdays:"\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799_\u1785\u17D0\u1793\u17D2\u1791_\u17A2\u1784\u17D2\u1782\u17B6\u179A_\u1796\u17BB\u1792_\u1796\u17D2\u179A\u17A0\u179F\u17D2\u1794\u178F\u17B7\u17CD_\u179F\u17BB\u1780\u17D2\u179A_\u179F\u17C5\u179A\u17CD".split("_"),months:"\u1798\u1780\u179A\u17B6_\u1780\u17BB\u1798\u17D2\u1797\u17C8_\u1798\u17B8\u1793\u17B6_\u1798\u17C1\u179F\u17B6_\u17A7\u179F\u1797\u17B6_\u1798\u17B7\u1790\u17BB\u1793\u17B6_\u1780\u1780\u17D2\u1780\u178A\u17B6_\u179F\u17B8\u17A0\u17B6_\u1780\u1789\u17D2\u1789\u17B6_\u178F\u17BB\u179B\u17B6_\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6_\u1792\u17D2\u1793\u17BC".split("_"),weekStart:1,weekdaysShort:"\u17A2\u17B6_\u1785_\u17A2_\u1796_\u1796\u17D2\u179A_\u179F\u17BB_\u179F".split("_"),monthsShort:"\u1798\u1780\u179A\u17B6_\u1780\u17BB\u1798\u17D2\u1797\u17C8_\u1798\u17B8\u1793\u17B6_\u1798\u17C1\u179F\u17B6_\u17A7\u179F\u1797\u17B6_\u1798\u17B7\u1790\u17BB\u1793\u17B6_\u1780\u1780\u17D2\u1780\u178A\u17B6_\u179F\u17B8\u17A0\u17B6_\u1780\u1789\u17D2\u1789\u17B6_\u178F\u17BB\u179B\u17B6_\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6_\u1792\u17D2\u1793\u17BC".split("_"),weekdaysMin:"\u17A2\u17B6_\u1785_\u17A2_\u1796_\u1796\u17D2\u179A_\u179F\u17BB_\u179F".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s\u1791\u17C0\u178F",past:"%s\u1798\u17BB\u1793",s:"\u1794\u17C9\u17BB\u1793\u17D2\u1798\u17B6\u1793\u179C\u17B7\u1793\u17B6\u1791\u17B8",m:"\u1798\u17BD\u1799\u1793\u17B6\u1791\u17B8",mm:"%d \u1793\u17B6\u1791\u17B8",h:"\u1798\u17BD\u1799\u1798\u17C9\u17C4\u1784",hh:"%d \u1798\u17C9\u17C4\u1784",d:"\u1798\u17BD\u1799\u1790\u17D2\u1784\u17C3",dd:"%d \u1790\u17D2\u1784\u17C3",M:"\u1798\u17BD\u1799\u1781\u17C2",MM:"%d \u1781\u17C2",y:"\u1798\u17BD\u1799\u1786\u17D2\u1793\u17B6\u17C6",yy:"%d \u1786\u17D2\u1793\u17B6\u17C6"}};return s.default.locale(i,null,!0),i})});var Fn=H((vt,gt)=>{(function(n,t){typeof vt=="object"&&typeof gt<"u"?gt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_lt=t(n.dayjs)})(vt,function(n){"use strict";function t(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var s=t(n),i="sausio_vasario_kovo_baland\u017Eio_gegu\u017E\u0117s_bir\u017Eelio_liepos_rugpj\u016B\u010Dio_rugs\u0117jo_spalio_lapkri\u010Dio_gruod\u017Eio".split("_"),e="sausis_vasaris_kovas_balandis_gegu\u017E\u0117_bir\u017Eelis_liepa_rugpj\u016Btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),a=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,u=function(o,d){return a.test(d)?i[o.month()]:e[o.month()]};u.s=e,u.f=i;var r={name:"lt",weekdays:"sekmadienis_pirmadienis_antradienis_tre\u010Diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),weekdaysShort:"sek_pir_ant_tre_ket_pen_\u0161e\u0161".split("_"),weekdaysMin:"s_p_a_t_k_pn_\u0161".split("_"),months:u,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),ordinal:function(o){return o+"."},weekStart:1,relativeTime:{future:"u\u017E %s",past:"prie\u0161 %s",s:"kelias sekundes",m:"minut\u0119",mm:"%d minutes",h:"valand\u0105",hh:"%d valandas",d:"dien\u0105",dd:"%d dienas",M:"m\u0117nes\u012F",MM:"%d m\u0117nesius",y:"metus",yy:"%d metus"},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"}};return s.default.locale(r,null,!0),r})});var Jn=H((St,bt)=>{(function(n,t){typeof St=="object"&&typeof bt<"u"?bt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_lv=t(n.dayjs)})(St,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"lv",weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),months:"janv\u0101ris_febru\u0101ris_marts_apr\u012Blis_maijs_j\u016Bnijs_j\u016Blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),weekStart:1,weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016Bn_j\u016Bl_aug_sep_okt_nov_dec".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:"da\u017E\u0101m sekund\u0113m",m:"min\u016Btes",mm:"%d min\u016Bt\u0113m",h:"stundas",hh:"%d stund\u0101m",d:"dienas",dd:"%d dien\u0101m",M:"m\u0113ne\u0161a",MM:"%d m\u0113ne\u0161iem",y:"gada",yy:"%d gadiem"}};return s.default.locale(i,null,!0),i})});var Un=H((kt,Ht)=>{(function(n,t){typeof kt=="object"&&typeof Ht<"u"?Ht.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ms=t(n.dayjs)})(kt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ms",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH.mm",LLLL:"dddd, D MMMM YYYY HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var Pn=H((jt,Tt)=>{(function(n,t){typeof jt=="object"&&typeof Tt<"u"?Tt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_my=t(n.dayjs)})(jt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"my",weekdays:"\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031_\u1010\u1014\u1004\u103A\u1039\u101C\u102C_\u1021\u1004\u103A\u1039\u1002\u102B_\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038_\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038_\u101E\u1031\u102C\u1000\u103C\u102C_\u1005\u1014\u1031".split("_"),months:"\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E_\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E_\u1019\u1010\u103A_\u1027\u1015\u103C\u102E_\u1019\u1031_\u1007\u103D\u1014\u103A_\u1007\u1030\u101C\u102D\u102F\u1004\u103A_\u101E\u103C\u1002\u102F\u1010\u103A_\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C_\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C_\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C_\u1012\u102E\u1007\u1004\u103A\u1018\u102C".split("_"),weekStart:1,weekdaysShort:"\u1014\u103D\u1031_\u101C\u102C_\u1002\u102B_\u101F\u1030\u1038_\u1000\u103C\u102C_\u101E\u1031\u102C_\u1014\u1031".split("_"),monthsShort:"\u1007\u1014\u103A_\u1016\u1031_\u1019\u1010\u103A_\u1015\u103C\u102E_\u1019\u1031_\u1007\u103D\u1014\u103A_\u101C\u102D\u102F\u1004\u103A_\u101E\u103C_\u1005\u1000\u103A_\u1021\u1031\u102C\u1000\u103A_\u1014\u102D\u102F_\u1012\u102E".split("_"),weekdaysMin:"\u1014\u103D\u1031_\u101C\u102C_\u1002\u102B_\u101F\u1030\u1038_\u1000\u103C\u102C_\u101E\u1031\u102C_\u1014\u1031".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u101C\u102C\u1019\u100A\u103A\u1037 %s \u1019\u103E\u102C",past:"\u101C\u103D\u1014\u103A\u1001\u1032\u1037\u101E\u1031\u102C %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103A.\u1021\u1014\u100A\u103A\u1038\u1004\u101A\u103A",m:"\u1010\u1005\u103A\u1019\u102D\u1014\u1005\u103A",mm:"%d \u1019\u102D\u1014\u1005\u103A",h:"\u1010\u1005\u103A\u1014\u102C\u101B\u102E",hh:"%d \u1014\u102C\u101B\u102E",d:"\u1010\u1005\u103A\u101B\u1000\u103A",dd:"%d \u101B\u1000\u103A",M:"\u1010\u1005\u103A\u101C",MM:"%d \u101C",y:"\u1010\u1005\u103A\u1014\u103E\u1005\u103A",yy:"%d \u1014\u103E\u1005\u103A"}};return s.default.locale(i,null,!0),i})});var Wn=H((wt,$t)=>{(function(n,t){typeof wt=="object"&&typeof $t<"u"?$t.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_nl=t(n.dayjs)})(wt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"nl",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),ordinal:function(e){return"["+e+(e===1||e===8||e>=20?"ste":"de")+"]"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"een minuut",mm:"%d minuten",h:"een uur",hh:"%d uur",d:"een dag",dd:"%d dagen",M:"een maand",MM:"%d maanden",y:"een jaar",yy:"%d jaar"}};return s.default.locale(i,null,!0),i})});var Rn=H((Ct,Ot)=>{(function(n,t){typeof Ct=="object"&&typeof Ot<"u"?Ot.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_pl=t(n.dayjs)})(Ct,function(n){"use strict";function t(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var s=t(n);function i(l){return l%10<5&&l%10>1&&~~(l/10)%10!=1}function e(l,y,f){var _=l+" ";switch(f){case"m":return y?"minuta":"minut\u0119";case"mm":return _+(i(l)?"minuty":"minut");case"h":return y?"godzina":"godzin\u0119";case"hh":return _+(i(l)?"godziny":"godzin");case"MM":return _+(i(l)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return _+(i(l)?"lata":"lat")}}var a="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015Bnia_pa\u017Adziernika_listopada_grudnia".split("_"),u="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017Adziernik_listopad_grudzie\u0144".split("_"),r=/D MMMM/,o=function(l,y){return r.test(y)?a[l.month()]:u[l.month()]};o.s=u,o.f=a;var d={name:"pl",weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015Broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015Br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015Ar_Cz_Pt_So".split("_"),months:o,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017A_lis_gru".split("_"),ordinal:function(l){return l+"."},weekStart:1,yearStart:4,relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:e,mm:e,h:e,hh:e,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:e,y:"rok",yy:e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return s.default.locale(d,null,!0),d})});var Zn=H((zt,At)=>{(function(n,t){typeof zt=="object"&&typeof At<"u"?At.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_pt_br=t(n.dayjs)})(zt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"pt-br",weekdays:"domingo_segunda-feira_ter\xE7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xE1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_s\xE1b".split("_"),weekdaysMin:"Do_2\xAA_3\xAA_4\xAA_5\xAA_6\xAA_S\xE1".split("_"),months:"janeiro_fevereiro_mar\xE7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xBA"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xE0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xE0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xE1 %s",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xEAs",MM:"%d meses",y:"um ano",yy:"%d anos"}};return s.default.locale(i,null,!0),i})});var Vn=H((It,xt)=>{(function(n,t){typeof It=="object"&&typeof xt<"u"?xt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_pt=t(n.dayjs)})(It,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"pt",weekdays:"domingo_segunda-feira_ter\xE7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xE1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sab".split("_"),weekdaysMin:"Do_2\xAA_3\xAA_4\xAA_5\xAA_6\xAA_Sa".split("_"),months:"janeiro_fevereiro_mar\xE7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xBA"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xE0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xE0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xE1 %s",s:"alguns segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xEAs",MM:"%d meses",y:"um ano",yy:"%d anos"}};return s.default.locale(i,null,!0),i})});var Gn=H((qt,Nt)=>{(function(n,t){typeof qt=="object"&&typeof Nt<"u"?Nt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ro=t(n.dayjs)})(qt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ro",weekdays:"Duminic\u0103_Luni_Mar\u021Bi_Miercuri_Joi_Vineri_S\xE2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xE2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xE2".split("_"),months:"Ianuarie_Februarie_Martie_Aprilie_Mai_Iunie_Iulie_August_Septembrie_Octombrie_Noiembrie_Decembrie".split("_"),monthsShort:"Ian._Febr._Mart._Apr._Mai_Iun._Iul._Aug._Sept._Oct._Nov._Dec.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"peste %s",past:"acum %s",s:"c\xE2teva secunde",m:"un minut",mm:"%d minute",h:"o or\u0103",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lun\u0103",MM:"%d luni",y:"un an",yy:"%d ani"},ordinal:function(e){return e}};return s.default.locale(i,null,!0),i})});var Kn=H((Et,Ft)=>{(function(n,t){typeof Et=="object"&&typeof Ft<"u"?Ft.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ru=t(n.dayjs)})(Et,function(n){"use strict";function t(f){return f&&typeof f=="object"&&"default"in f?f:{default:f}}var s=t(n),i="\u044F\u043D\u0432\u0430\u0440\u044F_\u0444\u0435\u0432\u0440\u0430\u043B\u044F_\u043C\u0430\u0440\u0442\u0430_\u0430\u043F\u0440\u0435\u043B\u044F_\u043C\u0430\u044F_\u0438\u044E\u043D\u044F_\u0438\u044E\u043B\u044F_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F_\u043E\u043A\u0442\u044F\u0431\u0440\u044F_\u043D\u043E\u044F\u0431\u0440\u044F_\u0434\u0435\u043A\u0430\u0431\u0440\u044F".split("_"),e="\u044F\u043D\u0432\u0430\u0440\u044C_\u0444\u0435\u0432\u0440\u0430\u043B\u044C_\u043C\u0430\u0440\u0442_\u0430\u043F\u0440\u0435\u043B\u044C_\u043C\u0430\u0439_\u0438\u044E\u043D\u044C_\u0438\u044E\u043B\u044C_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C_\u043E\u043A\u0442\u044F\u0431\u0440\u044C_\u043D\u043E\u044F\u0431\u0440\u044C_\u0434\u0435\u043A\u0430\u0431\u0440\u044C".split("_"),a="\u044F\u043D\u0432._\u0444\u0435\u0432\u0440._\u043C\u0430\u0440._\u0430\u043F\u0440._\u043C\u0430\u044F_\u0438\u044E\u043D\u044F_\u0438\u044E\u043B\u044F_\u0430\u0432\u0433._\u0441\u0435\u043D\u0442._\u043E\u043A\u0442._\u043D\u043E\u044F\u0431._\u0434\u0435\u043A.".split("_"),u="\u044F\u043D\u0432._\u0444\u0435\u0432\u0440._\u043C\u0430\u0440\u0442_\u0430\u043F\u0440._\u043C\u0430\u0439_\u0438\u044E\u043D\u044C_\u0438\u044E\u043B\u044C_\u0430\u0432\u0433._\u0441\u0435\u043D\u0442._\u043E\u043A\u0442._\u043D\u043E\u044F\u0431._\u0434\u0435\u043A.".split("_"),r=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function o(f,_,h){var D,p;return h==="m"?_?"\u043C\u0438\u043D\u0443\u0442\u0430":"\u043C\u0438\u043D\u0443\u0442\u0443":f+" "+(D=+f,p={mm:_?"\u043C\u0438\u043D\u0443\u0442\u0430_\u043C\u0438\u043D\u0443\u0442\u044B_\u043C\u0438\u043D\u0443\u0442":"\u043C\u0438\u043D\u0443\u0442\u0443_\u043C\u0438\u043D\u0443\u0442\u044B_\u043C\u0438\u043D\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043E\u0432",dd:"\u0434\u0435\u043D\u044C_\u0434\u043D\u044F_\u0434\u043D\u0435\u0439",MM:"\u043C\u0435\u0441\u044F\u0446_\u043C\u0435\u0441\u044F\u0446\u0430_\u043C\u0435\u0441\u044F\u0446\u0435\u0432",yy:"\u0433\u043E\u0434_\u0433\u043E\u0434\u0430_\u043B\u0435\u0442"}[h].split("_"),D%10==1&&D%100!=11?p[0]:D%10>=2&&D%10<=4&&(D%100<10||D%100>=20)?p[1]:p[2])}var d=function(f,_){return r.test(_)?i[f.month()]:e[f.month()]};d.s=e,d.f=i;var l=function(f,_){return r.test(_)?a[f.month()]:u[f.month()]};l.s=u,l.f=a;var y={name:"ru",weekdays:"\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435_\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A_\u0432\u0442\u043E\u0440\u043D\u0438\u043A_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043F\u044F\u0442\u043D\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043E\u0442\u0430".split("_"),weekdaysShort:"\u0432\u0441\u043A_\u043F\u043D\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043F\u0442\u043D_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u0432\u0441_\u043F\u043D_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043F\u0442_\u0441\u0431".split("_"),months:d,monthsShort:l,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043D\u0430\u0437\u0430\u0434",s:"\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0435\u043A\u0443\u043D\u0434",m:o,mm:o,h:"\u0447\u0430\u0441",hh:o,d:"\u0434\u0435\u043D\u044C",dd:o,M:"\u043C\u0435\u0441\u044F\u0446",MM:o,y:"\u0433\u043E\u0434",yy:o},ordinal:function(f){return f},meridiem:function(f){return f<4?"\u043D\u043E\u0447\u0438":f<12?"\u0443\u0442\u0440\u0430":f<17?"\u0434\u043D\u044F":"\u0432\u0435\u0447\u0435\u0440\u0430"}};return s.default.locale(y,null,!0),y})});var Bn=H((Jt,Ut)=>{(function(n,t){typeof Jt=="object"&&typeof Ut<"u"?Ut.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_sv=t(n.dayjs)})(Jt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"sv",weekdays:"s\xF6ndag_m\xE5ndag_tisdag_onsdag_torsdag_fredag_l\xF6rdag".split("_"),weekdaysShort:"s\xF6n_m\xE5n_tis_ons_tor_fre_l\xF6r".split("_"),weekdaysMin:"s\xF6_m\xE5_ti_on_to_fr_l\xF6".split("_"),months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){var a=e%10;return"["+e+(a===1||a===2?"a":"e")+"]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},relativeTime:{future:"om %s",past:"f\xF6r %s sedan",s:"n\xE5gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xE5nad",MM:"%d m\xE5nader",y:"ett \xE5r",yy:"%d \xE5r"}};return s.default.locale(i,null,!0),i})});var Xn=H((Pt,Wt)=>{(function(n,t){typeof Pt=="object"&&typeof Wt<"u"?Wt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_tr=t(n.dayjs)})(Pt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"tr",weekdays:"Pazar_Pazartesi_Sal\u0131_\xC7ar\u015Famba_Per\u015Fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xC7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xC7a_Pe_Cu_Ct".split("_"),months:"Ocak_\u015Eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011Fustos_Eyl\xFCl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015Eub_Mar_Nis_May_Haz_Tem_A\u011Fu_Eyl_Eki_Kas_Ara".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s sonra",past:"%s \xF6nce",s:"birka\xE7 saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xFCn",dd:"%d g\xFCn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var Qn=H((Rt,Zt)=>{(function(n,t){typeof Rt=="object"&&typeof Zt<"u"?Zt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_uk=t(n.dayjs)})(Rt,function(n){"use strict";function t(d){return d&&typeof d=="object"&&"default"in d?d:{default:d}}var s=t(n),i="\u0441\u0456\u0447\u043D\u044F_\u043B\u044E\u0442\u043E\u0433\u043E_\u0431\u0435\u0440\u0435\u0437\u043D\u044F_\u043A\u0432\u0456\u0442\u043D\u044F_\u0442\u0440\u0430\u0432\u043D\u044F_\u0447\u0435\u0440\u0432\u043D\u044F_\u043B\u0438\u043F\u043D\u044F_\u0441\u0435\u0440\u043F\u043D\u044F_\u0432\u0435\u0440\u0435\u0441\u043D\u044F_\u0436\u043E\u0432\u0442\u043D\u044F_\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043D\u044F".split("_"),e="\u0441\u0456\u0447\u0435\u043D\u044C_\u043B\u044E\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043D\u044C_\u043A\u0432\u0456\u0442\u0435\u043D\u044C_\u0442\u0440\u0430\u0432\u0435\u043D\u044C_\u0447\u0435\u0440\u0432\u0435\u043D\u044C_\u043B\u0438\u043F\u0435\u043D\u044C_\u0441\u0435\u0440\u043F\u0435\u043D\u044C_\u0432\u0435\u0440\u0435\u0441\u0435\u043D\u044C_\u0436\u043E\u0432\u0442\u0435\u043D\u044C_\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043D\u044C".split("_"),a=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function u(d,l,y){var f,_;return y==="m"?l?"\u0445\u0432\u0438\u043B\u0438\u043D\u0430":"\u0445\u0432\u0438\u043B\u0438\u043D\u0443":y==="h"?l?"\u0433\u043E\u0434\u0438\u043D\u0430":"\u0433\u043E\u0434\u0438\u043D\u0443":d+" "+(f=+d,_={ss:l?"\u0441\u0435\u043A\u0443\u043D\u0434\u0430_\u0441\u0435\u043A\u0443\u043D\u0434\u0438_\u0441\u0435\u043A\u0443\u043D\u0434":"\u0441\u0435\u043A\u0443\u043D\u0434\u0443_\u0441\u0435\u043A\u0443\u043D\u0434\u0438_\u0441\u0435\u043A\u0443\u043D\u0434",mm:l?"\u0445\u0432\u0438\u043B\u0438\u043D\u0430_\u0445\u0432\u0438\u043B\u0438\u043D\u0438_\u0445\u0432\u0438\u043B\u0438\u043D":"\u0445\u0432\u0438\u043B\u0438\u043D\u0443_\u0445\u0432\u0438\u043B\u0438\u043D\u0438_\u0445\u0432\u0438\u043B\u0438\u043D",hh:l?"\u0433\u043E\u0434\u0438\u043D\u0430_\u0433\u043E\u0434\u0438\u043D\u0438_\u0433\u043E\u0434\u0438\u043D":"\u0433\u043E\u0434\u0438\u043D\u0443_\u0433\u043E\u0434\u0438\u043D\u0438_\u0433\u043E\u0434\u0438\u043D",dd:"\u0434\u0435\u043D\u044C_\u0434\u043D\u0456_\u0434\u043D\u0456\u0432",MM:"\u043C\u0456\u0441\u044F\u0446\u044C_\u043C\u0456\u0441\u044F\u0446\u0456_\u043C\u0456\u0441\u044F\u0446\u0456\u0432",yy:"\u0440\u0456\u043A_\u0440\u043E\u043A\u0438_\u0440\u043E\u043A\u0456\u0432"}[y].split("_"),f%10==1&&f%100!=11?_[0]:f%10>=2&&f%10<=4&&(f%100<10||f%100>=20)?_[1]:_[2])}var r=function(d,l){return a.test(l)?i[d.month()]:e[d.month()]};r.s=e,r.f=i;var o={name:"uk",weekdays:"\u043D\u0435\u0434\u0456\u043B\u044F_\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A_\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043F\u2019\u044F\u0442\u043D\u0438\u0446\u044F_\u0441\u0443\u0431\u043E\u0442\u0430".split("_"),weekdaysShort:"\u043D\u0434\u043B_\u043F\u043D\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043F\u0442\u043D_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u043D\u0434_\u043F\u043D_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043F\u0442_\u0441\u0431".split("_"),months:r,monthsShort:"\u0441\u0456\u0447_\u043B\u044E\u0442_\u0431\u0435\u0440_\u043A\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043B\u0438\u043F_\u0441\u0435\u0440\u043F_\u0432\u0435\u0440_\u0436\u043E\u0432\u0442_\u043B\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekStart:1,relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043E\u043C\u0443",s:"\u0434\u0435\u043A\u0456\u043B\u044C\u043A\u0430 \u0441\u0435\u043A\u0443\u043D\u0434",m:u,mm:u,h:u,hh:u,d:"\u0434\u0435\u043D\u044C",dd:u,M:"\u043C\u0456\u0441\u044F\u0446\u044C",MM:u,y:"\u0440\u0456\u043A",yy:u},ordinal:function(d){return d},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"}};return s.default.locale(o,null,!0),o})});var ei=H((Vt,Gt)=>{(function(n,t){typeof Vt=="object"&&typeof Gt<"u"?Gt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_vi=t(n.dayjs)})(Vt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"vi",weekdays:"ch\u1EE7 nh\u1EADt_th\u1EE9 hai_th\u1EE9 ba_th\u1EE9 t\u01B0_th\u1EE9 n\u0103m_th\u1EE9 s\xE1u_th\u1EE9 b\u1EA3y".split("_"),months:"th\xE1ng 1_th\xE1ng 2_th\xE1ng 3_th\xE1ng 4_th\xE1ng 5_th\xE1ng 6_th\xE1ng 7_th\xE1ng 8_th\xE1ng 9_th\xE1ng 10_th\xE1ng 11_th\xE1ng 12".split("_"),weekStart:1,weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},relativeTime:{future:"%s t\u1EDBi",past:"%s tr\u01B0\u1EDBc",s:"v\xE0i gi\xE2y",m:"m\u1ED9t ph\xFAt",mm:"%d ph\xFAt",h:"m\u1ED9t gi\u1EDD",hh:"%d gi\u1EDD",d:"m\u1ED9t ng\xE0y",dd:"%d ng\xE0y",M:"m\u1ED9t th\xE1ng",MM:"%d th\xE1ng",y:"m\u1ED9t n\u0103m",yy:"%d n\u0103m"}};return s.default.locale(i,null,!0),i})});var ti=H((Kt,Bt)=>{(function(n,t){typeof Kt=="object"&&typeof Bt<"u"?Bt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_zh_cn=t(n.dayjs)})(Kt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"zh-cn",weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,a){return a==="W"?e+"\u5468":e+"\u65E5"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206",LLLL:"YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},relativeTime:{future:"%s\u5185",past:"%s\u524D",s:"\u51E0\u79D2",m:"1 \u5206\u949F",mm:"%d \u5206\u949F",h:"1 \u5C0F\u65F6",hh:"%d \u5C0F\u65F6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4E2A\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},meridiem:function(e,a){var u=100*e+a;return u<600?"\u51CC\u6668":u<900?"\u65E9\u4E0A":u<1100?"\u4E0A\u5348":u<1300?"\u4E2D\u5348":u<1800?"\u4E0B\u5348":"\u665A\u4E0A"}};return s.default.locale(i,null,!0),i})});var ni=H((Xt,Qt)=>{(function(n,t){typeof Xt=="object"&&typeof Qt<"u"?Qt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_zh_tw=t(n.dayjs)})(Xt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"zh-tw",weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u9031\u65E5_\u9031\u4E00_\u9031\u4E8C_\u9031\u4E09_\u9031\u56DB_\u9031\u4E94_\u9031\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,a){return a==="W"?e+"\u9031":e+"\u65E5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5 HH:mm",LLLL:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},relativeTime:{future:"%s\u5167",past:"%s\u524D",s:"\u5E7E\u79D2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5C0F\u6642",hh:"%d \u5C0F\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500B\u6708",MM:"%d \u500B\u6708",y:"1 \u5E74",yy:"%d \u5E74"},meridiem:function(e,a){var u=100*e+a;return u<600?"\u51CC\u6668":u<900?"\u65E9\u4E0A":u<1100?"\u4E0A\u5348":u<1300?"\u4E2D\u5348":u<1800?"\u4E0B\u5348":"\u665A\u4E0A"}};return s.default.locale(i,null,!0),i})});var tn=60,nn=tn*60,sn=nn*24,ci=sn*7,ae=1e3,fe=tn*ae,pe=nn*ae,rn=sn*ae,an=ci*ae,de="millisecond",ne="second",ie="minute",se="hour",K="day",oe="week",R="month",me="quarter",B="year",re="date",un="YYYY-MM-DDTHH:mm:ssZ",De="Invalid Date",on=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,dn=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;var ln={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var s=["th","st","nd","rd"],i=t%100;return"["+t+(s[(i-20)%10]||s[i]||s[0])+"]"}};var Le=function(t,s,i){var e=String(t);return!e||e.length>=s?t:""+Array(s+1-e.length).join(i)+t},hi=function(t){var s=-t.utcOffset(),i=Math.abs(s),e=Math.floor(i/60),a=i%60;return(s<=0?"+":"-")+Le(e,2,"0")+":"+Le(a,2,"0")},Mi=function n(t,s){if(t.date()1)return n(u[0])}else{var r=t.name;ue[r]=t,e=r}return!i&&e&&(_e=e),e||!i&&_e},J=function(t,s){if(ve(t))return t.clone();var i=typeof s=="object"?s:{};return i.date=t,i.args=arguments,new he(i)},Di=function(t,s){return J(t,{locale:s.$L,utc:s.$u,x:s.$x,$offset:s.$offset})},z=fn;z.l=ce;z.i=ve;z.w=Di;var Li=function(t){var s=t.date,i=t.utc;if(s===null)return new Date(NaN);if(z.u(s))return new Date;if(s instanceof Date)return new Date(s);if(typeof s=="string"&&!/Z$/i.test(s)){var e=s.match(on);if(e){var a=e[2]-1||0,u=(e[7]||"0").substring(0,3);return i?new Date(Date.UTC(e[1],a,e[3]||1,e[4]||0,e[5]||0,e[6]||0,u)):new Date(e[1],a,e[3]||1,e[4]||0,e[5]||0,e[6]||0,u)}}return new Date(s)},he=function(){function n(s){this.$L=ce(s.locale,null,!0),this.parse(s),this.$x=this.$x||s.x||{},this[mn]=!0}var t=n.prototype;return t.parse=function(i){this.$d=Li(i),this.init()},t.init=function(){var i=this.$d;this.$y=i.getFullYear(),this.$M=i.getMonth(),this.$D=i.getDate(),this.$W=i.getDay(),this.$H=i.getHours(),this.$m=i.getMinutes(),this.$s=i.getSeconds(),this.$ms=i.getMilliseconds()},t.$utils=function(){return z},t.isValid=function(){return this.$d.toString()!==De},t.isSame=function(i,e){var a=J(i);return this.startOf(e)<=a&&a<=this.endOf(e)},t.isAfter=function(i,e){return J(i)this.togglePanelVisibility(this.$refs.button)),this.$watch("focusedMonth",()=>{this.focusedMonth=+this.focusedMonth,this.focusedDate.month()!==this.focusedMonth&&(this.focusedDate=this.focusedDate.month(this.focusedMonth))}),this.$watch("focusedYear",()=>{if(this.focusedYear?.length>4&&(this.focusedYear=this.focusedYear.substring(0,4)),!this.focusedYear||this.focusedYear?.length!==4)return;let o=+this.focusedYear;Number.isInteger(o)||(o=A().tz(u).year(),this.focusedYear=o),this.focusedDate.year()!==o&&(this.focusedDate=this.focusedDate.year(o))}),this.$watch("focusedDate",()=>{let o=this.focusedDate.month(),d=this.focusedDate.year();this.focusedMonth!==o&&(this.focusedMonth=o),this.focusedYear!==d&&(this.focusedYear=d),this.setupDaysGrid()}),this.$watch("hour",()=>{let o=+this.hour;if(Number.isInteger(o)?o>23?this.hour=0:o<0?this.hour=23:this.hour=o:this.hour=0,this.isClearingState)return;let d=this.getSelectedDate()??this.focusedDate;this.setState(d.hour(this.hour??0))}),this.$watch("minute",()=>{let o=+this.minute;if(Number.isInteger(o)?o>59?this.minute=0:o<0?this.minute=59:this.minute=o:this.minute=0,this.isClearingState)return;let d=this.getSelectedDate()??this.focusedDate;this.setState(d.minute(this.minute??0))}),this.$watch("second",()=>{let o=+this.second;if(Number.isInteger(o)?o>59?this.second=0:o<0?this.second=59:this.second=o:this.second=0,this.isClearingState)return;let d=this.getSelectedDate()??this.focusedDate;this.setState(d.second(this.second??0))}),this.$watch("state",()=>{if(this.state===void 0)return;let o=this.getSelectedDate();if(o===null){this.clearState();return}this.getMaxDate()!==null&&o?.isAfter(this.getMaxDate())&&(o=null),this.getMinDate()!==null&&o?.isBefore(this.getMinDate())&&(o=null);let d=o?.hour()??0;this.hour!==d&&(this.hour=d);let l=o?.minute()??0;this.minute!==l&&(this.minute=l);let y=o?.second()??0;this.second!==y&&(this.second=y),this.setDisplayText()})},clearState:function(){this.isClearingState=!0,this.setState(null),this.hour=0,this.minute=0,this.second=0,this.$nextTick(()=>this.isClearingState=!1)},dateIsDisabled:function(r){return!!(this.$refs?.disabledDates&&JSON.parse(this.$refs.disabledDates.value??[]).some(o=>(o=A(o),o.isValid()?o.isSame(r,"day"):!1))||this.getMaxDate()&&r.isAfter(this.getMaxDate(),"day")||this.getMinDate()&&r.isBefore(this.getMinDate(),"day"))},dayIsDisabled:function(r){return this.focusedDate??(this.focusedDate=A().tz(u)),this.dateIsDisabled(this.focusedDate.date(r))},dayIsSelected:function(r){let o=this.getSelectedDate();return o===null?!1:(this.focusedDate??(this.focusedDate=A().tz(u)),o.date()===r&&o.month()===this.focusedDate.month()&&o.year()===this.focusedDate.year())},dayIsToday:function(r){let o=A().tz(u);return this.focusedDate??(this.focusedDate=o),o.date()===r&&o.month()===this.focusedDate.month()&&o.year()===this.focusedDate.year()},focusPreviousDay:function(){this.focusedDate??(this.focusedDate=A().tz(u)),this.focusedDate=this.focusedDate.subtract(1,"day")},focusPreviousWeek:function(){this.focusedDate??(this.focusedDate=A().tz(u)),this.focusedDate=this.focusedDate.subtract(1,"week")},focusNextDay:function(){this.focusedDate??(this.focusedDate=A().tz(u)),this.focusedDate=this.focusedDate.add(1,"day")},focusNextWeek:function(){this.focusedDate??(this.focusedDate=A().tz(u)),this.focusedDate=this.focusedDate.add(1,"week")},getDayLabels:function(){let r=A.weekdaysShort();return t===0?r:[...r.slice(t),...r.slice(0,t)]},getMaxDate:function(){let r=A(this.$refs.maxDate?.value);return r.isValid()?r:null},getMinDate:function(){let r=A(this.$refs.minDate?.value);return r.isValid()?r:null},getSelectedDate:function(){if(this.state===void 0||this.state===null)return null;let r=A(this.state);return r.isValid()?r:null},togglePanelVisibility:function(){this.isOpen()||(this.focusedDate=this.getSelectedDate()??this.getMinDate()??A().tz(u),this.setupDaysGrid()),this.$refs.panel.toggle(this.$refs.button)},selectDate:function(r=null){r&&this.setFocusedDay(r),this.focusedDate??(this.focusedDate=A().tz(u)),this.setState(this.focusedDate),e&&this.togglePanelVisibility()},setDisplayText:function(){this.displayText=this.getSelectedDate()?this.getSelectedDate().format(n):""},setMonths:function(){this.months=A.months()},setDayLabels:function(){this.dayLabels=this.getDayLabels()},setupDaysGrid:function(){this.focusedDate??(this.focusedDate=A().tz(u)),this.emptyDaysInFocusedMonth=Array.from({length:this.focusedDate.date(8-t).day()},(r,o)=>o+1),this.daysInFocusedMonth=Array.from({length:this.focusedDate.daysInMonth()},(r,o)=>o+1)},setFocusedDay:function(r){this.focusedDate=(this.focusedDate??A().tz(u)).date(r)},setState:function(r){if(r===null){this.state=null,this.setDisplayText();return}this.dateIsDisabled(r)||(this.state=r.hour(this.hour??0).minute(this.minute??0).second(this.second??0).format("YYYY-MM-DD HH:mm:ss"),this.setDisplayText())},isOpen:function(){return this.$refs.panel?.style.display==="block"}}}var ii={ar:pn(),bs:Dn(),ca:Ln(),ckb:Ne(),cs:gn(),cy:Sn(),da:bn(),de:kn(),en:Hn(),es:jn(),et:Tn(),fa:wn(),fi:$n(),fr:Cn(),hi:On(),hu:zn(),hy:An(),id:In(),it:xn(),ja:qn(),ka:Nn(),km:En(),ku:Ne(),lt:Fn(),lv:Jn(),ms:Un(),my:Pn(),nl:Wn(),pl:Rn(),pt_BR:Zn(),pt_PT:Vn(),ro:Gn(),ru:Kn(),sv:Bn(),tr:Xn(),uk:Qn(),vi:ei(),zh_CN:ti(),zh_TW:ni()};export{vi as default}; diff --git a/public/js/filament/forms/components/file-upload.js b/public/js/filament/forms/components/file-upload.js new file mode 100644 index 000000000..d8b23dea1 --- /dev/null +++ b/public/js/filament/forms/components/file-upload.js @@ -0,0 +1,123 @@ +var zo=Object.defineProperty;var No=(e,t)=>{for(var i in t)zo(e,i,{get:t[i],enumerable:!0})};var Zi={};No(Zi,{FileOrigin:()=>Mt,FileStatus:()=>ut,OptionTypes:()=>Fi,Status:()=>jn,create:()=>ot,destroy:()=>lt,find:()=>zi,getOptions:()=>Ni,parse:()=>Ci,registerPlugin:()=>Te,setOptions:()=>At,supported:()=>Pi});var Bo=e=>e instanceof HTMLElement,Go=(e,t=[],i=[])=>{let a={...e},n=[],r=[],o=()=>({...a}),l=()=>{let p=[...n];return n.length=0,p},s=()=>{let p=[...r];r.length=0,p.forEach(({type:m,data:g})=>{u(m,g)})},u=(p,m,g)=>{if(g&&!document.hidden){r.push({type:p,data:m});return}f[p]&&f[p](m),n.push({type:p,data:m})},c=(p,...m)=>h[p]?h[p](...m):null,d={getState:o,processActionQueue:l,processDispatchQueue:s,dispatch:u,query:c},h={};t.forEach(p=>{h={...p(a),...h}});let f={};return i.forEach(p=>{f={...p(u,c,a),...f}}),d},Vo=(e,t,i)=>{if(typeof i=="function"){e[t]=i;return}Object.defineProperty(e,t,{...i})},J=(e,t)=>{for(let i in e)e.hasOwnProperty(i)&&t(i,e[i])},Be=e=>{let t={};return J(e,i=>{Vo(t,i,e[i])}),t},ie=(e,t,i=null)=>{if(i===null)return e.getAttribute(t)||e.hasAttribute(t);e.setAttribute(t,i)},Uo="http://www.w3.org/2000/svg",ko=["svg","path"],Ra=e=>ko.includes(e),Zt=(e,t,i={})=>{typeof t=="object"&&(i=t,t=null);let a=Ra(e)?document.createElementNS(Uo,e):document.createElement(e);return t&&(Ra(e)?ie(a,"class",t):a.className=t),J(i,(n,r)=>{ie(a,n,r)}),a},Ho=e=>(t,i)=>{typeof i<"u"&&e.children[i]?e.insertBefore(t,e.children[i]):e.appendChild(t)},Wo=(e,t)=>(i,a)=>(typeof a<"u"?t.splice(a,0,i):t.push(i),i),Yo=(e,t)=>i=>(t.splice(t.indexOf(i),1),i.element.parentNode&&e.removeChild(i.element),i),$o=(()=>typeof window<"u"&&typeof window.document<"u")(),sn=()=>$o,qo=sn()?Zt("svg"):{},Xo="children"in qo?e=>e.children.length:e=>e.childNodes.length,cn=(e,t,i,a)=>{let n=i[0]||e.left,r=i[1]||e.top,o=n+e.width,l=r+e.height*(a[1]||1),s={element:{...e},inner:{left:e.left,top:e.top,right:e.right,bottom:e.bottom},outer:{left:n,top:r,right:o,bottom:l}};return t.filter(u=>!u.isRectIgnored()).map(u=>u.rect).forEach(u=>{ya(s.inner,{...u.inner}),ya(s.outer,{...u.outer})}),Sa(s.inner),s.outer.bottom+=s.element.marginBottom,s.outer.right+=s.element.marginRight,Sa(s.outer),s},ya=(e,t)=>{t.top+=e.top,t.right+=e.left,t.bottom+=e.top,t.left+=e.left,t.bottom>e.bottom&&(e.bottom=t.bottom),t.right>e.right&&(e.right=t.right)},Sa=e=>{e.width=e.right-e.left,e.height=e.bottom-e.top},He=e=>typeof e=="number",jo=(e,t,i,a=.001)=>Math.abs(e-t){let a=null,n=null,r=0,o=!1,u=Be({interpolate:(c,d)=>{if(o)return;if(!(He(a)&&He(n))){o=!0,r=0;return}let h=-(n-a)*e;r+=h/i,n+=r,r*=t,jo(n,a,r)||d?(n=a,r=0,o=!0,u.onupdate(n),u.oncomplete(n)):u.onupdate(n)},target:{set:c=>{if(He(c)&&!He(n)&&(n=c),a===null&&(a=c,n=c),a=c,n===a||typeof a>"u"){o=!0,r=0,u.onupdate(n),u.oncomplete(n);return}o=!1},get:()=>a},resting:{get:()=>o},onupdate:c=>{},oncomplete:c=>{}});return u};var Zo=e=>e<.5?2*e*e:-1+(4-2*e)*e,Ko=({duration:e=500,easing:t=Zo,delay:i=0}={})=>{let a=null,n,r,o=!0,l=!1,s=null,c=Be({interpolate:(d,h)=>{o||s===null||(a===null&&(a=d),!(d-a=e||h?(n=1,r=l?0:1,c.onupdate(r*s),c.oncomplete(r*s),o=!0):(r=n/e,c.onupdate((n>=0?t(l?1-r:r):0)*s))))},target:{get:()=>l?0:s,set:d=>{if(s===null){s=d,c.onupdate(d),c.oncomplete(d);return}do},onupdate:d=>{},oncomplete:d=>{}});return c},wa={spring:Qo,tween:Ko},Jo=(e,t,i)=>{let a=e[t]&&typeof e[t][i]=="object"?e[t][i]:e[t]||e,n=typeof a=="string"?a:a.type,r=typeof a=="object"?{...a}:{};return wa[n]?wa[n](r):null},Bi=(e,t,i,a=!1)=>{t=Array.isArray(t)?t:[t],t.forEach(n=>{e.forEach(r=>{let o=r,l=()=>i[r],s=u=>i[r]=u;typeof r=="object"&&(o=r.key,l=r.getter||l,s=r.setter||s),!(n[o]&&!a)&&(n[o]={get:l,set:s})})})},el=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a})=>{let n={...t},r=[];return J(e,(o,l)=>{let s=Jo(l);if(!s)return;s.onupdate=c=>{t[o]=c},s.target=n[o],Bi([{key:o,setter:c=>{s.target!==c&&(s.target=c)},getter:()=>t[o]}],[i,a],t,!0),r.push(s)}),{write:o=>{let l=document.hidden,s=!0;return r.forEach(u=>{u.resting||(s=!1),u.interpolate(o,l)}),s},destroy:()=>{}}},tl=e=>(t,i)=>{e.addEventListener(t,i)},il=e=>(t,i)=>{e.removeEventListener(t,i)},al=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,viewState:n,view:r})=>{let o=[],l=tl(r.element),s=il(r.element);return a.on=(u,c)=>{o.push({type:u,fn:c}),l(u,c)},a.off=(u,c)=>{o.splice(o.findIndex(d=>d.type===u&&d.fn===c),1),s(u,c)},{write:()=>!0,destroy:()=>{o.forEach(u=>{s(u.type,u.fn)})}}},nl=({mixinConfig:e,viewProps:t,viewExternalAPI:i})=>{Bi(e,i,t)},de=e=>e!=null,rl={opacity:1,scaleX:1,scaleY:1,translateX:0,translateY:0,rotateX:0,rotateY:0,rotateZ:0,originX:0,originY:0},ol=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,view:n})=>{let r={...t},o={};Bi(e,[i,a],t);let l=()=>[t.translateX||0,t.translateY||0],s=()=>[t.scaleX||0,t.scaleY||0],u=()=>n.rect?cn(n.rect,n.childViews,l(),s()):null;return i.rect={get:u},a.rect={get:u},e.forEach(c=>{t[c]=typeof r[c]>"u"?rl[c]:r[c]}),{write:()=>{if(ll(o,t))return sl(n.element,t),Object.assign(o,{...t}),!0},destroy:()=>{}}},ll=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!0;for(let i in t)if(t[i]!==e[i])return!0;return!1},sl=(e,{opacity:t,perspective:i,translateX:a,translateY:n,scaleX:r,scaleY:o,rotateX:l,rotateY:s,rotateZ:u,originX:c,originY:d,width:h,height:f})=>{let p="",m="";(de(c)||de(d))&&(m+=`transform-origin: ${c||0}px ${d||0}px;`),de(i)&&(p+=`perspective(${i}px) `),(de(a)||de(n))&&(p+=`translate3d(${a||0}px, ${n||0}px, 0) `),(de(r)||de(o))&&(p+=`scale3d(${de(r)?r:1}, ${de(o)?o:1}, 1) `),de(u)&&(p+=`rotateZ(${u}rad) `),de(l)&&(p+=`rotateX(${l}rad) `),de(s)&&(p+=`rotateY(${s}rad) `),p.length&&(m+=`transform:${p};`),de(t)&&(m+=`opacity:${t};`,t===0&&(m+="visibility:hidden;"),t<1&&(m+="pointer-events:none;")),de(f)&&(m+=`height:${f}px;`),de(h)&&(m+=`width:${h}px;`);let g=e.elementCurrentStyle||"";(m.length!==g.length||m!==g)&&(e.style.cssText=m,e.elementCurrentStyle=m)},cl={styles:ol,listeners:al,animations:el,apis:nl},va=(e={},t={},i={})=>(t.layoutCalculated||(e.paddingTop=parseInt(i.paddingTop,10)||0,e.marginTop=parseInt(i.marginTop,10)||0,e.marginRight=parseInt(i.marginRight,10)||0,e.marginBottom=parseInt(i.marginBottom,10)||0,e.marginLeft=parseInt(i.marginLeft,10)||0,t.layoutCalculated=!0),e.left=t.offsetLeft||0,e.top=t.offsetTop||0,e.width=t.offsetWidth||0,e.height=t.offsetHeight||0,e.right=e.left+e.width,e.bottom=e.top+e.height,e.scrollTop=t.scrollTop,e.hidden=t.offsetParent===null,e),ae=({tag:e="div",name:t=null,attributes:i={},read:a=()=>{},write:n=()=>{},create:r=()=>{},destroy:o=()=>{},filterFrameActionsForChild:l=(f,p)=>p,didCreateView:s=()=>{},didWriteView:u=()=>{},ignoreRect:c=!1,ignoreRectUpdate:d=!1,mixins:h=[]}={})=>(f,p={})=>{let m=Zt(e,`filepond--${t}`,i),g=window.getComputedStyle(m,null),b=va(),E=null,T=!1,_=[],y=[],I={},v={},R=[n],S=[a],D=[o],x=()=>m,O=()=>_.concat(),B=()=>I,A=k=>(W,C)=>W(k,C),F=()=>E||(E=cn(b,_,[0,0],[1,1]),E),w=()=>g,L=()=>{E=null,_.forEach(C=>C._read()),!(d&&b.width&&b.height)&&va(b,m,g);let W={root:j,props:p,rect:b};S.forEach(C=>C(W))},N=(k,W,C)=>{let z=W.length===0;return R.forEach(G=>{G({props:p,root:j,actions:W,timestamp:k,shouldOptimize:C})===!1&&(z=!1)}),y.forEach(G=>{G.write(k)===!1&&(z=!1)}),_.filter(G=>!!G.element.parentNode).forEach(G=>{G._write(k,l(G,W),C)||(z=!1)}),_.forEach((G,$)=>{G.element.parentNode||(j.appendChild(G.element,$),G._read(),G._write(k,l(G,W),C),z=!1)}),T=z,u({props:p,root:j,actions:W,timestamp:k}),z},P=()=>{y.forEach(k=>k.destroy()),D.forEach(k=>{k({root:j,props:p})}),_.forEach(k=>k._destroy())},U={element:{get:x},style:{get:w},childViews:{get:O}},V={...U,rect:{get:F},ref:{get:B},is:k=>t===k,appendChild:Ho(m),createChildView:A(f),linkView:k=>(_.push(k),k),unlinkView:k=>{_.splice(_.indexOf(k),1)},appendChildView:Wo(m,_),removeChildView:Yo(m,_),registerWriter:k=>R.push(k),registerReader:k=>S.push(k),registerDestroyer:k=>D.push(k),invalidateLayout:()=>m.layoutCalculated=!1,dispatch:f.dispatch,query:f.query},q={element:{get:x},childViews:{get:O},rect:{get:F},resting:{get:()=>T},isRectIgnored:()=>c,_read:L,_write:N,_destroy:P},X={...U,rect:{get:()=>b}};Object.keys(h).sort((k,W)=>k==="styles"?1:W==="styles"?-1:0).forEach(k=>{let W=cl[k]({mixinConfig:h[k],viewProps:p,viewState:v,viewInternalAPI:V,viewExternalAPI:q,view:Be(X)});W&&y.push(W)});let j=Be(V);r({root:j,props:p});let se=Xo(m);return _.forEach((k,W)=>{j.appendChild(k.element,se+W)}),s(j),Be(q)},dl=(e,t,i=60)=>{let a="__framePainter";if(window[a]){window[a].readers.push(e),window[a].writers.push(t);return}window[a]={readers:[e],writers:[t]};let n=window[a],r=1e3/i,o=null,l=null,s=null,u=null,c=()=>{document.hidden?(s=()=>window.setTimeout(()=>d(performance.now()),r),u=()=>window.clearTimeout(l)):(s=()=>window.requestAnimationFrame(d),u=()=>window.cancelAnimationFrame(l))};document.addEventListener("visibilitychange",()=>{u&&u(),c(),d(performance.now())});let d=h=>{l=s(d),o||(o=h);let f=h-o;f<=r||(o=h-f%r,n.readers.forEach(p=>p()),n.writers.forEach(p=>p(h)))};return c(),d(performance.now()),{pause:()=>{u(l)}}},he=(e,t)=>({root:i,props:a,actions:n=[],timestamp:r,shouldOptimize:o})=>{n.filter(l=>e[l.type]).forEach(l=>e[l.type]({root:i,props:a,action:l.data,timestamp:r,shouldOptimize:o})),t&&t({root:i,props:a,actions:n,timestamp:r,shouldOptimize:o})},Aa=(e,t)=>t.parentNode.insertBefore(e,t),La=(e,t)=>t.parentNode.insertBefore(e,t.nextSibling),ti=e=>Array.isArray(e),Fe=e=>e==null,ul=e=>e.trim(),ii=e=>""+e,hl=(e,t=",")=>Fe(e)?[]:ti(e)?e:ii(e).split(t).map(ul).filter(i=>i.length),dn=e=>typeof e=="boolean",un=e=>dn(e)?e:e==="true",ue=e=>typeof e=="string",hn=e=>He(e)?e:ue(e)?ii(e).replace(/[a-z]+/gi,""):0,Qt=e=>parseInt(hn(e),10),Ma=e=>parseFloat(hn(e)),dt=e=>He(e)&&isFinite(e)&&Math.floor(e)===e,Oa=(e,t=1e3)=>{if(dt(e))return e;let i=ii(e).trim();return/MB$/i.test(i)?(i=i.replace(/MB$i/,"").trim(),Qt(i)*t*t):/KB/i.test(i)?(i=i.replace(/KB$i/,"").trim(),Qt(i)*t):Qt(i)},We=e=>typeof e=="function",fl=e=>{let t=self,i=e.split("."),a=null;for(;a=i.shift();)if(t=t[a],!t)return null;return t},xa={process:"POST",patch:"PATCH",revert:"DELETE",fetch:"GET",restore:"GET",load:"GET"},pl=e=>{let t={};return t.url=ue(e)?e:e.url||"",t.timeout=e.timeout?parseInt(e.timeout,10):0,t.headers=e.headers?e.headers:{},J(xa,i=>{t[i]=ml(i,e[i],xa[i],t.timeout,t.headers)}),t.process=e.process||ue(e)||e.url?t.process:null,t.remove=e.remove||null,delete t.headers,t},ml=(e,t,i,a,n)=>{if(t===null)return null;if(typeof t=="function")return t;let r={url:i==="GET"||i==="PATCH"?`?${e}=`:"",method:i,headers:n,withCredentials:!1,timeout:a,onload:null,ondata:null,onerror:null};if(ue(t))return r.url=t,r;if(Object.assign(r,t),ue(r.headers)){let o=r.headers.split(/:(.+)/);r.headers={header:o[0],value:o[1]}}return r.withCredentials=un(r.withCredentials),r},gl=e=>pl(e),El=e=>e===null,oe=e=>typeof e=="object"&&e!==null,Tl=e=>oe(e)&&ue(e.url)&&oe(e.process)&&oe(e.revert)&&oe(e.restore)&&oe(e.fetch),wi=e=>ti(e)?"array":El(e)?"null":dt(e)?"int":/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(e)?"bytes":Tl(e)?"api":typeof e,Il=e=>e.replace(/{\s*'/g,'{"').replace(/'\s*}/g,'"}').replace(/'\s*:/g,'":').replace(/:\s*'/g,':"').replace(/,\s*'/g,',"').replace(/'\s*,/g,'",'),bl={array:hl,boolean:un,int:e=>wi(e)==="bytes"?Oa(e):Qt(e),number:Ma,float:Ma,bytes:Oa,string:e=>We(e)?e:ii(e),function:e=>fl(e),serverapi:gl,object:e=>{try{return JSON.parse(Il(e))}catch{return null}}},_l=(e,t)=>bl[t](e),fn=(e,t,i)=>{if(e===t)return e;let a=wi(e);if(a!==i){let n=_l(e,i);if(a=wi(n),n===null)throw`Trying to assign value with incorrect type to "${option}", allowed type: "${i}"`;e=n}return e},Rl=(e,t)=>{let i=e;return{enumerable:!0,get:()=>i,set:a=>{i=fn(a,e,t)}}},yl=e=>{let t={};return J(e,i=>{let a=e[i];t[i]=Rl(a[0],a[1])}),Be(t)},Sl=e=>({items:[],listUpdateTimeout:null,itemUpdateTimeout:null,processingQueue:[],options:yl(e)}),ai=(e,t="-")=>e.split(/(?=[A-Z])/).map(i=>i.toLowerCase()).join(t),wl=(e,t)=>{let i={};return J(t,a=>{i[a]={get:()=>e.getState().options[a],set:n=>{e.dispatch(`SET_${ai(a,"_").toUpperCase()}`,{value:n})}}}),i},vl=e=>(t,i,a)=>{let n={};return J(e,r=>{let o=ai(r,"_").toUpperCase();n[`SET_${o}`]=l=>{try{a.options[r]=l.value}catch{}t(`DID_SET_${o}`,{value:a.options[r]})}}),n},Al=e=>t=>{let i={};return J(e,a=>{i[`GET_${ai(a,"_").toUpperCase()}`]=n=>t.options[a]}),i},_e={API:1,DROP:2,BROWSE:3,PASTE:4,NONE:5},Gi=()=>Math.random().toString(36).substring(2,11),Vi=(e,t)=>e.splice(t,1),Ll=(e,t)=>{t?e():document.hidden?Promise.resolve(1).then(e):setTimeout(e,0)},ni=()=>{let e=[],t=(a,n)=>{Vi(e,e.findIndex(r=>r.event===a&&(r.cb===n||!n)))},i=(a,n,r)=>{e.filter(o=>o.event===a).map(o=>o.cb).forEach(o=>Ll(()=>o(...n),r))};return{fireSync:(a,...n)=>{i(a,n,!0)},fire:(a,...n)=>{i(a,n,!1)},on:(a,n)=>{e.push({event:a,cb:n})},onOnce:(a,n)=>{e.push({event:a,cb:(...r)=>{t(a,n),n(...r)}})},off:t}},pn=(e,t,i)=>{Object.getOwnPropertyNames(e).filter(a=>!i.includes(a)).forEach(a=>Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a)))},Ml=["fire","process","revert","load","on","off","onOnce","retryLoad","extend","archive","archived","release","released","requestProcessing","freeze"],fe=e=>{let t={};return pn(e,t,Ml),t},Ol=e=>{e.forEach((t,i)=>{t.released&&Vi(e,i)})},H={INIT:1,IDLE:2,PROCESSING_QUEUED:9,PROCESSING:3,PROCESSING_COMPLETE:5,PROCESSING_ERROR:6,PROCESSING_REVERT_ERROR:10,LOADING:7,LOAD_ERROR:8},re={INPUT:1,LIMBO:2,LOCAL:3},mn=e=>/[^0-9]+/.exec(e),gn=()=>mn(1.1.toLocaleString())[0],xl=()=>{let e=gn(),t=1e3.toLocaleString(),i=1e3.toString();return t!==i?mn(t)[0]:e==="."?",":"."},M={BOOLEAN:"boolean",INT:"int",NUMBER:"number",STRING:"string",ARRAY:"array",OBJECT:"object",FUNCTION:"function",ACTION:"action",SERVER_API:"serverapi",REGEX:"regex"},Ui=[],we=(e,t,i)=>new Promise((a,n)=>{let r=Ui.filter(l=>l.key===e).map(l=>l.cb);if(r.length===0){a(t);return}let o=r.shift();r.reduce((l,s)=>l.then(u=>s(u,i)),o(t,i)).then(l=>a(l)).catch(l=>n(l))}),je=(e,t,i)=>Ui.filter(a=>a.key===e).map(a=>a.cb(t,i)),Dl=(e,t)=>Ui.push({key:e,cb:t}),Pl=e=>Object.assign(at,e),Kt=()=>({...at}),Fl=e=>{J(e,(t,i)=>{at[t]&&(at[t][0]=fn(i,at[t][0],at[t][1]))})},at={id:[null,M.STRING],name:["filepond",M.STRING],disabled:[!1,M.BOOLEAN],className:[null,M.STRING],required:[!1,M.BOOLEAN],captureMethod:[null,M.STRING],allowSyncAcceptAttribute:[!0,M.BOOLEAN],allowDrop:[!0,M.BOOLEAN],allowBrowse:[!0,M.BOOLEAN],allowPaste:[!0,M.BOOLEAN],allowMultiple:[!1,M.BOOLEAN],allowReplace:[!0,M.BOOLEAN],allowRevert:[!0,M.BOOLEAN],allowRemove:[!0,M.BOOLEAN],allowProcess:[!0,M.BOOLEAN],allowReorder:[!1,M.BOOLEAN],allowDirectoriesOnly:[!1,M.BOOLEAN],storeAsFile:[!1,M.BOOLEAN],forceRevert:[!1,M.BOOLEAN],maxFiles:[null,M.INT],checkValidity:[!1,M.BOOLEAN],itemInsertLocationFreedom:[!0,M.BOOLEAN],itemInsertLocation:["before",M.STRING],itemInsertInterval:[75,M.INT],dropOnPage:[!1,M.BOOLEAN],dropOnElement:[!0,M.BOOLEAN],dropValidation:[!1,M.BOOLEAN],ignoredFiles:[[".ds_store","thumbs.db","desktop.ini"],M.ARRAY],instantUpload:[!0,M.BOOLEAN],maxParallelUploads:[2,M.INT],allowMinimumUploadDuration:[!0,M.BOOLEAN],chunkUploads:[!1,M.BOOLEAN],chunkForce:[!1,M.BOOLEAN],chunkSize:[5e6,M.INT],chunkRetryDelays:[[500,1e3,3e3],M.ARRAY],server:[null,M.SERVER_API],fileSizeBase:[1e3,M.INT],labelFileSizeBytes:["bytes",M.STRING],labelFileSizeKilobytes:["KB",M.STRING],labelFileSizeMegabytes:["MB",M.STRING],labelFileSizeGigabytes:["GB",M.STRING],labelDecimalSeparator:[gn(),M.STRING],labelThousandsSeparator:[xl(),M.STRING],labelIdle:['Drag & Drop your files or Browse',M.STRING],labelInvalidField:["Field contains invalid files",M.STRING],labelFileWaitingForSize:["Waiting for size",M.STRING],labelFileSizeNotAvailable:["Size not available",M.STRING],labelFileCountSingular:["file in list",M.STRING],labelFileCountPlural:["files in list",M.STRING],labelFileLoading:["Loading",M.STRING],labelFileAdded:["Added",M.STRING],labelFileLoadError:["Error during load",M.STRING],labelFileRemoved:["Removed",M.STRING],labelFileRemoveError:["Error during remove",M.STRING],labelFileProcessing:["Uploading",M.STRING],labelFileProcessingComplete:["Upload complete",M.STRING],labelFileProcessingAborted:["Upload cancelled",M.STRING],labelFileProcessingError:["Error during upload",M.STRING],labelFileProcessingRevertError:["Error during revert",M.STRING],labelTapToCancel:["tap to cancel",M.STRING],labelTapToRetry:["tap to retry",M.STRING],labelTapToUndo:["tap to undo",M.STRING],labelButtonRemoveItem:["Remove",M.STRING],labelButtonAbortItemLoad:["Abort",M.STRING],labelButtonRetryItemLoad:["Retry",M.STRING],labelButtonAbortItemProcessing:["Cancel",M.STRING],labelButtonUndoItemProcessing:["Undo",M.STRING],labelButtonRetryItemProcessing:["Retry",M.STRING],labelButtonProcessItem:["Upload",M.STRING],iconRemove:['',M.STRING],iconProcess:['',M.STRING],iconRetry:['',M.STRING],iconUndo:['',M.STRING],iconDone:['',M.STRING],oninit:[null,M.FUNCTION],onwarning:[null,M.FUNCTION],onerror:[null,M.FUNCTION],onactivatefile:[null,M.FUNCTION],oninitfile:[null,M.FUNCTION],onaddfilestart:[null,M.FUNCTION],onaddfileprogress:[null,M.FUNCTION],onaddfile:[null,M.FUNCTION],onprocessfilestart:[null,M.FUNCTION],onprocessfileprogress:[null,M.FUNCTION],onprocessfileabort:[null,M.FUNCTION],onprocessfilerevert:[null,M.FUNCTION],onprocessfile:[null,M.FUNCTION],onprocessfiles:[null,M.FUNCTION],onremovefile:[null,M.FUNCTION],onpreparefile:[null,M.FUNCTION],onupdatefiles:[null,M.FUNCTION],onreorderfiles:[null,M.FUNCTION],beforeDropFile:[null,M.FUNCTION],beforeAddFile:[null,M.FUNCTION],beforeRemoveFile:[null,M.FUNCTION],beforePrepareFile:[null,M.FUNCTION],stylePanelLayout:[null,M.STRING],stylePanelAspectRatio:[null,M.STRING],styleItemPanelAspectRatio:[null,M.STRING],styleButtonRemoveItemPosition:["left",M.STRING],styleButtonProcessItemPosition:["right",M.STRING],styleLoadIndicatorPosition:["right",M.STRING],styleProgressIndicatorPosition:["right",M.STRING],styleButtonRemoveItemAlign:[!1,M.BOOLEAN],files:[[],M.ARRAY],credits:[["https://pqina.nl/","Powered by PQINA"],M.ARRAY]},Ye=(e,t)=>Fe(t)?e[0]||null:dt(t)?e[t]||null:(typeof t=="object"&&(t=t.id),e.find(i=>i.id===t)||null),En=e=>{if(Fe(e))return e;if(/:/.test(e)){let t=e.split(":");return t[1]/t[0]}return parseFloat(e)},ve=e=>e.filter(t=>!t.archived),Tn={EMPTY:0,IDLE:1,ERROR:2,BUSY:3,READY:4},Wt=null,Cl=()=>{if(Wt===null)try{let e=new DataTransfer;e.items.add(new File(["hello world"],"This_Works.txt"));let t=document.createElement("input");t.setAttribute("type","file"),t.files=e.files,Wt=t.files.length===1}catch{Wt=!1}return Wt},zl=[H.LOAD_ERROR,H.PROCESSING_ERROR,H.PROCESSING_REVERT_ERROR],Nl=[H.LOADING,H.PROCESSING,H.PROCESSING_QUEUED,H.INIT],Bl=[H.PROCESSING_COMPLETE],Gl=e=>zl.includes(e.status),Vl=e=>Nl.includes(e.status),Ul=e=>Bl.includes(e.status),Da=e=>oe(e.options.server)&&(oe(e.options.server.process)||We(e.options.server.process)),kl=e=>({GET_STATUS:()=>{let t=ve(e.items),{EMPTY:i,ERROR:a,BUSY:n,IDLE:r,READY:o}=Tn;return t.length===0?i:t.some(Gl)?a:t.some(Vl)?n:t.some(Ul)?o:r},GET_ITEM:t=>Ye(e.items,t),GET_ACTIVE_ITEM:t=>Ye(ve(e.items),t),GET_ACTIVE_ITEMS:()=>ve(e.items),GET_ITEMS:()=>e.items,GET_ITEM_NAME:t=>{let i=Ye(e.items,t);return i?i.filename:null},GET_ITEM_SIZE:t=>{let i=Ye(e.items,t);return i?i.fileSize:null},GET_STYLES:()=>Object.keys(e.options).filter(t=>/^style/.test(t)).map(t=>({name:t,value:e.options[t]})),GET_PANEL_ASPECT_RATIO:()=>/circle/.test(e.options.stylePanelLayout)?1:En(e.options.stylePanelAspectRatio),GET_ITEM_PANEL_ASPECT_RATIO:()=>e.options.styleItemPanelAspectRatio,GET_ITEMS_BY_STATUS:t=>ve(e.items).filter(i=>i.status===t),GET_TOTAL_ITEMS:()=>ve(e.items).length,SHOULD_UPDATE_FILE_INPUT:()=>e.options.storeAsFile&&Cl()&&!Da(e),IS_ASYNC:()=>Da(e),GET_FILE_SIZE_LABELS:t=>({labelBytes:t("GET_LABEL_FILE_SIZE_BYTES")||void 0,labelKilobytes:t("GET_LABEL_FILE_SIZE_KILOBYTES")||void 0,labelMegabytes:t("GET_LABEL_FILE_SIZE_MEGABYTES")||void 0,labelGigabytes:t("GET_LABEL_FILE_SIZE_GIGABYTES")||void 0})}),Hl=e=>{let t=ve(e.items).length;if(!e.options.allowMultiple)return t===0;let i=e.options.maxFiles;return i===null||tMath.max(Math.min(i,e),t),Wl=(e,t,i)=>e.splice(t,0,i),Yl=(e,t,i)=>Fe(t)?null:typeof i>"u"?(e.push(t),t):(i=In(i,0,e.length),Wl(e,i,t),t),vi=e=>/^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i.test(e),Lt=e=>`${e}`.split("/").pop().split("?").shift(),ri=e=>e.split(".").pop(),$l=e=>{if(typeof e!="string")return"";let t=e.split("/").pop();return/svg/.test(t)?"svg":/zip|compressed/.test(t)?"zip":/plain/.test(t)?"txt":/msword/.test(t)?"doc":/[a-z]+/.test(t)?t==="jpeg"?"jpg":t:""},yt=(e,t="")=>(t+e).slice(-t.length),bn=(e=new Date)=>`${e.getFullYear()}-${yt(e.getMonth()+1,"00")}-${yt(e.getDate(),"00")}_${yt(e.getHours(),"00")}-${yt(e.getMinutes(),"00")}-${yt(e.getSeconds(),"00")}`,st=(e,t,i=null,a=null)=>{let n=typeof i=="string"?e.slice(0,e.size,i):e.slice(0,e.size,e.type);return n.lastModifiedDate=new Date,e._relativePath&&(n._relativePath=e._relativePath),ue(t)||(t=bn()),t&&a===null&&ri(t)?n.name=t:(a=a||$l(n.type),n.name=t+(a?"."+a:"")),n},ql=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,_n=(e,t)=>{let i=ql();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},Xl=(e,t)=>{let i=new ArrayBuffer(e.length),a=new Uint8Array(i);for(let n=0;n(/^data:(.+);/.exec(e)||[])[1]||null,jl=e=>e.split(",")[1].replace(/\s/g,""),Ql=e=>atob(jl(e)),Zl=e=>{let t=Rn(e),i=Ql(e);return Xl(i,t)},Kl=(e,t,i)=>st(Zl(e),t,null,i),Jl=e=>{if(!/^content-disposition:/i.test(e))return null;let t=e.split(/filename=|filename\*=.+''/).splice(1).map(i=>i.trim().replace(/^["']|[;"']{0,2}$/g,"")).filter(i=>i.length);return t.length?decodeURI(t[t.length-1]):null},es=e=>{if(/content-length:/i.test(e)){let t=e.match(/[0-9]+/)[0];return t?parseInt(t,10):null}return null},ts=e=>/x-content-transfer-id:/i.test(e)&&(e.split(":")[1]||"").trim()||null,ki=e=>{let t={source:null,name:null,size:null},i=e.split(` +`);for(let a of i){let n=Jl(a);if(n){t.name=n;continue}let r=es(a);if(r){t.size=r;continue}let o=ts(a);if(o){t.source=o;continue}}return t},is=e=>{let t={source:null,complete:!1,progress:0,size:null,timestamp:null,duration:0,request:null},i=()=>t.progress,a=()=>{t.request&&t.request.abort&&t.request.abort()},n=()=>{let l=t.source;o.fire("init",l),l instanceof File?o.fire("load",l):l instanceof Blob?o.fire("load",st(l,l.name)):vi(l)?o.fire("load",Kl(l)):r(l)},r=l=>{if(!e){o.fire("error",{type:"error",body:"Can't load URL",code:400});return}t.timestamp=Date.now(),t.request=e(l,s=>{t.duration=Date.now()-t.timestamp,t.complete=!0,s instanceof Blob&&(s=st(s,s.name||Lt(l))),o.fire("load",s instanceof Blob?s:s?s.body:null)},s=>{o.fire("error",typeof s=="string"?{type:"error",code:0,body:s}:s)},(s,u,c)=>{if(c&&(t.size=c),t.duration=Date.now()-t.timestamp,!s){t.progress=null;return}t.progress=u/c,o.fire("progress",t.progress)},()=>{o.fire("abort")},s=>{let u=ki(typeof s=="string"?s:s.headers);o.fire("meta",{size:t.size||u.size,filename:u.name,source:u.source})})},o={...ni(),setSource:l=>t.source=l,getProgress:i,abort:a,load:n};return o},Pa=e=>/GET|HEAD/.test(e),$e=(e,t,i)=>{let a={onheaders:()=>{},onprogress:()=>{},onload:()=>{},ontimeout:()=>{},onerror:()=>{},onabort:()=>{},abort:()=>{n=!0,o.abort()}},n=!1,r=!1;i={method:"POST",headers:{},withCredentials:!1,...i},t=encodeURI(t),Pa(i.method)&&e&&(t=`${t}${encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))}`);let o=new XMLHttpRequest,l=Pa(i.method)?o:o.upload;return l.onprogress=s=>{n||a.onprogress(s.lengthComputable,s.loaded,s.total)},o.onreadystatechange=()=>{o.readyState<2||o.readyState===4&&o.status===0||r||(r=!0,a.onheaders(o))},o.onload=()=>{o.status>=200&&o.status<300?a.onload(o):a.onerror(o)},o.onerror=()=>a.onerror(o),o.onabort=()=>{n=!0,a.onabort()},o.ontimeout=()=>a.ontimeout(o),o.open(i.method,t,!0),dt(i.timeout)&&(o.timeout=i.timeout),Object.keys(i.headers).forEach(s=>{let u=unescape(encodeURIComponent(i.headers[s]));o.setRequestHeader(s,u)}),i.responseType&&(o.responseType=i.responseType),i.withCredentials&&(o.withCredentials=!0),o.send(e),a},ee=(e,t,i,a)=>({type:e,code:t,body:i,headers:a}),qe=e=>t=>{e(ee("error",0,"Timeout",t.getAllResponseHeaders()))},Fa=e=>/\?/.test(e),vt=(...e)=>{let t="";return e.forEach(i=>{t+=Fa(t)&&Fa(i)?i.replace(/\?/,"&"):i}),t},Ii=(e="",t)=>{if(typeof t=="function")return t;if(!t||!ue(t.url))return null;let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,r,o,l,s,u)=>{let c=$e(n,vt(e,t.url),{...t,responseType:"blob"});return c.onload=d=>{let h=d.getAllResponseHeaders(),f=ki(h).name||Lt(n);r(ee("load",d.status,t.method==="HEAD"?null:st(i(d.response),f),h))},c.onerror=d=>{o(ee("error",d.status,a(d.response)||d.statusText,d.getAllResponseHeaders()))},c.onheaders=d=>{u(ee("headers",d.status,null,d.getAllResponseHeaders()))},c.ontimeout=qe(o),c.onprogress=l,c.onabort=s,c}},Ie={QUEUED:0,COMPLETE:1,PROCESSING:2,ERROR:3,WAITING:4},as=(e,t,i,a,n,r,o,l,s,u,c)=>{let d=[],{chunkTransferId:h,chunkServer:f,chunkSize:p,chunkRetryDelays:m}=c,g={serverId:h,aborted:!1},b=t.ondata||(A=>A),E=t.onload||((A,F)=>F==="HEAD"?A.getResponseHeader("Upload-Offset"):A.response),T=t.onerror||(A=>null),_=A=>{let F=new FormData;oe(n)&&F.append(i,JSON.stringify(n));let w=typeof t.headers=="function"?t.headers(a,n):{...t.headers,"Upload-Length":a.size},L={...t,headers:w},N=$e(b(F),vt(e,t.url),L);N.onload=P=>A(E(P,L.method)),N.onerror=P=>o(ee("error",P.status,T(P.response)||P.statusText,P.getAllResponseHeaders())),N.ontimeout=qe(o)},y=A=>{let F=vt(e,f.url,g.serverId),L={headers:typeof t.headers=="function"?t.headers(g.serverId):{...t.headers},method:"HEAD"},N=$e(null,F,L);N.onload=P=>A(E(P,L.method)),N.onerror=P=>o(ee("error",P.status,T(P.response)||P.statusText,P.getAllResponseHeaders())),N.ontimeout=qe(o)},I=Math.floor(a.size/p);for(let A=0;A<=I;A++){let F=A*p,w=a.slice(F,F+p,"application/offset+octet-stream");d[A]={index:A,size:w.size,offset:F,data:w,file:a,progress:0,retries:[...m],status:Ie.QUEUED,error:null,request:null,timeout:null}}let v=()=>r(g.serverId),R=A=>A.status===Ie.QUEUED||A.status===Ie.ERROR,S=A=>{if(g.aborted)return;if(A=A||d.find(R),!A){d.every(U=>U.status===Ie.COMPLETE)&&v();return}A.status=Ie.PROCESSING,A.progress=null;let F=f.ondata||(U=>U),w=f.onerror||(U=>null),L=vt(e,f.url,g.serverId),N=typeof f.headers=="function"?f.headers(A):{...f.headers,"Content-Type":"application/offset+octet-stream","Upload-Offset":A.offset,"Upload-Length":a.size,"Upload-Name":a.name},P=A.request=$e(F(A.data),L,{...f,headers:N});P.onload=()=>{A.status=Ie.COMPLETE,A.request=null,O()},P.onprogress=(U,V,q)=>{A.progress=U?V:null,x()},P.onerror=U=>{A.status=Ie.ERROR,A.request=null,A.error=w(U.response)||U.statusText,D(A)||o(ee("error",U.status,w(U.response)||U.statusText,U.getAllResponseHeaders()))},P.ontimeout=U=>{A.status=Ie.ERROR,A.request=null,D(A)||qe(o)(U)},P.onabort=()=>{A.status=Ie.QUEUED,A.request=null,s()}},D=A=>A.retries.length===0?!1:(A.status=Ie.WAITING,clearTimeout(A.timeout),A.timeout=setTimeout(()=>{S(A)},A.retries.shift()),!0),x=()=>{let A=d.reduce((w,L)=>w===null||L.progress===null?null:w+L.progress,0);if(A===null)return l(!1,0,0);let F=d.reduce((w,L)=>w+L.size,0);l(!0,A,F)},O=()=>{d.filter(F=>F.status===Ie.PROCESSING).length>=1||S()},B=()=>{d.forEach(A=>{clearTimeout(A.timeout),A.request&&A.request.abort()})};return g.serverId?y(A=>{g.aborted||(d.filter(F=>F.offset{F.status=Ie.COMPLETE,F.progress=F.size}),O())}):_(A=>{g.aborted||(u(A),g.serverId=A,O())}),{abort:()=>{g.aborted=!0,B()}}},ns=(e,t,i,a)=>(n,r,o,l,s,u,c)=>{if(!n)return;let d=a.chunkUploads,h=d&&n.size>a.chunkSize,f=d&&(h||a.chunkForce);if(n instanceof Blob&&f)return as(e,t,i,n,r,o,l,s,u,c,a);let p=t.ondata||(y=>y),m=t.onload||(y=>y),g=t.onerror||(y=>null),b=typeof t.headers=="function"?t.headers(n,r)||{}:{...t.headers},E={...t,headers:b};var T=new FormData;oe(r)&&T.append(i,JSON.stringify(r)),(n instanceof Blob?[{name:null,file:n}]:n).forEach(y=>{T.append(i,y.file,y.name===null?y.file.name:`${y.name}${y.file.name}`)});let _=$e(p(T),vt(e,t.url),E);return _.onload=y=>{o(ee("load",y.status,m(y.response),y.getAllResponseHeaders()))},_.onerror=y=>{l(ee("error",y.status,g(y.response)||y.statusText,y.getAllResponseHeaders()))},_.ontimeout=qe(l),_.onprogress=s,_.onabort=u,_},rs=(e="",t,i,a)=>typeof t=="function"?(...n)=>t(i,...n,a):!t||!ue(t.url)?null:ns(e,t,i,a),St=(e="",t)=>{if(typeof t=="function")return t;if(!t||!ue(t.url))return(n,r)=>r();let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,r,o)=>{let l=$e(n,e+t.url,t);return l.onload=s=>{r(ee("load",s.status,i(s.response),s.getAllResponseHeaders()))},l.onerror=s=>{o(ee("error",s.status,a(s.response)||s.statusText,s.getAllResponseHeaders()))},l.ontimeout=qe(o),l}},yn=(e=0,t=1)=>e+Math.random()*(t-e),os=(e,t=1e3,i=0,a=25,n=250)=>{let r=null,o=Date.now(),l=()=>{let s=Date.now()-o,u=yn(a,n);s+u>t&&(u=s+u-t);let c=s/t;if(c>=1||document.hidden){e(1);return}e(c),r=setTimeout(l,u)};return t>0&&l(),{clear:()=>{clearTimeout(r)}}},ls=(e,t)=>{let i={complete:!1,perceivedProgress:0,perceivedPerformanceUpdater:null,progress:null,timestamp:null,perceivedDuration:0,duration:0,request:null,response:null},{allowMinimumUploadDuration:a}=t,n=(c,d)=>{let h=()=>{i.duration===0||i.progress===null||u.fire("progress",u.getProgress())},f=()=>{i.complete=!0,u.fire("load-perceived",i.response.body)};u.fire("start"),i.timestamp=Date.now(),i.perceivedPerformanceUpdater=os(p=>{i.perceivedProgress=p,i.perceivedDuration=Date.now()-i.timestamp,h(),i.response&&i.perceivedProgress===1&&!i.complete&&f()},a?yn(750,1500):0),i.request=e(c,d,p=>{i.response=oe(p)?p:{type:"load",code:200,body:`${p}`,headers:{}},i.duration=Date.now()-i.timestamp,i.progress=1,u.fire("load",i.response.body),(!a||a&&i.perceivedProgress===1)&&f()},p=>{i.perceivedPerformanceUpdater.clear(),u.fire("error",oe(p)?p:{type:"error",code:0,body:`${p}`})},(p,m,g)=>{i.duration=Date.now()-i.timestamp,i.progress=p?m/g:null,h()},()=>{i.perceivedPerformanceUpdater.clear(),u.fire("abort",i.response?i.response.body:null)},p=>{u.fire("transfer",p)})},r=()=>{i.request&&(i.perceivedPerformanceUpdater.clear(),i.request.abort&&i.request.abort(),i.complete=!0)},o=()=>{r(),i.complete=!1,i.perceivedProgress=0,i.progress=0,i.timestamp=null,i.perceivedDuration=0,i.duration=0,i.request=null,i.response=null},l=a?()=>i.progress?Math.min(i.progress,i.perceivedProgress):null:()=>i.progress||null,s=a?()=>Math.min(i.duration,i.perceivedDuration):()=>i.duration,u={...ni(),process:n,abort:r,getProgress:l,getDuration:s,reset:o};return u},Sn=e=>e.substring(0,e.lastIndexOf("."))||e,ss=e=>{let t=[e.name,e.size,e.type];return e instanceof Blob||vi(e)?t[0]=e.name||bn():vi(e)?(t[1]=e.length,t[2]=Rn(e)):ue(e)&&(t[0]=Lt(e),t[1]=0,t[2]="application/octet-stream"),{name:t[0],size:t[1],type:t[2]}},ct=e=>!!(e instanceof File||e instanceof Blob&&e.name),wn=e=>{if(!oe(e))return e;let t=ti(e)?[]:{};for(let i in e){if(!e.hasOwnProperty(i))continue;let a=e[i];t[i]=a&&oe(a)?wn(a):a}return t},cs=(e=null,t=null,i=null)=>{let a=Gi(),n={archived:!1,frozen:!1,released:!1,source:null,file:i,serverFileReference:t,transferId:null,processingAborted:!1,status:t?H.PROCESSING_COMPLETE:H.INIT,activeLoader:null,activeProcessor:null},r=null,o={},l=R=>n.status=R,s=(R,...S)=>{n.released||n.frozen||I.fire(R,...S)},u=()=>ri(n.file.name),c=()=>n.file.type,d=()=>n.file.size,h=()=>n.file,f=(R,S,D)=>{if(n.source=R,I.fireSync("init"),n.file){I.fireSync("load-skip");return}n.file=ss(R),S.on("init",()=>{s("load-init")}),S.on("meta",x=>{n.file.size=x.size,n.file.filename=x.filename,x.source&&(e=re.LIMBO,n.serverFileReference=x.source,n.status=H.PROCESSING_COMPLETE),s("load-meta")}),S.on("progress",x=>{l(H.LOADING),s("load-progress",x)}),S.on("error",x=>{l(H.LOAD_ERROR),s("load-request-error",x)}),S.on("abort",()=>{l(H.INIT),s("load-abort")}),S.on("load",x=>{n.activeLoader=null;let O=A=>{n.file=ct(A)?A:n.file,e===re.LIMBO&&n.serverFileReference?l(H.PROCESSING_COMPLETE):l(H.IDLE),s("load")},B=A=>{n.file=x,s("load-meta"),l(H.LOAD_ERROR),s("load-file-error",A)};if(n.serverFileReference){O(x);return}D(x,O,B)}),S.setSource(R),n.activeLoader=S,S.load()},p=()=>{n.activeLoader&&n.activeLoader.load()},m=()=>{if(n.activeLoader){n.activeLoader.abort();return}l(H.INIT),s("load-abort")},g=(R,S)=>{if(n.processingAborted){n.processingAborted=!1;return}if(l(H.PROCESSING),r=null,!(n.file instanceof Blob)){I.on("load",()=>{g(R,S)});return}R.on("load",O=>{n.transferId=null,n.serverFileReference=O}),R.on("transfer",O=>{n.transferId=O}),R.on("load-perceived",O=>{n.activeProcessor=null,n.transferId=null,n.serverFileReference=O,l(H.PROCESSING_COMPLETE),s("process-complete",O)}),R.on("start",()=>{s("process-start")}),R.on("error",O=>{n.activeProcessor=null,l(H.PROCESSING_ERROR),s("process-error",O)}),R.on("abort",O=>{n.activeProcessor=null,n.serverFileReference=O,l(H.IDLE),s("process-abort"),r&&r()}),R.on("progress",O=>{s("process-progress",O)});let D=O=>{n.archived||R.process(O,{...o})},x=console.error;S(n.file,D,x),n.activeProcessor=R},b=()=>{n.processingAborted=!1,l(H.PROCESSING_QUEUED)},E=()=>new Promise(R=>{if(!n.activeProcessor){n.processingAborted=!0,l(H.IDLE),s("process-abort"),R();return}r=()=>{R()},n.activeProcessor.abort()}),T=(R,S)=>new Promise((D,x)=>{let O=n.serverFileReference!==null?n.serverFileReference:n.transferId;if(O===null){D();return}R(O,()=>{n.serverFileReference=null,n.transferId=null,D()},B=>{if(!S){D();return}l(H.PROCESSING_REVERT_ERROR),s("process-revert-error"),x(B)}),l(H.IDLE),s("process-revert")}),_=(R,S,D)=>{let x=R.split("."),O=x[0],B=x.pop(),A=o;x.forEach(F=>A=A[F]),JSON.stringify(A[B])!==JSON.stringify(S)&&(A[B]=S,s("metadata-update",{key:O,value:o[O],silent:D}))},I={id:{get:()=>a},origin:{get:()=>e,set:R=>e=R},serverId:{get:()=>n.serverFileReference},transferId:{get:()=>n.transferId},status:{get:()=>n.status},filename:{get:()=>n.file.name},filenameWithoutExtension:{get:()=>Sn(n.file.name)},fileExtension:{get:u},fileType:{get:c},fileSize:{get:d},file:{get:h},relativePath:{get:()=>n.file._relativePath},source:{get:()=>n.source},getMetadata:R=>wn(R?o[R]:o),setMetadata:(R,S,D)=>{if(oe(R)){let x=R;return Object.keys(x).forEach(O=>{_(O,x[O],S)}),R}return _(R,S,D),S},extend:(R,S)=>v[R]=S,abortLoad:m,retryLoad:p,requestProcessing:b,abortProcessing:E,load:f,process:g,revert:T,...ni(),freeze:()=>n.frozen=!0,release:()=>n.released=!0,released:{get:()=>n.released},archive:()=>n.archived=!0,archived:{get:()=>n.archived}},v=Be(I);return v},ds=(e,t)=>Fe(t)?0:ue(t)?e.findIndex(i=>i.id===t):-1,Ca=(e,t)=>{let i=ds(e,t);if(!(i<0))return e[i]||null},za=(e,t,i,a,n,r)=>{let o=$e(null,e,{method:"GET",responseType:"blob"});return o.onload=l=>{let s=l.getAllResponseHeaders(),u=ki(s).name||Lt(e);t(ee("load",l.status,st(l.response,u),s))},o.onerror=l=>{i(ee("error",l.status,l.statusText,l.getAllResponseHeaders()))},o.onheaders=l=>{r(ee("headers",l.status,null,l.getAllResponseHeaders()))},o.ontimeout=qe(i),o.onprogress=a,o.onabort=n,o},Na=e=>(e.indexOf("//")===0&&(e=location.protocol+e),e.toLowerCase().replace("blob:","").replace(/([a-z])?:\/\//,"$1").split("/")[0]),us=e=>(e.indexOf(":")>-1||e.indexOf("//")>-1)&&Na(location.href)!==Na(e),Yt=e=>(...t)=>We(e)?e(...t):e,hs=e=>!ct(e.file),bi=(e,t)=>{clearTimeout(t.listUpdateTimeout),t.listUpdateTimeout=setTimeout(()=>{e("DID_UPDATE_ITEMS",{items:ve(t.items)})},0)},Ba=(e,...t)=>new Promise(i=>{if(!e)return i(!0);let a=e(...t);if(a==null)return i(!0);if(typeof a=="boolean")return i(a);typeof a.then=="function"&&a.then(i)}),_i=(e,t)=>{e.items.sort((i,a)=>t(fe(i),fe(a)))},be=(e,t)=>({query:i,success:a=()=>{},failure:n=()=>{},...r}={})=>{let o=Ye(e.items,i);if(!o){n({error:ee("error",0,"Item not found"),file:null});return}t(o,a,n,r||{})},fs=(e,t,i)=>({ABORT_ALL:()=>{ve(i.items).forEach(a=>{a.freeze(),a.abortLoad(),a.abortProcessing()})},DID_SET_FILES:({value:a=[]})=>{let n=a.map(o=>({source:o.source?o.source:o,options:o.options})),r=ve(i.items);r.forEach(o=>{n.find(l=>l.source===o.source||l.source===o.file)||e("REMOVE_ITEM",{query:o,remove:!1})}),r=ve(i.items),n.forEach((o,l)=>{r.find(s=>s.source===o.source||s.file===o.source)||e("ADD_ITEM",{...o,interactionMethod:_e.NONE,index:l})})},DID_UPDATE_ITEM_METADATA:({id:a,action:n,change:r})=>{r.silent||(clearTimeout(i.itemUpdateTimeout),i.itemUpdateTimeout=setTimeout(()=>{let o=Ca(i.items,a);if(!t("IS_ASYNC")){we("SHOULD_PREPARE_OUTPUT",!1,{item:o,query:t,action:n,change:r}).then(c=>{let d=t("GET_BEFORE_PREPARE_FILE");d&&(c=d(o,c)),c&&e("REQUEST_PREPARE_OUTPUT",{query:a,item:o,success:h=>{e("DID_PREPARE_OUTPUT",{id:a,file:h})}},!0)});return}o.origin===re.LOCAL&&e("DID_LOAD_ITEM",{id:o.id,error:null,serverFileReference:o.source});let l=()=>{setTimeout(()=>{e("REQUEST_ITEM_PROCESSING",{query:a})},32)},s=c=>{o.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(c?l:()=>{}).catch(()=>{})},u=c=>{o.abortProcessing().then(c?l:()=>{})};if(o.status===H.PROCESSING_COMPLETE)return s(i.options.instantUpload);if(o.status===H.PROCESSING)return u(i.options.instantUpload);i.options.instantUpload&&l()},0))},MOVE_ITEM:({query:a,index:n})=>{let r=Ye(i.items,a);if(!r)return;let o=i.items.indexOf(r);n=In(n,0,i.items.length-1),o!==n&&i.items.splice(n,0,i.items.splice(o,1)[0])},SORT:({compare:a})=>{_i(i,a),e("DID_SORT_ITEMS",{items:t("GET_ACTIVE_ITEMS")})},ADD_ITEMS:({items:a,index:n,interactionMethod:r,success:o=()=>{},failure:l=()=>{}})=>{let s=n;if(n===-1||typeof n>"u"){let f=t("GET_ITEM_INSERT_LOCATION"),p=t("GET_TOTAL_ITEMS");s=f==="before"?0:p}let u=t("GET_IGNORED_FILES"),c=f=>ct(f)?!u.includes(f.name.toLowerCase()):!Fe(f),h=a.filter(c).map(f=>new Promise((p,m)=>{e("ADD_ITEM",{interactionMethod:r,source:f.source||f,success:p,failure:m,index:s++,options:f.options||{}})}));Promise.all(h).then(o).catch(l)},ADD_ITEM:({source:a,index:n=-1,interactionMethod:r,success:o=()=>{},failure:l=()=>{},options:s={}})=>{if(Fe(a)){l({error:ee("error",0,"No source"),file:null});return}if(ct(a)&&i.options.ignoredFiles.includes(a.name.toLowerCase()))return;if(!Hl(i)){if(i.options.allowMultiple||!i.options.allowMultiple&&!i.options.allowReplace){let E=ee("warning",0,"Max files");e("DID_THROW_MAX_FILES",{source:a,error:E}),l({error:E,file:null});return}let b=ve(i.items)[0];if(b.status===H.PROCESSING_COMPLETE||b.status===H.PROCESSING_REVERT_ERROR){let E=t("GET_FORCE_REVERT");if(b.revert(St(i.options.server.url,i.options.server.revert),E).then(()=>{E&&e("ADD_ITEM",{source:a,index:n,interactionMethod:r,success:o,failure:l,options:s})}).catch(()=>{}),E)return}e("REMOVE_ITEM",{query:b.id})}let u=s.type==="local"?re.LOCAL:s.type==="limbo"?re.LIMBO:re.INPUT,c=cs(u,u===re.INPUT?null:a,s.file);Object.keys(s.metadata||{}).forEach(b=>{c.setMetadata(b,s.metadata[b])}),je("DID_CREATE_ITEM",c,{query:t,dispatch:e});let d=t("GET_ITEM_INSERT_LOCATION");i.options.itemInsertLocationFreedom||(n=d==="before"?-1:i.items.length),Yl(i.items,c,n),We(d)&&a&&_i(i,d);let h=c.id;c.on("init",()=>{e("DID_INIT_ITEM",{id:h})}),c.on("load-init",()=>{e("DID_START_ITEM_LOAD",{id:h})}),c.on("load-meta",()=>{e("DID_UPDATE_ITEM_META",{id:h})}),c.on("load-progress",b=>{e("DID_UPDATE_ITEM_LOAD_PROGRESS",{id:h,progress:b})}),c.on("load-request-error",b=>{let E=Yt(i.options.labelFileLoadError)(b);if(b.code>=400&&b.code<500){e("DID_THROW_ITEM_INVALID",{id:h,error:b,status:{main:E,sub:`${b.code} (${b.body})`}}),l({error:b,file:fe(c)});return}e("DID_THROW_ITEM_LOAD_ERROR",{id:h,error:b,status:{main:E,sub:i.options.labelTapToRetry}})}),c.on("load-file-error",b=>{e("DID_THROW_ITEM_INVALID",{id:h,error:b.status,status:b.status}),l({error:b.status,file:fe(c)})}),c.on("load-abort",()=>{e("REMOVE_ITEM",{query:h})}),c.on("load-skip",()=>{e("COMPLETE_LOAD_ITEM",{query:h,item:c,data:{source:a,success:o}})}),c.on("load",()=>{let b=E=>{if(!E){e("REMOVE_ITEM",{query:h});return}c.on("metadata-update",T=>{e("DID_UPDATE_ITEM_METADATA",{id:h,change:T})}),we("SHOULD_PREPARE_OUTPUT",!1,{item:c,query:t}).then(T=>{let _=t("GET_BEFORE_PREPARE_FILE");_&&(T=_(c,T));let y=()=>{e("COMPLETE_LOAD_ITEM",{query:h,item:c,data:{source:a,success:o}}),bi(e,i)};if(T){e("REQUEST_PREPARE_OUTPUT",{query:h,item:c,success:I=>{e("DID_PREPARE_OUTPUT",{id:h,file:I}),y()}},!0);return}y()})};we("DID_LOAD_ITEM",c,{query:t,dispatch:e}).then(()=>{Ba(t("GET_BEFORE_ADD_FILE"),fe(c)).then(b)}).catch(E=>{if(!E||!E.error||!E.status)return b(!1);e("DID_THROW_ITEM_INVALID",{id:h,error:E.error,status:E.status})})}),c.on("process-start",()=>{e("DID_START_ITEM_PROCESSING",{id:h})}),c.on("process-progress",b=>{e("DID_UPDATE_ITEM_PROCESS_PROGRESS",{id:h,progress:b})}),c.on("process-error",b=>{e("DID_THROW_ITEM_PROCESSING_ERROR",{id:h,error:b,status:{main:Yt(i.options.labelFileProcessingError)(b),sub:i.options.labelTapToRetry}})}),c.on("process-revert-error",b=>{e("DID_THROW_ITEM_PROCESSING_REVERT_ERROR",{id:h,error:b,status:{main:Yt(i.options.labelFileProcessingRevertError)(b),sub:i.options.labelTapToRetry}})}),c.on("process-complete",b=>{e("DID_COMPLETE_ITEM_PROCESSING",{id:h,error:null,serverFileReference:b}),e("DID_DEFINE_VALUE",{id:h,value:b})}),c.on("process-abort",()=>{e("DID_ABORT_ITEM_PROCESSING",{id:h})}),c.on("process-revert",()=>{e("DID_REVERT_ITEM_PROCESSING",{id:h}),e("DID_DEFINE_VALUE",{id:h,value:null})}),e("DID_ADD_ITEM",{id:h,index:n,interactionMethod:r}),bi(e,i);let{url:f,load:p,restore:m,fetch:g}=i.options.server||{};c.load(a,is(u===re.INPUT?ue(a)&&us(a)&&g?Ii(f,g):za:u===re.LIMBO?Ii(f,m):Ii(f,p)),(b,E,T)=>{we("LOAD_FILE",b,{query:t}).then(E).catch(T)})},REQUEST_PREPARE_OUTPUT:({item:a,success:n,failure:r=()=>{}})=>{let o={error:ee("error",0,"Item not found"),file:null};if(a.archived)return r(o);we("PREPARE_OUTPUT",a.file,{query:t,item:a}).then(l=>{we("COMPLETE_PREPARE_OUTPUT",l,{query:t,item:a}).then(s=>{if(a.archived)return r(o);n(s)})})},COMPLETE_LOAD_ITEM:({item:a,data:n})=>{let{success:r,source:o}=n,l=t("GET_ITEM_INSERT_LOCATION");if(We(l)&&o&&_i(i,l),e("DID_LOAD_ITEM",{id:a.id,error:null,serverFileReference:a.origin===re.INPUT?null:o}),r(fe(a)),a.origin===re.LOCAL){e("DID_LOAD_LOCAL_ITEM",{id:a.id});return}if(a.origin===re.LIMBO){e("DID_COMPLETE_ITEM_PROCESSING",{id:a.id,error:null,serverFileReference:o}),e("DID_DEFINE_VALUE",{id:a.id,value:a.serverId||o});return}t("IS_ASYNC")&&i.options.instantUpload&&e("REQUEST_ITEM_PROCESSING",{query:a.id})},RETRY_ITEM_LOAD:be(i,a=>{a.retryLoad()}),REQUEST_ITEM_PREPARE:be(i,(a,n,r)=>{e("REQUEST_PREPARE_OUTPUT",{query:a.id,item:a,success:o=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:o}),n({file:a,output:o})},failure:r},!0)}),REQUEST_ITEM_PROCESSING:be(i,(a,n,r)=>{if(!(a.status===H.IDLE||a.status===H.PROCESSING_ERROR)){let l=()=>e("REQUEST_ITEM_PROCESSING",{query:a,success:n,failure:r}),s=()=>document.hidden?l():setTimeout(l,32);a.status===H.PROCESSING_COMPLETE||a.status===H.PROCESSING_REVERT_ERROR?a.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(s).catch(()=>{}):a.status===H.PROCESSING&&a.abortProcessing().then(s);return}a.status!==H.PROCESSING_QUEUED&&(a.requestProcessing(),e("DID_REQUEST_ITEM_PROCESSING",{id:a.id}),e("PROCESS_ITEM",{query:a,success:n,failure:r},!0))}),PROCESS_ITEM:be(i,(a,n,r)=>{let o=t("GET_MAX_PARALLEL_UPLOADS");if(t("GET_ITEMS_BY_STATUS",H.PROCESSING).length===o){i.processingQueue.push({id:a.id,success:n,failure:r});return}if(a.status===H.PROCESSING)return;let s=()=>{let c=i.processingQueue.shift();if(!c)return;let{id:d,success:h,failure:f}=c,p=Ye(i.items,d);if(!p||p.archived){s();return}e("PROCESS_ITEM",{query:d,success:h,failure:f},!0)};a.onOnce("process-complete",()=>{n(fe(a)),s();let c=i.options.server;if(i.options.instantUpload&&a.origin===re.LOCAL&&We(c.remove)){let f=()=>{};a.origin=re.LIMBO,i.options.server.remove(a.source,f,f)}t("GET_ITEMS_BY_STATUS",H.PROCESSING_COMPLETE).length===i.items.length&&e("DID_COMPLETE_ITEM_PROCESSING_ALL")}),a.onOnce("process-error",c=>{r({error:c,file:fe(a)}),s()});let u=i.options;a.process(ls(rs(u.server.url,u.server.process,u.name,{chunkTransferId:a.transferId,chunkServer:u.server.patch,chunkUploads:u.chunkUploads,chunkForce:u.chunkForce,chunkSize:u.chunkSize,chunkRetryDelays:u.chunkRetryDelays}),{allowMinimumUploadDuration:t("GET_ALLOW_MINIMUM_UPLOAD_DURATION")}),(c,d,h)=>{we("PREPARE_OUTPUT",c,{query:t,item:a}).then(f=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:f}),d(f)}).catch(h)})}),RETRY_ITEM_PROCESSING:be(i,a=>{e("REQUEST_ITEM_PROCESSING",{query:a})}),REQUEST_REMOVE_ITEM:be(i,a=>{Ba(t("GET_BEFORE_REMOVE_FILE"),fe(a)).then(n=>{n&&e("REMOVE_ITEM",{query:a})})}),RELEASE_ITEM:be(i,a=>{a.release()}),REMOVE_ITEM:be(i,(a,n,r,o)=>{let l=()=>{let u=a.id;Ca(i.items,u).archive(),e("DID_REMOVE_ITEM",{error:null,id:u,item:a}),bi(e,i),n(fe(a))},s=i.options.server;a.origin===re.LOCAL&&s&&We(s.remove)&&o.remove!==!1?(e("DID_START_ITEM_REMOVE",{id:a.id}),s.remove(a.source,()=>l(),u=>{e("DID_THROW_ITEM_REMOVE_ERROR",{id:a.id,error:ee("error",0,u,null),status:{main:Yt(i.options.labelFileRemoveError)(u),sub:i.options.labelTapToRetry}})})):((o.revert&&a.origin!==re.LOCAL&&a.serverId!==null||i.options.chunkUploads&&a.file.size>i.options.chunkSize||i.options.chunkUploads&&i.options.chunkForce)&&a.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")),l())}),ABORT_ITEM_LOAD:be(i,a=>{a.abortLoad()}),ABORT_ITEM_PROCESSING:be(i,a=>{if(a.serverId){e("REVERT_ITEM_PROCESSING",{id:a.id});return}a.abortProcessing().then(()=>{i.options.instantUpload&&e("REMOVE_ITEM",{query:a.id})})}),REQUEST_REVERT_ITEM_PROCESSING:be(i,a=>{if(!i.options.instantUpload){e("REVERT_ITEM_PROCESSING",{query:a});return}let n=l=>{l&&e("REVERT_ITEM_PROCESSING",{query:a})},r=t("GET_BEFORE_REMOVE_FILE");if(!r)return n(!0);let o=r(fe(a));if(o==null)return n(!0);if(typeof o=="boolean")return n(o);typeof o.then=="function"&&o.then(n)}),REVERT_ITEM_PROCESSING:be(i,a=>{a.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(()=>{(i.options.instantUpload||hs(a))&&e("REMOVE_ITEM",{query:a.id})}).catch(()=>{})}),SET_OPTIONS:({options:a})=>{let n=Object.keys(a),r=ps.filter(l=>n.includes(l));[...r,...Object.keys(a).filter(l=>!r.includes(l))].forEach(l=>{e(`SET_${ai(l,"_").toUpperCase()}`,{value:a[l]})})}}),ps=["server"],Hi=e=>e,Ce=e=>document.createElement(e),te=(e,t)=>{let i=e.childNodes[0];i?t!==i.nodeValue&&(i.nodeValue=t):(i=document.createTextNode(t),e.appendChild(i))},Ga=(e,t,i,a)=>{let n=(a%360-90)*Math.PI/180;return{x:e+i*Math.cos(n),y:t+i*Math.sin(n)}},ms=(e,t,i,a,n,r)=>{let o=Ga(e,t,i,n),l=Ga(e,t,i,a);return["M",o.x,o.y,"A",i,i,0,r,0,l.x,l.y].join(" ")},gs=(e,t,i,a,n)=>{let r=1;return n>a&&n-a<=.5&&(r=0),a>n&&a-n>=.5&&(r=0),ms(e,t,i,Math.min(.9999,a)*360,Math.min(.9999,n)*360,r)},Es=({root:e,props:t})=>{t.spin=!1,t.progress=0,t.opacity=0;let i=Zt("svg");e.ref.path=Zt("path",{"stroke-width":2,"stroke-linecap":"round"}),i.appendChild(e.ref.path),e.ref.svg=i,e.appendChild(i)},Ts=({root:e,props:t})=>{if(t.opacity===0)return;t.align&&(e.element.dataset.align=t.align);let i=parseInt(ie(e.ref.path,"stroke-width"),10),a=e.rect.element.width*.5,n=0,r=0;t.spin?(n=0,r=.5):(n=0,r=t.progress);let o=gs(a,a,a-i,n,r);ie(e.ref.path,"d",o),ie(e.ref.path,"stroke-opacity",t.spin||t.progress>0?1:0)},Va=ae({tag:"div",name:"progress-indicator",ignoreRectUpdate:!0,ignoreRect:!0,create:Es,write:Ts,mixins:{apis:["progress","spin","align"],styles:["opacity"],animations:{opacity:{type:"tween",duration:500},progress:{type:"spring",stiffness:.95,damping:.65,mass:10}}}}),Is=({root:e,props:t})=>{e.element.innerHTML=(t.icon||"")+`${t.label}`,t.isDisabled=!1},bs=({root:e,props:t})=>{let{isDisabled:i}=t,a=e.query("GET_DISABLED")||t.opacity===0;a&&!i?(t.isDisabled=!0,ie(e.element,"disabled","disabled")):!a&&i&&(t.isDisabled=!1,e.element.removeAttribute("disabled"))},vn=ae({tag:"button",attributes:{type:"button"},ignoreRect:!0,ignoreRectUpdate:!0,name:"file-action-button",mixins:{apis:["label"],styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}},listeners:!0},create:Is,write:bs}),An=(e,t=".",i=1e3,a={})=>{let{labelBytes:n="bytes",labelKilobytes:r="KB",labelMegabytes:o="MB",labelGigabytes:l="GB"}=a;e=Math.round(Math.abs(e));let s=i,u=i*i,c=i*i*i;return ee.toFixed(t).split(".").filter(a=>a!=="0").join(i),_s=({root:e,props:t})=>{let i=Ce("span");i.className="filepond--file-info-main",ie(i,"aria-hidden","true"),e.appendChild(i),e.ref.fileName=i;let a=Ce("span");a.className="filepond--file-info-sub",e.appendChild(a),e.ref.fileSize=a,te(a,e.query("GET_LABEL_FILE_WAITING_FOR_SIZE")),te(i,Hi(e.query("GET_ITEM_NAME",t.id)))},Ai=({root:e,props:t})=>{te(e.ref.fileSize,An(e.query("GET_ITEM_SIZE",t.id),".",e.query("GET_FILE_SIZE_BASE"),e.query("GET_FILE_SIZE_LABELS",e.query))),te(e.ref.fileName,Hi(e.query("GET_ITEM_NAME",t.id)))},ka=({root:e,props:t})=>{if(dt(e.query("GET_ITEM_SIZE",t.id))){Ai({root:e,props:t});return}te(e.ref.fileSize,e.query("GET_LABEL_FILE_SIZE_NOT_AVAILABLE"))},Rs=ae({name:"file-info",ignoreRect:!0,ignoreRectUpdate:!0,write:he({DID_LOAD_ITEM:Ai,DID_UPDATE_ITEM_META:Ai,DID_THROW_ITEM_LOAD_ERROR:ka,DID_THROW_ITEM_INVALID:ka}),didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},create:_s,mixins:{styles:["translateX","translateY"],animations:{translateX:"spring",translateY:"spring"}}}),Ln=e=>Math.round(e*100),ys=({root:e})=>{let t=Ce("span");t.className="filepond--file-status-main",e.appendChild(t),e.ref.main=t;let i=Ce("span");i.className="filepond--file-status-sub",e.appendChild(i),e.ref.sub=i,Mn({root:e,action:{progress:null}})},Mn=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_LOADING"):`${e.query("GET_LABEL_FILE_LOADING")} ${Ln(t.progress)}%`;te(e.ref.main,i),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},Ss=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_PROCESSING"):`${e.query("GET_LABEL_FILE_PROCESSING")} ${Ln(t.progress)}%`;te(e.ref.main,i),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},ws=({root:e})=>{te(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING")),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},vs=({root:e})=>{te(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_ABORTED")),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_RETRY"))},As=({root:e})=>{te(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_COMPLETE")),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_UNDO"))},Ha=({root:e})=>{te(e.ref.main,""),te(e.ref.sub,"")},wt=({root:e,action:t})=>{te(e.ref.main,t.status.main),te(e.ref.sub,t.status.sub)},Ls=ae({name:"file-status",ignoreRect:!0,ignoreRectUpdate:!0,write:he({DID_LOAD_ITEM:Ha,DID_REVERT_ITEM_PROCESSING:Ha,DID_REQUEST_ITEM_PROCESSING:ws,DID_ABORT_ITEM_PROCESSING:vs,DID_COMPLETE_ITEM_PROCESSING:As,DID_UPDATE_ITEM_PROCESS_PROGRESS:Ss,DID_UPDATE_ITEM_LOAD_PROGRESS:Mn,DID_THROW_ITEM_LOAD_ERROR:wt,DID_THROW_ITEM_INVALID:wt,DID_THROW_ITEM_PROCESSING_ERROR:wt,DID_THROW_ITEM_PROCESSING_REVERT_ERROR:wt,DID_THROW_ITEM_REMOVE_ERROR:wt}),didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},create:ys,mixins:{styles:["translateX","translateY","opacity"],animations:{opacity:{type:"tween",duration:250},translateX:"spring",translateY:"spring"}}}),Li={AbortItemLoad:{label:"GET_LABEL_BUTTON_ABORT_ITEM_LOAD",action:"ABORT_ITEM_LOAD",className:"filepond--action-abort-item-load",align:"LOAD_INDICATOR_POSITION"},RetryItemLoad:{label:"GET_LABEL_BUTTON_RETRY_ITEM_LOAD",action:"RETRY_ITEM_LOAD",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-load",align:"BUTTON_PROCESS_ITEM_POSITION"},RemoveItem:{label:"GET_LABEL_BUTTON_REMOVE_ITEM",action:"REQUEST_REMOVE_ITEM",icon:"GET_ICON_REMOVE",className:"filepond--action-remove-item",align:"BUTTON_REMOVE_ITEM_POSITION"},ProcessItem:{label:"GET_LABEL_BUTTON_PROCESS_ITEM",action:"REQUEST_ITEM_PROCESSING",icon:"GET_ICON_PROCESS",className:"filepond--action-process-item",align:"BUTTON_PROCESS_ITEM_POSITION"},AbortItemProcessing:{label:"GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING",action:"ABORT_ITEM_PROCESSING",className:"filepond--action-abort-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RetryItemProcessing:{label:"GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING",action:"RETRY_ITEM_PROCESSING",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RevertItemProcessing:{label:"GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING",action:"REQUEST_REVERT_ITEM_PROCESSING",icon:"GET_ICON_UNDO",className:"filepond--action-revert-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"}},Mi=[];J(Li,e=>{Mi.push(e)});var Ee=e=>{if(Oi(e)==="right")return 0;let t=e.ref.buttonRemoveItem.rect.element;return t.hidden?null:t.width+t.left},Ms=e=>e.ref.buttonAbortItemLoad.rect.element.width,$t=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.height/4),Os=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.left/2),xs=e=>e.query("GET_STYLE_LOAD_INDICATOR_POSITION"),Ds=e=>e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION"),Oi=e=>e.query("GET_STYLE_BUTTON_REMOVE_ITEM_POSITION"),Ps={buttonAbortItemLoad:{opacity:0},buttonRetryItemLoad:{opacity:0},buttonRemoveItem:{opacity:0},buttonProcessItem:{opacity:0},buttonAbortItemProcessing:{opacity:0},buttonRetryItemProcessing:{opacity:0},buttonRevertItemProcessing:{opacity:0},loadProgressIndicator:{opacity:0,align:xs},processProgressIndicator:{opacity:0,align:Ds},processingCompleteIndicator:{opacity:0,scaleX:.75,scaleY:.75},info:{translateX:0,translateY:0,opacity:0},status:{translateX:0,translateY:0,opacity:0}},Wa={buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:Ee},status:{translateX:Ee}},Ri={buttonAbortItemProcessing:{opacity:1},processProgressIndicator:{opacity:1},status:{opacity:1}},nt={DID_THROW_ITEM_INVALID:{buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{translateX:Ee,opacity:1}},DID_START_ITEM_LOAD:{buttonAbortItemLoad:{opacity:1},loadProgressIndicator:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_LOAD_ERROR:{buttonRetryItemLoad:{opacity:1},buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{opacity:1}},DID_START_ITEM_REMOVE:{processProgressIndicator:{opacity:1,align:Oi},info:{translateX:Ee},status:{opacity:0}},DID_THROW_ITEM_REMOVE_ERROR:{processProgressIndicator:{opacity:0,align:Oi},buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{opacity:1,translateX:Ee}},DID_LOAD_ITEM:Wa,DID_LOAD_LOCAL_ITEM:{buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{translateX:Ee}},DID_START_ITEM_PROCESSING:Ri,DID_REQUEST_ITEM_PROCESSING:Ri,DID_UPDATE_ITEM_PROCESS_PROGRESS:Ri,DID_COMPLETE_ITEM_PROCESSING:{buttonRevertItemProcessing:{opacity:1},info:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_PROCESSING_ERROR:{buttonRemoveItem:{opacity:1},buttonRetryItemProcessing:{opacity:1},status:{opacity:1},info:{translateX:Ee}},DID_THROW_ITEM_PROCESSING_REVERT_ERROR:{buttonRevertItemProcessing:{opacity:1},status:{opacity:1},info:{opacity:1}},DID_ABORT_ITEM_PROCESSING:{buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:Ee},status:{opacity:1}},DID_REVERT_ITEM_PROCESSING:Wa},Fs=ae({create:({root:e})=>{e.element.innerHTML=e.query("GET_ICON_DONE")},name:"processing-complete-indicator",ignoreRect:!0,mixins:{styles:["scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",opacity:{type:"tween",duration:250}}}}),Cs=({root:e,props:t})=>{let i=Object.keys(Li).reduce((p,m)=>(p[m]={...Li[m]},p),{}),{id:a}=t,n=e.query("GET_ALLOW_REVERT"),r=e.query("GET_ALLOW_REMOVE"),o=e.query("GET_ALLOW_PROCESS"),l=e.query("GET_INSTANT_UPLOAD"),s=e.query("IS_ASYNC"),u=e.query("GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN"),c;s?o&&!n?c=p=>!/RevertItemProcessing/.test(p):!o&&n?c=p=>!/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(p):!o&&!n&&(c=p=>!/Process/.test(p)):c=p=>!/Process/.test(p);let d=c?Mi.filter(c):Mi.concat();if(l&&n&&(i.RevertItemProcessing.label="GET_LABEL_BUTTON_REMOVE_ITEM",i.RevertItemProcessing.icon="GET_ICON_REMOVE"),s&&!n){let p=nt.DID_COMPLETE_ITEM_PROCESSING;p.info.translateX=Os,p.info.translateY=$t,p.status.translateY=$t,p.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}if(s&&!o&&(["DID_START_ITEM_PROCESSING","DID_REQUEST_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_THROW_ITEM_PROCESSING_ERROR"].forEach(p=>{nt[p].status.translateY=$t}),nt.DID_THROW_ITEM_PROCESSING_ERROR.status.translateX=Ms),u&&n){i.RevertItemProcessing.align="BUTTON_REMOVE_ITEM_POSITION";let p=nt.DID_COMPLETE_ITEM_PROCESSING;p.info.translateX=Ee,p.status.translateY=$t,p.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}r||(i.RemoveItem.disabled=!0),J(i,(p,m)=>{let g=e.createChildView(vn,{label:e.query(m.label),icon:e.query(m.icon),opacity:0});d.includes(p)&&e.appendChildView(g),m.disabled&&(g.element.setAttribute("disabled","disabled"),g.element.setAttribute("hidden","hidden")),g.element.dataset.align=e.query(`GET_STYLE_${m.align}`),g.element.classList.add(m.className),g.on("click",b=>{b.stopPropagation(),!m.disabled&&e.dispatch(m.action,{query:a})}),e.ref[`button${p}`]=g}),e.ref.processingCompleteIndicator=e.appendChildView(e.createChildView(Fs)),e.ref.processingCompleteIndicator.element.dataset.align=e.query("GET_STYLE_BUTTON_PROCESS_ITEM_POSITION"),e.ref.info=e.appendChildView(e.createChildView(Rs,{id:a})),e.ref.status=e.appendChildView(e.createChildView(Ls,{id:a}));let h=e.appendChildView(e.createChildView(Va,{opacity:0,align:e.query("GET_STYLE_LOAD_INDICATOR_POSITION")}));h.element.classList.add("filepond--load-indicator"),e.ref.loadProgressIndicator=h;let f=e.appendChildView(e.createChildView(Va,{opacity:0,align:e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION")}));f.element.classList.add("filepond--process-indicator"),e.ref.processProgressIndicator=f,e.ref.activeStyles=[]},zs=({root:e,actions:t,props:i})=>{Ns({root:e,actions:t,props:i});let a=t.concat().filter(n=>/^DID_/.test(n.type)).reverse().find(n=>nt[n.type]);if(a){e.ref.activeStyles=[];let n=nt[a.type];J(Ps,(r,o)=>{let l=e.ref[r];J(o,(s,u)=>{let c=n[r]&&typeof n[r][s]<"u"?n[r][s]:u;e.ref.activeStyles.push({control:l,key:s,value:c})})})}e.ref.activeStyles.forEach(({control:n,key:r,value:o})=>{n[r]=typeof o=="function"?o(e):o})},Ns=he({DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING:({root:e,action:t})=>{e.ref.buttonAbortItemProcessing.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD:({root:e,action:t})=>{e.ref.buttonAbortItemLoad.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL:({root:e,action:t})=>{e.ref.buttonAbortItemRemoval.label=t.value},DID_REQUEST_ITEM_PROCESSING:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_START_ITEM_LOAD:({root:e})=>{e.ref.loadProgressIndicator.spin=!0,e.ref.loadProgressIndicator.progress=0},DID_START_ITEM_REMOVE:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_UPDATE_ITEM_LOAD_PROGRESS:({root:e,action:t})=>{e.ref.loadProgressIndicator.spin=!1,e.ref.loadProgressIndicator.progress=t.progress},DID_UPDATE_ITEM_PROCESS_PROGRESS:({root:e,action:t})=>{e.ref.processProgressIndicator.spin=!1,e.ref.processProgressIndicator.progress=t.progress}}),Bs=ae({create:Cs,write:zs,didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},name:"file"}),Gs=({root:e,props:t})=>{e.ref.fileName=Ce("legend"),e.appendChild(e.ref.fileName),e.ref.file=e.appendChildView(e.createChildView(Bs,{id:t.id})),e.ref.data=!1},Vs=({root:e,props:t})=>{te(e.ref.fileName,Hi(e.query("GET_ITEM_NAME",t.id)))},Us=ae({create:Gs,ignoreRect:!0,write:he({DID_LOAD_ITEM:Vs}),didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},tag:"fieldset",name:"file-wrapper"}),Ya={type:"spring",damping:.6,mass:7},ks=({root:e,props:t})=>{[{name:"top"},{name:"center",props:{translateY:null,scaleY:null},mixins:{animations:{scaleY:Ya},styles:["translateY","scaleY"]}},{name:"bottom",props:{translateY:null},mixins:{animations:{translateY:Ya},styles:["translateY"]}}].forEach(i=>{Hs(e,i,t.name)}),e.element.classList.add(`filepond--${t.name}`),e.ref.scalable=null},Hs=(e,t,i)=>{let a=ae({name:`panel-${t.name} filepond--${i}`,mixins:t.mixins,ignoreRectUpdate:!0}),n=e.createChildView(a,t.props);e.ref[t.name]=e.appendChildView(n)},Ws=({root:e,props:t})=>{if((e.ref.scalable===null||t.scalable!==e.ref.scalable)&&(e.ref.scalable=dn(t.scalable)?t.scalable:!0,e.element.dataset.scalable=e.ref.scalable),!t.height)return;let i=e.ref.top.rect.element,a=e.ref.bottom.rect.element,n=Math.max(i.height+a.height,t.height);e.ref.center.translateY=i.height,e.ref.center.scaleY=(n-i.height-a.height)/100,e.ref.bottom.translateY=n-a.height},On=ae({name:"panel",read:({root:e,props:t})=>t.heightCurrent=e.ref.bottom.translateY,write:Ws,create:ks,ignoreRect:!0,mixins:{apis:["height","heightCurrent","scalable"]}}),Ys=e=>{let t=e.map(a=>a.id),i;return{setIndex:a=>{i=a},getIndex:()=>i,getItemIndex:a=>t.indexOf(a.id)}},$a={type:"spring",stiffness:.75,damping:.45,mass:10},qa="spring",Xa={DID_START_ITEM_LOAD:"busy",DID_UPDATE_ITEM_LOAD_PROGRESS:"loading",DID_THROW_ITEM_INVALID:"load-invalid",DID_THROW_ITEM_LOAD_ERROR:"load-error",DID_LOAD_ITEM:"idle",DID_THROW_ITEM_REMOVE_ERROR:"remove-error",DID_START_ITEM_REMOVE:"busy",DID_START_ITEM_PROCESSING:"busy processing",DID_REQUEST_ITEM_PROCESSING:"busy processing",DID_UPDATE_ITEM_PROCESS_PROGRESS:"processing",DID_COMPLETE_ITEM_PROCESSING:"processing-complete",DID_THROW_ITEM_PROCESSING_ERROR:"processing-error",DID_THROW_ITEM_PROCESSING_REVERT_ERROR:"processing-revert-error",DID_ABORT_ITEM_PROCESSING:"cancelled",DID_REVERT_ITEM_PROCESSING:"idle"},$s=({root:e,props:t})=>{if(e.ref.handleClick=a=>e.dispatch("DID_ACTIVATE_ITEM",{id:t.id}),e.element.id=`filepond--item-${t.id}`,e.element.addEventListener("click",e.ref.handleClick),e.ref.container=e.appendChildView(e.createChildView(Us,{id:t.id})),e.ref.panel=e.appendChildView(e.createChildView(On,{name:"item-panel"})),e.ref.panel.height=null,t.markedForRemoval=!1,!e.query("GET_ALLOW_REORDER"))return;e.element.dataset.dragState="idle";let i=a=>{if(!a.isPrimary)return;let n=!1,r={x:a.pageX,y:a.pageY};t.dragOrigin={x:e.translateX,y:e.translateY},t.dragCenter={x:a.offsetX,y:a.offsetY};let o=Ys(e.query("GET_ACTIVE_ITEMS"));e.dispatch("DID_GRAB_ITEM",{id:t.id,dragState:o});let l=u=>{if(!u.isPrimary)return;u.stopPropagation(),u.preventDefault(),t.dragOffset={x:u.pageX-r.x,y:u.pageY-r.y},t.dragOffset.x*t.dragOffset.x+t.dragOffset.y*t.dragOffset.y>16&&!n&&(n=!0,e.element.removeEventListener("click",e.ref.handleClick)),e.dispatch("DID_DRAG_ITEM",{id:t.id,dragState:o})},s=u=>{u.isPrimary&&(document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",s),t.dragOffset={x:u.pageX-r.x,y:u.pageY-r.y},e.dispatch("DID_DROP_ITEM",{id:t.id,dragState:o}),n&&setTimeout(()=>e.element.addEventListener("click",e.ref.handleClick),0))};document.addEventListener("pointermove",l),document.addEventListener("pointerup",s)};e.element.addEventListener("pointerdown",i)},qs=he({DID_UPDATE_PANEL_HEIGHT:({root:e,action:t})=>{e.height=t.height}}),Xs=he({DID_GRAB_ITEM:({root:e,props:t})=>{t.dragOrigin={x:e.translateX,y:e.translateY}},DID_DRAG_ITEM:({root:e})=>{e.element.dataset.dragState="drag"},DID_DROP_ITEM:({root:e,props:t})=>{t.dragOffset=null,t.dragOrigin=null,e.element.dataset.dragState="drop"}},({root:e,actions:t,props:i,shouldOptimize:a})=>{e.element.dataset.dragState==="drop"&&e.scaleX<=1&&(e.element.dataset.dragState="idle");let n=t.concat().filter(o=>/^DID_/.test(o.type)).reverse().find(o=>Xa[o.type]);n&&n.type!==i.currentState&&(i.currentState=n.type,e.element.dataset.filepondItemState=Xa[i.currentState]||"");let r=e.query("GET_ITEM_PANEL_ASPECT_RATIO")||e.query("GET_PANEL_ASPECT_RATIO");r?a||(e.height=e.rect.element.width*r):(qs({root:e,actions:t,props:i}),!e.height&&e.ref.container.rect.element.height>0&&(e.height=e.ref.container.rect.element.height)),a&&(e.ref.panel.height=null),e.ref.panel.height=e.height}),js=ae({create:$s,write:Xs,destroy:({root:e,props:t})=>{e.element.removeEventListener("click",e.ref.handleClick),e.dispatch("RELEASE_ITEM",{query:t.id})},tag:"li",name:"item",mixins:{apis:["id","interactionMethod","markedForRemoval","spawnDate","dragCenter","dragOrigin","dragOffset"],styles:["translateX","translateY","scaleX","scaleY","opacity","height"],animations:{scaleX:qa,scaleY:qa,translateX:$a,translateY:$a,opacity:{type:"tween",duration:150}}}}),Wi=(e,t)=>Math.max(1,Math.floor((e+1)/t)),Yi=(e,t,i)=>{if(!i)return;let a=e.rect.element.width,n=t.length,r=null;if(n===0||i.topE){if(i.left{ie(e.element,"role","list"),e.ref.lastItemSpanwDate=Date.now()},Zs=({root:e,action:t})=>{let{id:i,index:a,interactionMethod:n}=t;e.ref.addIndex=a;let r=Date.now(),o=r,l=1;if(n!==_e.NONE){l=0;let s=e.query("GET_ITEM_INSERT_INTERVAL"),u=r-e.ref.lastItemSpanwDate;o=u{e.dragOffset?(e.translateX=null,e.translateY=null,e.translateX=e.dragOrigin.x+e.dragOffset.x,e.translateY=e.dragOrigin.y+e.dragOffset.y,e.scaleX=1.025,e.scaleY=1.025):(e.translateX=t,e.translateY=i,Date.now()>e.spawnDate&&(e.opacity===0&&Ks(e,t,i,a,n),e.scaleX=1,e.scaleY=1,e.opacity=1))},Ks=(e,t,i,a,n)=>{e.interactionMethod===_e.NONE?(e.translateX=null,e.translateX=t,e.translateY=null,e.translateY=i):e.interactionMethod===_e.DROP?(e.translateX=null,e.translateX=t-a*20,e.translateY=null,e.translateY=i-n*10,e.scaleX=.8,e.scaleY=.8):e.interactionMethod===_e.BROWSE?(e.translateY=null,e.translateY=i-30):e.interactionMethod===_e.API&&(e.translateX=null,e.translateX=t-30,e.translateY=null)},Js=({root:e,action:t})=>{let{id:i}=t,a=e.childViews.find(n=>n.id===i);a&&(a.scaleX=.9,a.scaleY=.9,a.opacity=0,a.markedForRemoval=!0)},yi=e=>e.rect.element.height+e.rect.element.marginBottom*.5+e.rect.element.marginTop*.5,ec=e=>e.rect.element.width+e.rect.element.marginLeft*.5+e.rect.element.marginRight*.5,tc=({root:e,action:t})=>{let{id:i,dragState:a}=t,n=e.query("GET_ITEM",{id:i}),r=e.childViews.find(g=>g.id===i),o=e.childViews.length,l=a.getItemIndex(n);if(!r)return;let s={x:r.dragOrigin.x+r.dragOffset.x+r.dragCenter.x,y:r.dragOrigin.y+r.dragOffset.y+r.dragCenter.y},u=yi(r),c=ec(r),d=Math.floor(e.rect.outer.width/c);d>o&&(d=o);let h=Math.floor(o/d+1);qt.setHeight=u*h,qt.setWidth=c*d;var f={y:Math.floor(s.y/u),x:Math.floor(s.x/c),getGridIndex:function(){return s.y>qt.getHeight||s.y<0||s.x>qt.getWidth||s.x<0?l:this.y*d+this.x},getColIndex:function(){let b=e.query("GET_ACTIVE_ITEMS"),E=e.childViews.filter(x=>x.rect.element.height),T=b.map(x=>E.find(O=>O.id===x.id)),_=T.findIndex(x=>x===r),y=yi(r),I=T.length,v=I,R=0,S=0,D=0;for(let x=0;xx){if(s.y1?f.getGridIndex():f.getColIndex();e.dispatch("MOVE_ITEM",{query:r,index:p});let m=a.getIndex();if(m===void 0||m!==p){if(a.setIndex(p),m===void 0)return;e.dispatch("DID_REORDER_ITEMS",{items:e.query("GET_ACTIVE_ITEMS"),origin:l,target:p})}},ic=he({DID_ADD_ITEM:Zs,DID_REMOVE_ITEM:Js,DID_DRAG_ITEM:tc}),ac=({root:e,props:t,actions:i,shouldOptimize:a})=>{ic({root:e,props:t,actions:i});let{dragCoordinates:n}=t,r=e.rect.element.width,o=e.childViews.filter(T=>T.rect.element.height),l=e.query("GET_ACTIVE_ITEMS").map(T=>o.find(_=>_.id===T.id)).filter(T=>T),s=n?Yi(e,l,n):null,u=e.ref.addIndex||null;e.ref.addIndex=null;let c=0,d=0,h=0;if(l.length===0)return;let f=l[0].rect.element,p=f.marginTop+f.marginBottom,m=f.marginLeft+f.marginRight,g=f.width+m,b=f.height+p,E=Wi(r,g);if(E===1){let T=0,_=0;l.forEach((y,I)=>{if(s){let S=I-s;S===-2?_=-p*.25:S===-1?_=-p*.75:S===0?_=p*.75:S===1?_=p*.25:_=0}a&&(y.translateX=null,y.translateY=null),y.markedForRemoval||ja(y,0,T+_);let R=(y.rect.element.height+p)*(y.markedForRemoval?y.opacity:1);T+=R})}else{let T=0,_=0;l.forEach((y,I)=>{I===s&&(c=1),I===u&&(h+=1),y.markedForRemoval&&y.opacity<.5&&(d-=1);let v=I+h+c+d,R=v%E,S=Math.floor(v/E),D=R*g,x=S*b,O=Math.sign(D-T),B=Math.sign(x-_);T=D,_=x,!y.markedForRemoval&&(a&&(y.translateX=null,y.translateY=null),ja(y,D,x,O,B))})}},nc=(e,t)=>t.filter(i=>i.data&&i.data.id?e.id===i.data.id:!0),rc=ae({create:Qs,write:ac,tag:"ul",name:"list",didWriteView:({root:e})=>{e.childViews.filter(t=>t.markedForRemoval&&t.opacity===0&&t.resting).forEach(t=>{t._destroy(),e.removeChildView(t)})},filterFrameActionsForChild:nc,mixins:{apis:["dragCoordinates"]}}),oc=({root:e,props:t})=>{e.ref.list=e.appendChildView(e.createChildView(rc)),t.dragCoordinates=null,t.overflowing=!1},lc=({root:e,props:t,action:i})=>{e.query("GET_ITEM_INSERT_LOCATION_FREEDOM")&&(t.dragCoordinates={left:i.position.scopeLeft-e.ref.list.rect.element.left,top:i.position.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},sc=({props:e})=>{e.dragCoordinates=null},cc=he({DID_DRAG:lc,DID_END_DRAG:sc}),dc=({root:e,props:t,actions:i})=>{if(cc({root:e,props:t,actions:i}),e.ref.list.dragCoordinates=t.dragCoordinates,t.overflowing&&!t.overflow&&(t.overflowing=!1,e.element.dataset.state="",e.height=null),t.overflow){let a=Math.round(t.overflow);a!==e.height&&(t.overflowing=!0,e.element.dataset.state="overflow",e.height=a)}},uc=ae({create:oc,write:dc,name:"list-scroller",mixins:{apis:["overflow","dragCoordinates"],styles:["height","translateY"],animations:{translateY:"spring"}}}),Ae=(e,t,i,a="")=>{i?ie(e,t,a):e.removeAttribute(t)},hc=e=>{if(!(!e||e.value==="")){try{e.value=""}catch{}if(e.value){let t=Ce("form"),i=e.parentNode,a=e.nextSibling;t.appendChild(e),t.reset(),a?i.insertBefore(e,a):i.appendChild(e)}}},fc=({root:e,props:t})=>{e.element.id=`filepond--browser-${t.id}`,ie(e.element,"name",e.query("GET_NAME")),ie(e.element,"aria-controls",`filepond--assistant-${t.id}`),ie(e.element,"aria-labelledby",`filepond--drop-label-${t.id}`),xn({root:e,action:{value:e.query("GET_ACCEPTED_FILE_TYPES")}}),Dn({root:e,action:{value:e.query("GET_ALLOW_MULTIPLE")}}),Pn({root:e,action:{value:e.query("GET_ALLOW_DIRECTORIES_ONLY")}}),xi({root:e}),Fn({root:e,action:{value:e.query("GET_REQUIRED")}}),Cn({root:e,action:{value:e.query("GET_CAPTURE_METHOD")}}),e.ref.handleChange=i=>{if(!e.element.value)return;let a=Array.from(e.element.files).map(n=>(n._relativePath=n.webkitRelativePath,n));setTimeout(()=>{t.onload(a),hc(e.element)},250)},e.element.addEventListener("change",e.ref.handleChange)},xn=({root:e,action:t})=>{e.query("GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE")&&Ae(e.element,"accept",!!t.value,t.value?t.value.join(","):"")},Dn=({root:e,action:t})=>{Ae(e.element,"multiple",t.value)},Pn=({root:e,action:t})=>{Ae(e.element,"webkitdirectory",t.value)},xi=({root:e})=>{let t=e.query("GET_DISABLED"),i=e.query("GET_ALLOW_BROWSE"),a=t||!i;Ae(e.element,"disabled",a)},Fn=({root:e,action:t})=>{t.value?e.query("GET_TOTAL_ITEMS")===0&&Ae(e.element,"required",!0):Ae(e.element,"required",!1)},Cn=({root:e,action:t})=>{Ae(e.element,"capture",!!t.value,t.value===!0?"":t.value)},Qa=({root:e})=>{let{element:t}=e;e.query("GET_TOTAL_ITEMS")>0?(Ae(t,"required",!1),Ae(t,"name",!1)):(Ae(t,"name",!0,e.query("GET_NAME")),e.query("GET_CHECK_VALIDITY")&&t.setCustomValidity(""),e.query("GET_REQUIRED")&&Ae(t,"required",!0))},pc=({root:e})=>{e.query("GET_CHECK_VALIDITY")&&e.element.setCustomValidity(e.query("GET_LABEL_INVALID_FIELD"))},mc=ae({tag:"input",name:"browser",ignoreRect:!0,ignoreRectUpdate:!0,attributes:{type:"file"},create:fc,destroy:({root:e})=>{e.element.removeEventListener("change",e.ref.handleChange)},write:he({DID_LOAD_ITEM:Qa,DID_REMOVE_ITEM:Qa,DID_THROW_ITEM_INVALID:pc,DID_SET_DISABLED:xi,DID_SET_ALLOW_BROWSE:xi,DID_SET_ALLOW_DIRECTORIES_ONLY:Pn,DID_SET_ALLOW_MULTIPLE:Dn,DID_SET_ACCEPTED_FILE_TYPES:xn,DID_SET_CAPTURE_METHOD:Cn,DID_SET_REQUIRED:Fn})}),Za={ENTER:13,SPACE:32},gc=({root:e,props:t})=>{let i=Ce("label");ie(i,"for",`filepond--browser-${t.id}`),ie(i,"id",`filepond--drop-label-${t.id}`),ie(i,"aria-hidden","true"),e.ref.handleKeyDown=a=>{(a.keyCode===Za.ENTER||a.keyCode===Za.SPACE)&&(a.preventDefault(),e.ref.label.click())},e.ref.handleClick=a=>{a.target===i||i.contains(a.target)||e.ref.label.click()},i.addEventListener("keydown",e.ref.handleKeyDown),e.element.addEventListener("click",e.ref.handleClick),zn(i,t.caption),e.appendChild(i),e.ref.label=i},zn=(e,t)=>{e.innerHTML=t;let i=e.querySelector(".filepond--label-action");return i&&ie(i,"tabindex","0"),t},Ec=ae({name:"drop-label",ignoreRect:!0,create:gc,destroy:({root:e})=>{e.ref.label.addEventListener("keydown",e.ref.handleKeyDown),e.element.removeEventListener("click",e.ref.handleClick)},write:he({DID_SET_LABEL_IDLE:({root:e,action:t})=>{zn(e.ref.label,t.value)}}),mixins:{styles:["opacity","translateX","translateY"],animations:{opacity:{type:"tween",duration:150},translateX:"spring",translateY:"spring"}}}),Tc=ae({name:"drip-blob",ignoreRect:!0,mixins:{styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}}}}),Ic=({root:e})=>{let t=e.rect.element.width*.5,i=e.rect.element.height*.5;e.ref.blob=e.appendChildView(e.createChildView(Tc,{opacity:0,scaleX:2.5,scaleY:2.5,translateX:t,translateY:i}))},bc=({root:e,action:t})=>{if(!e.ref.blob){Ic({root:e});return}e.ref.blob.translateX=t.position.scopeLeft,e.ref.blob.translateY=t.position.scopeTop,e.ref.blob.scaleX=1,e.ref.blob.scaleY=1,e.ref.blob.opacity=1},_c=({root:e})=>{e.ref.blob&&(e.ref.blob.opacity=0)},Rc=({root:e})=>{e.ref.blob&&(e.ref.blob.scaleX=2.5,e.ref.blob.scaleY=2.5,e.ref.blob.opacity=0)},yc=({root:e,props:t,actions:i})=>{Sc({root:e,props:t,actions:i});let{blob:a}=e.ref;i.length===0&&a&&a.opacity===0&&(e.removeChildView(a),e.ref.blob=null)},Sc=he({DID_DRAG:bc,DID_DROP:Rc,DID_END_DRAG:_c}),wc=ae({ignoreRect:!0,ignoreRectUpdate:!0,name:"drip",write:yc}),Nn=(e,t)=>{try{let i=new DataTransfer;t.forEach(a=>{a instanceof File?i.items.add(a):i.items.add(new File([a],a.name,{type:a.type}))}),e.files=i.files}catch{return!1}return!0},vc=({root:e})=>e.ref.fields={},oi=(e,t)=>e.ref.fields[t],$i=e=>{e.query("GET_ACTIVE_ITEMS").forEach(t=>{e.ref.fields[t.id]&&e.element.appendChild(e.ref.fields[t.id])})},Ka=({root:e})=>$i(e),Ac=({root:e,action:t})=>{let n=!(e.query("GET_ITEM",t.id).origin===re.LOCAL)&&e.query("SHOULD_UPDATE_FILE_INPUT"),r=Ce("input");r.type=n?"file":"hidden",r.name=e.query("GET_NAME"),r.disabled=e.query("GET_DISABLED"),e.ref.fields[t.id]=r,$i(e)},Lc=({root:e,action:t})=>{let i=oi(e,t.id);if(!i||(t.serverFileReference!==null&&(i.value=t.serverFileReference),!e.query("SHOULD_UPDATE_FILE_INPUT")))return;let a=e.query("GET_ITEM",t.id);Nn(i,[a.file])},Mc=({root:e,action:t})=>{e.query("SHOULD_UPDATE_FILE_INPUT")&&setTimeout(()=>{let i=oi(e,t.id);i&&Nn(i,[t.file])},0)},Oc=({root:e})=>{e.element.disabled=e.query("GET_DISABLED")},xc=({root:e,action:t})=>{let i=oi(e,t.id);i&&(i.parentNode&&i.parentNode.removeChild(i),delete e.ref.fields[t.id])},Dc=({root:e,action:t})=>{let i=oi(e,t.id);i&&(t.value===null?i.removeAttribute("value"):i.type!="file"&&(i.value=t.value),$i(e))},Pc=he({DID_SET_DISABLED:Oc,DID_ADD_ITEM:Ac,DID_LOAD_ITEM:Lc,DID_REMOVE_ITEM:xc,DID_DEFINE_VALUE:Dc,DID_PREPARE_OUTPUT:Mc,DID_REORDER_ITEMS:Ka,DID_SORT_ITEMS:Ka}),Fc=ae({tag:"fieldset",name:"data",create:vc,write:Pc,ignoreRect:!0}),Cc=e=>"getRootNode"in e?e.getRootNode():document,zc=["jpg","jpeg","png","gif","bmp","webp","svg","tiff"],Nc=["css","csv","html","txt"],Bc={zip:"zip|compressed",epub:"application/epub+zip"},Bn=(e="")=>(e=e.toLowerCase(),zc.includes(e)?"image/"+(e==="jpg"?"jpeg":e==="svg"?"svg+xml":e):Nc.includes(e)?"text/"+e:Bc[e]||""),qi=e=>new Promise((t,i)=>{let a=$c(e);if(a.length&&!Gc(e))return t(a);Vc(e).then(t)}),Gc=e=>e.files?e.files.length>0:!1,Vc=e=>new Promise((t,i)=>{let a=(e.items?Array.from(e.items):[]).filter(n=>Uc(n)).map(n=>kc(n));if(!a.length){t(e.files?Array.from(e.files):[]);return}Promise.all(a).then(n=>{let r=[];n.forEach(o=>{r.push.apply(r,o)}),t(r.filter(o=>o).map(o=>(o._relativePath||(o._relativePath=o.webkitRelativePath),o)))}).catch(console.error)}),Uc=e=>{if(Gn(e)){let t=Xi(e);if(t)return t.isFile||t.isDirectory}return e.kind==="file"},kc=e=>new Promise((t,i)=>{if(Yc(e)){Hc(Xi(e)).then(t).catch(i);return}t([e.getAsFile()])}),Hc=e=>new Promise((t,i)=>{let a=[],n=0,r=0,o=()=>{r===0&&n===0&&t(a)},l=s=>{n++;let u=s.createReader(),c=()=>{u.readEntries(d=>{if(d.length===0){n--,o();return}d.forEach(h=>{h.isDirectory?l(h):(r++,h.file(f=>{let p=Wc(f);h.fullPath&&(p._relativePath=h.fullPath),a.push(p),r--,o()}))}),c()},i)};c()};l(e)}),Wc=e=>{if(e.type.length)return e;let t=e.lastModifiedDate,i=e.name,a=Bn(ri(e.name));return a.length&&(e=e.slice(0,e.size,a),e.name=i,e.lastModifiedDate=t),e},Yc=e=>Gn(e)&&(Xi(e)||{}).isDirectory,Gn=e=>"webkitGetAsEntry"in e,Xi=e=>e.webkitGetAsEntry(),$c=e=>{let t=[];try{if(t=Xc(e),t.length)return t;t=qc(e)}catch{}return t},qc=e=>{let t=e.getData("url");return typeof t=="string"&&t.length?[t]:[]},Xc=e=>{let t=e.getData("text/html");if(typeof t=="string"&&t.length){let i=t.match(/src\s*=\s*"(.+?)"/);if(i)return[i[1]]}return[]},Jt=[],Xe=e=>({pageLeft:e.pageX,pageTop:e.pageY,scopeLeft:e.offsetX||e.layerX,scopeTop:e.offsetY||e.layerY}),jc=(e,t,i)=>{let a=Qc(t),n={element:e,filterElement:i,state:null,ondrop:()=>{},onenter:()=>{},ondrag:()=>{},onexit:()=>{},onload:()=>{},allowdrop:()=>{}};return n.destroy=a.addListener(n),n},Qc=e=>{let t=Jt.find(a=>a.element===e);if(t)return t;let i=Zc(e);return Jt.push(i),i},Zc=e=>{let t=[],i={dragenter:Jc,dragover:ed,dragleave:id,drop:td},a={};J(i,(r,o)=>{a[r]=o(e,t),e.addEventListener(r,a[r],!1)});let n={element:e,addListener:r=>(t.push(r),()=>{t.splice(t.indexOf(r),1),t.length===0&&(Jt.splice(Jt.indexOf(n),1),J(i,o=>{e.removeEventListener(o,a[o],!1)}))})};return n},Kc=(e,t)=>("elementFromPoint"in e||(e=document),e.elementFromPoint(t.x,t.y)),ji=(e,t)=>{let i=Cc(t),a=Kc(i,{x:e.pageX-window.pageXOffset,y:e.pageY-window.pageYOffset});return a===t||t.contains(a)},Vn=null,Xt=(e,t)=>{try{e.dropEffect=t}catch{}},Jc=(e,t)=>i=>{i.preventDefault(),Vn=i.target,t.forEach(a=>{let{element:n,onenter:r}=a;ji(i,n)&&(a.state="enter",r(Xe(i)))})},ed=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;qi(a).then(n=>{let r=!1;t.some(o=>{let{filterElement:l,element:s,onenter:u,onexit:c,ondrag:d,allowdrop:h}=o;Xt(a,"copy");let f=h(n);if(!f){Xt(a,"none");return}if(ji(i,s)){if(r=!0,o.state===null){o.state="enter",u(Xe(i));return}if(o.state="over",l&&!f){Xt(a,"none");return}d(Xe(i))}else l&&!r&&Xt(a,"none"),o.state&&(o.state=null,c(Xe(i)))})})},td=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;qi(a).then(n=>{t.forEach(r=>{let{filterElement:o,element:l,ondrop:s,onexit:u,allowdrop:c}=r;if(r.state=null,!(o&&!ji(i,l))){if(!c(n))return u(Xe(i));s(Xe(i),n)}})})},id=(e,t)=>i=>{Vn===i.target&&t.forEach(a=>{let{onexit:n}=a;a.state=null,n(Xe(i))})},ad=(e,t,i)=>{e.classList.add("filepond--hopper");let{catchesDropsOnPage:a,requiresDropOnElement:n,filterItems:r=c=>c}=i,o=jc(e,a?document.documentElement:e,n),l="",s="";o.allowdrop=c=>t(r(c)),o.ondrop=(c,d)=>{let h=r(d);if(!t(h)){u.ondragend(c);return}s="drag-drop",u.onload(h,c)},o.ondrag=c=>{u.ondrag(c)},o.onenter=c=>{s="drag-over",u.ondragstart(c)},o.onexit=c=>{s="drag-exit",u.ondragend(c)};let u={updateHopperState:()=>{l!==s&&(e.dataset.hopperState=s,l=s)},onload:()=>{},ondragstart:()=>{},ondrag:()=>{},ondragend:()=>{},destroy:()=>{o.destroy()}};return u},Di=!1,rt=[],Un=e=>{let t=document.activeElement;if(t&&/textarea|input/i.test(t.nodeName)){let i=!1,a=t;for(;a!==document.body;){if(a.classList.contains("filepond--root")){i=!0;break}a=a.parentNode}if(!i)return}qi(e.clipboardData).then(i=>{i.length&&rt.forEach(a=>a(i))})},nd=e=>{rt.includes(e)||(rt.push(e),!Di&&(Di=!0,document.addEventListener("paste",Un)))},rd=e=>{Vi(rt,rt.indexOf(e)),rt.length===0&&(document.removeEventListener("paste",Un),Di=!1)},od=()=>{let e=i=>{t.onload(i)},t={destroy:()=>{rd(e)},onload:()=>{}};return nd(e),t},ld=({root:e,props:t})=>{e.element.id=`filepond--assistant-${t.id}`,ie(e.element,"role","status"),ie(e.element,"aria-live","polite"),ie(e.element,"aria-relevant","additions")},Ja=null,en=null,Si=[],li=(e,t)=>{e.element.textContent=t},sd=e=>{e.element.textContent=""},kn=(e,t,i)=>{let a=e.query("GET_TOTAL_ITEMS");li(e,`${i} ${t}, ${a} ${a===1?e.query("GET_LABEL_FILE_COUNT_SINGULAR"):e.query("GET_LABEL_FILE_COUNT_PLURAL")}`),clearTimeout(en),en=setTimeout(()=>{sd(e)},1500)},Hn=e=>e.element.parentNode.contains(document.activeElement),cd=({root:e,action:t})=>{if(!Hn(e))return;e.element.textContent="";let i=e.query("GET_ITEM",t.id);Si.push(i.filename),clearTimeout(Ja),Ja=setTimeout(()=>{kn(e,Si.join(", "),e.query("GET_LABEL_FILE_ADDED")),Si.length=0},750)},dd=({root:e,action:t})=>{if(!Hn(e))return;let i=t.item;kn(e,i.filename,e.query("GET_LABEL_FILE_REMOVED"))},ud=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_COMPLETE");li(e,`${a} ${n}`)},tn=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_ABORTED");li(e,`${a} ${n}`)},jt=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename;li(e,`${t.status.main} ${a} ${t.status.sub}`)},hd=ae({create:ld,ignoreRect:!0,ignoreRectUpdate:!0,write:he({DID_LOAD_ITEM:cd,DID_REMOVE_ITEM:dd,DID_COMPLETE_ITEM_PROCESSING:ud,DID_ABORT_ITEM_PROCESSING:tn,DID_REVERT_ITEM_PROCESSING:tn,DID_THROW_ITEM_REMOVE_ERROR:jt,DID_THROW_ITEM_LOAD_ERROR:jt,DID_THROW_ITEM_INVALID:jt,DID_THROW_ITEM_PROCESSING_ERROR:jt}),tag:"span",name:"assistant"}),Wn=(e,t="-")=>e.replace(new RegExp(`${t}.`,"g"),i=>i.charAt(1).toUpperCase()),Yn=(e,t=16,i=!0)=>{let a=Date.now(),n=null;return(...r)=>{clearTimeout(n);let o=Date.now()-a,l=()=>{a=Date.now(),e(...r)};oe.preventDefault(),pd=({root:e,props:t})=>{let i=e.query("GET_ID");i&&(e.element.id=i);let a=e.query("GET_CLASS_NAME");a&&a.split(" ").filter(s=>s.length).forEach(s=>{e.element.classList.add(s)}),e.ref.label=e.appendChildView(e.createChildView(Ec,{...t,translateY:null,caption:e.query("GET_LABEL_IDLE")})),e.ref.list=e.appendChildView(e.createChildView(uc,{translateY:null})),e.ref.panel=e.appendChildView(e.createChildView(On,{name:"panel-root"})),e.ref.assistant=e.appendChildView(e.createChildView(hd,{...t})),e.ref.data=e.appendChildView(e.createChildView(Fc,{...t})),e.ref.measure=Ce("div"),e.ref.measure.style.height="100%",e.element.appendChild(e.ref.measure),e.ref.bounds=null,e.query("GET_STYLES").filter(s=>!Fe(s.value)).map(({name:s,value:u})=>{e.element.dataset[s]=u}),e.ref.widthPrevious=null,e.ref.widthUpdated=Yn(()=>{e.ref.updateHistory=[],e.dispatch("DID_RESIZE_ROOT")},250),e.ref.previousAspectRatio=null,e.ref.updateHistory=[];let n=window.matchMedia("(pointer: fine) and (hover: hover)").matches,r="PointerEvent"in window;e.query("GET_ALLOW_REORDER")&&r&&!n&&(e.element.addEventListener("touchmove",ei,{passive:!1}),e.element.addEventListener("gesturestart",ei));let o=e.query("GET_CREDITS");if(o.length===2){let s=document.createElement("a");s.className="filepond--credits",s.setAttribute("aria-hidden","true"),s.href=o[0],s.tabindex=-1,s.target="_blank",s.rel="noopener noreferrer",s.textContent=o[1],e.element.appendChild(s),e.ref.credits=s}},md=({root:e,props:t,actions:i})=>{if(bd({root:e,props:t,actions:i}),i.filter(I=>/^DID_SET_STYLE_/.test(I.type)).filter(I=>!Fe(I.data.value)).map(({type:I,data:v})=>{let R=Wn(I.substring(8).toLowerCase(),"_");e.element.dataset[R]=v.value,e.invalidateLayout()}),e.rect.element.hidden)return;e.rect.element.width!==e.ref.widthPrevious&&(e.ref.widthPrevious=e.rect.element.width,e.ref.widthUpdated());let a=e.ref.bounds;a||(a=e.ref.bounds=Td(e),e.element.removeChild(e.ref.measure),e.ref.measure=null);let{hopper:n,label:r,list:o,panel:l}=e.ref;n&&n.updateHopperState();let s=e.query("GET_PANEL_ASPECT_RATIO"),u=e.query("GET_ALLOW_MULTIPLE"),c=e.query("GET_TOTAL_ITEMS"),d=u?e.query("GET_MAX_FILES")||fd:1,h=c===d,f=i.find(I=>I.type==="DID_ADD_ITEM");if(h&&f){let I=f.data.interactionMethod;r.opacity=0,u?r.translateY=-40:I===_e.API?r.translateX=40:I===_e.BROWSE?r.translateY=40:r.translateY=30}else h||(r.opacity=1,r.translateX=0,r.translateY=0);let p=gd(e),m=Ed(e),g=r.rect.element.height,b=!u||h?0:g,E=h?o.rect.element.marginTop:0,T=c===0?0:o.rect.element.marginBottom,_=b+E+m.visual+T,y=b+E+m.bounds+T;if(o.translateY=Math.max(0,b-o.rect.element.marginTop)-p.top,s){let I=e.rect.element.width,v=I*s;s!==e.ref.previousAspectRatio&&(e.ref.previousAspectRatio=s,e.ref.updateHistory=[]);let R=e.ref.updateHistory;R.push(I);let S=2;if(R.length>S*2){let x=R.length,O=x-10,B=0;for(let A=x;A>=O;A--)if(R[A]===R[A-2]&&B++,B>=S)return}l.scalable=!1,l.height=v;let D=v-b-(T-p.bottom)-(h?E:0);m.visual>D?o.overflow=D:o.overflow=null,e.height=v}else if(a.fixedHeight){l.scalable=!1;let I=a.fixedHeight-b-(T-p.bottom)-(h?E:0);m.visual>I?o.overflow=I:o.overflow=null}else if(a.cappedHeight){let I=_>=a.cappedHeight,v=Math.min(a.cappedHeight,_);l.scalable=!0,l.height=I?v:v-p.top-p.bottom;let R=v-b-(T-p.bottom)-(h?E:0);_>a.cappedHeight&&m.visual>R?o.overflow=R:o.overflow=null,e.height=Math.min(a.cappedHeight,y-p.top-p.bottom)}else{let I=c>0?p.top+p.bottom:0;l.scalable=!0,l.height=Math.max(g,_-I),e.height=Math.max(g,y-I)}e.ref.credits&&l.heightCurrent&&(e.ref.credits.style.transform=`translateY(${l.heightCurrent}px)`)},gd=e=>{let t=e.ref.list.childViews[0].childViews[0];return t?{top:t.rect.element.marginTop,bottom:t.rect.element.marginBottom}:{top:0,bottom:0}},Ed=e=>{let t=0,i=0,a=e.ref.list,n=a.childViews[0],r=n.childViews.filter(E=>E.rect.element.height),o=e.query("GET_ACTIVE_ITEMS").map(E=>r.find(T=>T.id===E.id)).filter(E=>E);if(o.length===0)return{visual:t,bounds:i};let l=n.rect.element.width,s=Yi(n,o,a.dragCoordinates),u=o[0].rect.element,c=u.marginTop+u.marginBottom,d=u.marginLeft+u.marginRight,h=u.width+d,f=u.height+c,p=typeof s<"u"&&s>=0?1:0,m=o.find(E=>E.markedForRemoval&&E.opacity<.45)?-1:0,g=o.length+p+m,b=Wi(l,h);return b===1?o.forEach(E=>{let T=E.rect.element.height+c;i+=T,t+=T*E.opacity}):(i=Math.ceil(g/b)*f,t=i),{visual:t,bounds:i}},Td=e=>{let t=e.ref.measureHeight||null;return{cappedHeight:parseInt(e.style.maxHeight,10)||null,fixedHeight:t===0?null:t}},Qi=(e,t)=>{let i=e.query("GET_ALLOW_REPLACE"),a=e.query("GET_ALLOW_MULTIPLE"),n=e.query("GET_TOTAL_ITEMS"),r=e.query("GET_MAX_FILES"),o=t.length;return!a&&o>1?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ee("warning",0,"Max files")}),!0):(r=a?r:1,!a&&i?!1:dt(r)&&n+o>r?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ee("warning",0,"Max files")}),!0):!1)},Id=(e,t,i)=>{let a=e.childViews[0];return Yi(a,t,{left:i.scopeLeft-a.rect.element.left,top:i.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},an=e=>{let t=e.query("GET_ALLOW_DROP"),i=e.query("GET_DISABLED"),a=t&&!i;if(a&&!e.ref.hopper){let n=ad(e.element,r=>{let o=e.query("GET_BEFORE_DROP_FILE")||(()=>!0);return e.query("GET_DROP_VALIDATION")?r.every(s=>je("ALLOW_HOPPER_ITEM",s,{query:e.query}).every(u=>u===!0)&&o(s)):!0},{filterItems:r=>{let o=e.query("GET_IGNORED_FILES");return r.filter(l=>ct(l)?!o.includes(l.name.toLowerCase()):!0)},catchesDropsOnPage:e.query("GET_DROP_ON_PAGE"),requiresDropOnElement:e.query("GET_DROP_ON_ELEMENT")});n.onload=(r,o)=>{let s=e.ref.list.childViews[0].childViews.filter(c=>c.rect.element.height),u=e.query("GET_ACTIVE_ITEMS").map(c=>s.find(d=>d.id===c.id)).filter(c=>c);we("ADD_ITEMS",r,{dispatch:e.dispatch}).then(c=>{if(Qi(e,c))return!1;e.dispatch("ADD_ITEMS",{items:c,index:Id(e.ref.list,u,o),interactionMethod:_e.DROP})}),e.dispatch("DID_DROP",{position:o}),e.dispatch("DID_END_DRAG",{position:o})},n.ondragstart=r=>{e.dispatch("DID_START_DRAG",{position:r})},n.ondrag=Yn(r=>{e.dispatch("DID_DRAG",{position:r})}),n.ondragend=r=>{e.dispatch("DID_END_DRAG",{position:r})},e.ref.hopper=n,e.ref.drip=e.appendChildView(e.createChildView(wc))}else!a&&e.ref.hopper&&(e.ref.hopper.destroy(),e.ref.hopper=null,e.removeChildView(e.ref.drip))},nn=(e,t)=>{let i=e.query("GET_ALLOW_BROWSE"),a=e.query("GET_DISABLED"),n=i&&!a;n&&!e.ref.browser?e.ref.browser=e.appendChildView(e.createChildView(mc,{...t,onload:r=>{we("ADD_ITEMS",r,{dispatch:e.dispatch}).then(o=>{if(Qi(e,o))return!1;e.dispatch("ADD_ITEMS",{items:o,index:-1,interactionMethod:_e.BROWSE})})}}),0):!n&&e.ref.browser&&(e.removeChildView(e.ref.browser),e.ref.browser=null)},rn=e=>{let t=e.query("GET_ALLOW_PASTE"),i=e.query("GET_DISABLED"),a=t&&!i;a&&!e.ref.paster?(e.ref.paster=od(),e.ref.paster.onload=n=>{we("ADD_ITEMS",n,{dispatch:e.dispatch}).then(r=>{if(Qi(e,r))return!1;e.dispatch("ADD_ITEMS",{items:r,index:-1,interactionMethod:_e.PASTE})})}):!a&&e.ref.paster&&(e.ref.paster.destroy(),e.ref.paster=null)},bd=he({DID_SET_ALLOW_BROWSE:({root:e,props:t})=>{nn(e,t)},DID_SET_ALLOW_DROP:({root:e})=>{an(e)},DID_SET_ALLOW_PASTE:({root:e})=>{rn(e)},DID_SET_DISABLED:({root:e,props:t})=>{an(e),rn(e),nn(e,t),e.query("GET_DISABLED")?e.element.dataset.disabled="disabled":e.element.removeAttribute("data-disabled")}}),_d=ae({name:"root",read:({root:e})=>{e.ref.measure&&(e.ref.measureHeight=e.ref.measure.offsetHeight)},create:pd,write:md,destroy:({root:e})=>{e.ref.paster&&e.ref.paster.destroy(),e.ref.hopper&&e.ref.hopper.destroy(),e.element.removeEventListener("touchmove",ei),e.element.removeEventListener("gesturestart",ei)},mixins:{styles:["height"]}}),Rd=(e={})=>{let t=null,i=Kt(),a=Go(Sl(i),[kl,Al(i)],[fs,vl(i)]);a.dispatch("SET_OPTIONS",{options:e});let n=()=>{document.hidden||a.dispatch("KICK")};document.addEventListener("visibilitychange",n);let r=null,o=!1,l=!1,s=null,u=null,c=()=>{o||(o=!0),clearTimeout(r),r=setTimeout(()=>{o=!1,s=null,u=null,l&&(l=!1,a.dispatch("DID_STOP_RESIZE"))},500)};window.addEventListener("resize",c);let d=_d(a,{id:Gi()}),h=!1,f=!1,p={_read:()=>{o&&(u=window.innerWidth,s||(s=u),!l&&u!==s&&(a.dispatch("DID_START_RESIZE"),l=!0)),f&&h&&(h=d.element.offsetParent===null),!h&&(d._read(),f=d.rect.element.hidden)},_write:w=>{let L=a.processActionQueue().filter(N=>!/^SET_/.test(N.type));h&&!L.length||(E(L),h=d._write(w,L,l),Ol(a.query("GET_ITEMS")),h&&a.processDispatchQueue())}},m=w=>L=>{let N={type:w};if(!L)return N;if(L.hasOwnProperty("error")&&(N.error=L.error?{...L.error}:null),L.status&&(N.status={...L.status}),L.file&&(N.output=L.file),L.source)N.file=L.source;else if(L.item||L.id){let P=L.item?L.item:a.query("GET_ITEM",L.id);N.file=P?fe(P):null}return L.items&&(N.items=L.items.map(fe)),/progress/.test(w)&&(N.progress=L.progress),L.hasOwnProperty("origin")&&L.hasOwnProperty("target")&&(N.origin=L.origin,N.target=L.target),N},g={DID_DESTROY:m("destroy"),DID_INIT:m("init"),DID_THROW_MAX_FILES:m("warning"),DID_INIT_ITEM:m("initfile"),DID_START_ITEM_LOAD:m("addfilestart"),DID_UPDATE_ITEM_LOAD_PROGRESS:m("addfileprogress"),DID_LOAD_ITEM:m("addfile"),DID_THROW_ITEM_INVALID:[m("error"),m("addfile")],DID_THROW_ITEM_LOAD_ERROR:[m("error"),m("addfile")],DID_THROW_ITEM_REMOVE_ERROR:[m("error"),m("removefile")],DID_PREPARE_OUTPUT:m("preparefile"),DID_START_ITEM_PROCESSING:m("processfilestart"),DID_UPDATE_ITEM_PROCESS_PROGRESS:m("processfileprogress"),DID_ABORT_ITEM_PROCESSING:m("processfileabort"),DID_COMPLETE_ITEM_PROCESSING:m("processfile"),DID_COMPLETE_ITEM_PROCESSING_ALL:m("processfiles"),DID_REVERT_ITEM_PROCESSING:m("processfilerevert"),DID_THROW_ITEM_PROCESSING_ERROR:[m("error"),m("processfile")],DID_REMOVE_ITEM:m("removefile"),DID_UPDATE_ITEMS:m("updatefiles"),DID_ACTIVATE_ITEM:m("activatefile"),DID_REORDER_ITEMS:m("reorderfiles")},b=w=>{let L={pond:F,...w};delete L.type,d.element.dispatchEvent(new CustomEvent(`FilePond:${w.type}`,{detail:L,bubbles:!0,cancelable:!0,composed:!0}));let N=[];w.hasOwnProperty("error")&&N.push(w.error),w.hasOwnProperty("file")&&N.push(w.file);let P=["type","error","file"];Object.keys(w).filter(V=>!P.includes(V)).forEach(V=>N.push(w[V])),F.fire(w.type,...N);let U=a.query(`GET_ON${w.type.toUpperCase()}`);U&&U(...N)},E=w=>{w.length&&w.filter(L=>g[L.type]).forEach(L=>{let N=g[L.type];(Array.isArray(N)?N:[N]).forEach(P=>{L.type==="DID_INIT_ITEM"?b(P(L.data)):setTimeout(()=>{b(P(L.data))},0)})})},T=w=>a.dispatch("SET_OPTIONS",{options:w}),_=w=>a.query("GET_ACTIVE_ITEM",w),y=w=>new Promise((L,N)=>{a.dispatch("REQUEST_ITEM_PREPARE",{query:w,success:P=>{L(P)},failure:P=>{N(P)}})}),I=(w,L={})=>new Promise((N,P)=>{S([{source:w,options:L}],{index:L.index}).then(U=>N(U&&U[0])).catch(P)}),v=w=>w.file&&w.id,R=(w,L)=>(typeof w=="object"&&!v(w)&&!L&&(L=w,w=void 0),a.dispatch("REMOVE_ITEM",{...L,query:w}),a.query("GET_ACTIVE_ITEM",w)===null),S=(...w)=>new Promise((L,N)=>{let P=[],U={};if(ti(w[0]))P.push.apply(P,w[0]),Object.assign(U,w[1]||{});else{let V=w[w.length-1];typeof V=="object"&&!(V instanceof Blob)&&Object.assign(U,w.pop()),P.push(...w)}a.dispatch("ADD_ITEMS",{items:P,index:U.index,interactionMethod:_e.API,success:L,failure:N})}),D=()=>a.query("GET_ACTIVE_ITEMS"),x=w=>new Promise((L,N)=>{a.dispatch("REQUEST_ITEM_PROCESSING",{query:w,success:P=>{L(P)},failure:P=>{N(P)}})}),O=(...w)=>{let L=Array.isArray(w[0])?w[0]:w,N=L.length?L:D();return Promise.all(N.map(y))},B=(...w)=>{let L=Array.isArray(w[0])?w[0]:w;if(!L.length){let N=D().filter(P=>!(P.status===H.IDLE&&P.origin===re.LOCAL)&&P.status!==H.PROCESSING&&P.status!==H.PROCESSING_COMPLETE&&P.status!==H.PROCESSING_REVERT_ERROR);return Promise.all(N.map(x))}return Promise.all(L.map(x))},A=(...w)=>{let L=Array.isArray(w[0])?w[0]:w,N;typeof L[L.length-1]=="object"?N=L.pop():Array.isArray(w[0])&&(N=w[1]);let P=D();return L.length?L.map(V=>He(V)?P[V]?P[V].id:null:V).filter(V=>V).map(V=>R(V,N)):Promise.all(P.map(V=>R(V,N)))},F={...ni(),...p,...wl(a,i),setOptions:T,addFile:I,addFiles:S,getFile:_,processFile:x,prepareFile:y,removeFile:R,moveFile:(w,L)=>a.dispatch("MOVE_ITEM",{query:w,index:L}),getFiles:D,processFiles:B,removeFiles:A,prepareFiles:O,sort:w=>a.dispatch("SORT",{compare:w}),browse:()=>{var w=d.element.querySelector("input[type=file]");w&&w.click()},destroy:()=>{F.fire("destroy",d.element),a.dispatch("ABORT_ALL"),d._destroy(),window.removeEventListener("resize",c),document.removeEventListener("visibilitychange",n),a.dispatch("DID_DESTROY")},insertBefore:w=>Aa(d.element,w),insertAfter:w=>La(d.element,w),appendTo:w=>w.appendChild(d.element),replaceElement:w=>{Aa(d.element,w),w.parentNode.removeChild(w),t=w},restoreElement:()=>{t&&(La(t,d.element),d.element.parentNode.removeChild(d.element),t=null)},isAttachedTo:w=>d.element===w||t===w,element:{get:()=>d.element},status:{get:()=>a.query("GET_STATUS")}};return a.dispatch("DID_INIT"),Be(F)},$n=(e={})=>{let t={};return J(Kt(),(a,n)=>{t[a]=n[0]}),Rd({...t,...e})},yd=e=>e.charAt(0).toLowerCase()+e.slice(1),Sd=e=>Wn(e.replace(/^data-/,"")),qn=(e,t)=>{J(t,(i,a)=>{J(e,(n,r)=>{let o=new RegExp(i);if(!o.test(n)||(delete e[n],a===!1))return;if(ue(a)){e[a]=r;return}let s=a.group;oe(a)&&!e[s]&&(e[s]={}),e[s][yd(n.replace(o,""))]=r}),a.mapping&&qn(e[a.group],a.mapping)})},wd=(e,t={})=>{let i=[];J(e.attributes,n=>{i.push(e.attributes[n])});let a=i.filter(n=>n.name).reduce((n,r)=>{let o=ie(e,r.name);return n[Sd(r.name)]=o===r.name?!0:o,n},{});return qn(a,t),a},vd=(e,t={})=>{let i={"^class$":"className","^multiple$":"allowMultiple","^capture$":"captureMethod","^webkitdirectory$":"allowDirectoriesOnly","^server":{group:"server",mapping:{"^process":{group:"process"},"^revert":{group:"revert"},"^fetch":{group:"fetch"},"^restore":{group:"restore"},"^load":{group:"load"}}},"^type$":!1,"^files$":!1};je("SET_ATTRIBUTE_TO_OPTION_MAP",i);let a={...t},n=wd(e.nodeName==="FIELDSET"?e.querySelector("input[type=file]"):e,i);Object.keys(n).forEach(o=>{oe(n[o])?(oe(a[o])||(a[o]={}),Object.assign(a[o],n[o])):a[o]=n[o]}),a.files=(t.files||[]).concat(Array.from(e.querySelectorAll("input:not([type=file])")).map(o=>({source:o.value,options:{type:o.dataset.type}})));let r=$n(a);return e.files&&Array.from(e.files).forEach(o=>{r.addFile(o)}),r.replaceElement(e),r},Ad=(...e)=>Bo(e[0])?vd(...e):$n(...e),Ld=["fire","_read","_write"],on=e=>{let t={};return pn(e,t,Ld),t},Md=(e,t)=>e.replace(/(?:{([a-zA-Z]+)})/g,(i,a)=>t[a]),Od=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i);return{transfer:(n,r)=>{},post:(n,r,o)=>{let l=Gi();a.onmessage=s=>{s.data.id===l&&r(s.data.message)},a.postMessage({id:l,message:n},o)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},xd=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Xn=(e,t)=>{let i=e.slice(0,e.size,e.type);return i.lastModifiedDate=e.lastModifiedDate,i.name=t,i},Dd=e=>Xn(e,e.name),ln=[],Pd=e=>{if(ln.includes(e))return;ln.push(e);let t=e({addFilter:Dl,utils:{Type:M,forin:J,isString:ue,isFile:ct,toNaturalFileSize:An,replaceInString:Md,getExtensionFromFilename:ri,getFilenameWithoutExtension:Sn,guesstimateMimeType:Bn,getFileFromBlob:st,getFilenameFromURL:Lt,createRoute:he,createWorker:Od,createView:ae,createItemAPI:fe,loadImage:xd,copyFile:Dd,renameFile:Xn,createBlob:_n,applyFilterChain:we,text:te,getNumericAspectRatioFromString:En},views:{fileActionButton:vn}});Pl(t.options)},Fd=()=>Object.prototype.toString.call(window.operamini)==="[object OperaMini]",Cd=()=>"Promise"in window,zd=()=>"slice"in Blob.prototype,Nd=()=>"URL"in window&&"createObjectURL"in window.URL,Bd=()=>"visibilityState"in document,Gd=()=>"performance"in window,Vd=()=>"supports"in(window.CSS||{}),Ud=()=>/MSIE|Trident/.test(window.navigator.userAgent),Pi=(()=>{let e=sn()&&!Fd()&&Bd()&&Cd()&&zd()&&Nd()&&Gd()&&(Vd()||Ud());return()=>e})(),Ne={apps:[]},kd="filepond",Qe=()=>{},jn={},ut={},Mt={},Fi={},ot=Qe,lt=Qe,Ci=Qe,zi=Qe,Te=Qe,Ni=Qe,At=Qe;if(Pi()){dl(()=>{Ne.apps.forEach(i=>i._read())},i=>{Ne.apps.forEach(a=>a._write(i))});let e=()=>{document.dispatchEvent(new CustomEvent("FilePond:loaded",{detail:{supported:Pi,create:ot,destroy:lt,parse:Ci,find:zi,registerPlugin:Te,setOptions:At}})),document.removeEventListener("DOMContentLoaded",e)};document.readyState!=="loading"?setTimeout(()=>e(),0):document.addEventListener("DOMContentLoaded",e);let t=()=>J(Kt(),(i,a)=>{Fi[i]=a[1]});jn={...Tn},Mt={...re},ut={...H},Fi={},t(),ot=(...i)=>{let a=Ad(...i);return a.on("destroy",lt),Ne.apps.push(a),on(a)},lt=i=>{let a=Ne.apps.findIndex(n=>n.isAttachedTo(i));return a>=0?(Ne.apps.splice(a,1)[0].restoreElement(),!0):!1},Ci=i=>Array.from(i.querySelectorAll(`.${kd}`)).filter(r=>!Ne.apps.find(o=>o.isAttachedTo(r))).map(r=>ot(r)),zi=i=>{let a=Ne.apps.find(n=>n.isAttachedTo(i));return a?on(a):null},Te=(...i)=>{i.forEach(Pd),t()},Ni=()=>{let i={};return J(Kt(),(a,n)=>{i[a]=n[0]}),i},At=i=>(oe(i)&&(Ne.apps.forEach(a=>{a.setOptions(i)}),Fl(i)),Ni())}function Qn(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),i.push.apply(i,a)}return i}function hr(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,a=new Array(t);i
',ou=Number.isNaN||Oe.isNaN;function Y(e){return typeof e=="number"&&!ou(e)}var cr=function(t){return t>0&&t<1/0};function Ki(e){return typeof e>"u"}function Je(e){return ea(e)==="object"&&e!==null}var lu=Object.prototype.hasOwnProperty;function ft(e){if(!Je(e))return!1;try{var t=e.constructor,i=t.prototype;return t&&i&&lu.call(i,"isPrototypeOf")}catch{return!1}}function pe(e){return typeof e=="function"}var su=Array.prototype.slice;function Rr(e){return Array.from?Array.from(e):su.call(e)}function ne(e,t){return e&&pe(t)&&(Array.isArray(e)||Y(e.length)?Rr(e).forEach(function(i,a){t.call(e,i,a,e)}):Je(e)&&Object.keys(e).forEach(function(i){t.call(e,e[i],i,e)})),e}var Z=Object.assign||function(t){for(var i=arguments.length,a=new Array(i>1?i-1:0),n=1;n0&&a.forEach(function(r){Je(r)&&Object.keys(r).forEach(function(o){t[o]=r[o]})}),t},cu=/\.\d*(?:0|9){12}\d*$/;function mt(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return cu.test(e)?Math.round(e*t)/t:e}var du=/^width|height|left|top|marginLeft|marginTop$/;function Ve(e,t){var i=e.style;ne(t,function(a,n){du.test(n)&&Y(a)&&(a="".concat(a,"px")),i[n]=a})}function uu(e,t){return e.classList?e.classList.contains(t):e.className.indexOf(t)>-1}function le(e,t){if(t){if(Y(e.length)){ne(e,function(a){le(a,t)});return}if(e.classList){e.classList.add(t);return}var i=e.className.trim();i?i.indexOf(t)<0&&(e.className="".concat(i," ").concat(t)):e.className=t}}function Me(e,t){if(t){if(Y(e.length)){ne(e,function(i){Me(i,t)});return}if(e.classList){e.classList.remove(t);return}e.className.indexOf(t)>=0&&(e.className=e.className.replace(t,""))}}function pt(e,t,i){if(t){if(Y(e.length)){ne(e,function(a){pt(a,t,i)});return}i?le(e,t):Me(e,t)}}var hu=/([a-z\d])([A-Z])/g;function pa(e){return e.replace(hu,"$1-$2").toLowerCase()}function ca(e,t){return Je(e[t])?e[t]:e.dataset?e.dataset[t]:e.getAttribute("data-".concat(pa(t)))}function zt(e,t,i){Je(i)?e[t]=i:e.dataset?e.dataset[t]=i:e.setAttribute("data-".concat(pa(t)),i)}function fu(e,t){if(Je(e[t]))try{delete e[t]}catch{e[t]=void 0}else if(e.dataset)try{delete e.dataset[t]}catch{e.dataset[t]=void 0}else e.removeAttribute("data-".concat(pa(t)))}var yr=/\s\s*/,Sr=function(){var e=!1;if(ui){var t=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return e=!0,t},set:function(r){t=r}});Oe.addEventListener("test",i,a),Oe.removeEventListener("test",i,a)}return e}();function Le(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(yr).forEach(function(r){if(!Sr){var o=e.listeners;o&&o[r]&&o[r][i]&&(n=o[r][i],delete o[r][i],Object.keys(o[r]).length===0&&delete o[r],Object.keys(o).length===0&&delete e.listeners)}e.removeEventListener(r,n,a)})}function Re(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(yr).forEach(function(r){if(a.once&&!Sr){var o=e.listeners,l=o===void 0?{}:o;n=function(){delete l[r][i],e.removeEventListener(r,n,a);for(var u=arguments.length,c=new Array(u),d=0;dMath.abs(i)&&(i=h)})}),i}function ci(e,t){var i=e.pageX,a=e.pageY,n={endX:i,endY:a};return t?n:hr({startX:i,startY:a},n)}function gu(e){var t=0,i=0,a=0;return ne(e,function(n){var r=n.startX,o=n.startY;t+=r,i+=o,a+=1}),t/=a,i/=a,{pageX:t,pageY:i}}function Ue(e){var t=e.aspectRatio,i=e.height,a=e.width,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",r=cr(a),o=cr(i);if(r&&o){var l=i*t;n==="contain"&&l>a||n==="cover"&&l90?{width:s,height:l}:{width:l,height:s}}function Tu(e,t,i,a){var n=t.aspectRatio,r=t.naturalWidth,o=t.naturalHeight,l=t.rotate,s=l===void 0?0:l,u=t.scaleX,c=u===void 0?1:u,d=t.scaleY,h=d===void 0?1:d,f=i.aspectRatio,p=i.naturalWidth,m=i.naturalHeight,g=a.fillColor,b=g===void 0?"transparent":g,E=a.imageSmoothingEnabled,T=E===void 0?!0:E,_=a.imageSmoothingQuality,y=_===void 0?"low":_,I=a.maxWidth,v=I===void 0?1/0:I,R=a.maxHeight,S=R===void 0?1/0:R,D=a.minWidth,x=D===void 0?0:D,O=a.minHeight,B=O===void 0?0:O,A=document.createElement("canvas"),F=A.getContext("2d"),w=Ue({aspectRatio:f,width:v,height:S}),L=Ue({aspectRatio:f,width:x,height:B},"cover"),N=Math.min(w.width,Math.max(L.width,p)),P=Math.min(w.height,Math.max(L.height,m)),U=Ue({aspectRatio:n,width:v,height:S}),V=Ue({aspectRatio:n,width:x,height:B},"cover"),q=Math.min(U.width,Math.max(V.width,r)),X=Math.min(U.height,Math.max(V.height,o)),j=[-q/2,-X/2,q,X];return A.width=mt(N),A.height=mt(P),F.fillStyle=b,F.fillRect(0,0,N,P),F.save(),F.translate(N/2,P/2),F.rotate(s*Math.PI/180),F.scale(c,h),F.imageSmoothingEnabled=T,F.imageSmoothingQuality=y,F.drawImage.apply(F,[e].concat(fr(j.map(function(se){return Math.floor(mt(se))})))),F.restore(),A}var vr=String.fromCharCode;function Iu(e,t,i){var a="";i+=t;for(var n=t;n0;)i.push(vr.apply(null,Rr(n.subarray(0,a)))),n=n.subarray(a);return"data:".concat(t,";base64,").concat(btoa(i.join("")))}function yu(e){var t=new DataView(e),i;try{var a,n,r;if(t.getUint8(0)===255&&t.getUint8(1)===216)for(var o=t.byteLength,l=2;l+1=8&&(r=u+d)}}}if(r){var h=t.getUint16(r,a),f,p;for(p=0;p=0?r:br),height:Math.max(a.offsetHeight,o>=0?o:_r)};this.containerData=l,Ve(n,{width:l.width,height:l.height}),le(t,me),Me(n,me)},initCanvas:function(){var t=this.containerData,i=this.imageData,a=this.options.viewMode,n=Math.abs(i.rotate)%180===90,r=n?i.naturalHeight:i.naturalWidth,o=n?i.naturalWidth:i.naturalHeight,l=r/o,s=t.width,u=t.height;t.height*l>t.width?a===3?s=t.height*l:u=t.width/l:a===3?u=t.width/l:s=t.height*l;var c={aspectRatio:l,naturalWidth:r,naturalHeight:o,width:s,height:u};this.canvasData=c,this.limited=a===1||a===2,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=Z({},c)},limitCanvas:function(t,i){var a=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,l=a.viewMode,s=r.aspectRatio,u=this.cropped&&o;if(t){var c=Number(a.minCanvasWidth)||0,d=Number(a.minCanvasHeight)||0;l>1?(c=Math.max(c,n.width),d=Math.max(d,n.height),l===3&&(d*s>c?c=d*s:d=c/s)):l>0&&(c?c=Math.max(c,u?o.width:0):d?d=Math.max(d,u?o.height:0):u&&(c=o.width,d=o.height,d*s>c?c=d*s:d=c/s));var h=Ue({aspectRatio:s,width:c,height:d});c=h.width,d=h.height,r.minWidth=c,r.minHeight=d,r.maxWidth=1/0,r.maxHeight=1/0}if(i)if(l>(u?0:1)){var f=n.width-r.width,p=n.height-r.height;r.minLeft=Math.min(0,f),r.minTop=Math.min(0,p),r.maxLeft=Math.max(0,f),r.maxTop=Math.max(0,p),u&&this.limited&&(r.minLeft=Math.min(o.left,o.left+(o.width-r.width)),r.minTop=Math.min(o.top,o.top+(o.height-r.height)),r.maxLeft=o.left,r.maxTop=o.top,l===2&&(r.width>=n.width&&(r.minLeft=Math.min(0,f),r.maxLeft=Math.max(0,f)),r.height>=n.height&&(r.minTop=Math.min(0,p),r.maxTop=Math.max(0,p))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=n.width,r.maxTop=n.height},renderCanvas:function(t,i){var a=this.canvasData,n=this.imageData;if(i){var r=Eu({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),o=r.width,l=r.height,s=a.width*(o/a.naturalWidth),u=a.height*(l/a.naturalHeight);a.left-=(s-a.width)/2,a.top-=(u-a.height)/2,a.width=s,a.height=u,a.aspectRatio=o/l,a.naturalWidth=o,a.naturalHeight=l,this.limitCanvas(!0,!1)}(a.width>a.maxWidth||a.widtha.maxHeight||a.heighti.width?r.height=r.width/a:r.width=r.height*a),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*n),r.height=Math.max(r.minHeight,r.height*n),r.left=i.left+(i.width-r.width)/2,r.top=i.top+(i.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=Z({},r)},limitCropBox:function(t,i){var a=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,l=this.limited,s=a.aspectRatio;if(t){var u=Number(a.minCropBoxWidth)||0,c=Number(a.minCropBoxHeight)||0,d=l?Math.min(n.width,r.width,r.width+r.left,n.width-r.left):n.width,h=l?Math.min(n.height,r.height,r.height+r.top,n.height-r.top):n.height;u=Math.min(u,n.width),c=Math.min(c,n.height),s&&(u&&c?c*s>u?c=u/s:u=c*s:u?c=u/s:c&&(u=c*s),h*s>d?h=d/s:d=h*s),o.minWidth=Math.min(u,d),o.minHeight=Math.min(c,h),o.maxWidth=d,o.maxHeight=h}i&&(l?(o.minLeft=Math.max(0,r.left),o.minTop=Math.max(0,r.top),o.maxLeft=Math.min(n.width,r.left+r.width)-o.width,o.maxTop=Math.min(n.height,r.top+r.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=n.width-o.width,o.maxTop=n.height-o.height))},renderCropBox:function(){var t=this.options,i=this.containerData,a=this.cropBoxData;(a.width>a.maxWidth||a.widtha.maxHeight||a.height=i.width&&a.height>=i.height?gr:ha),Ve(this.cropBox,Z({width:a.width,height:a.height},Ft({translateX:a.left,translateY:a.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),gt(this.element,na,this.getData())}},vu={initPreview:function(){var t=this.element,i=this.crossOrigin,a=this.options.preview,n=i?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",o=document.createElement("img");if(i&&(o.crossOrigin=i),o.src=n,o.alt=r,this.viewBox.appendChild(o),this.viewBoxImage=o,!!a){var l=a;typeof a=="string"?l=t.ownerDocument.querySelectorAll(a):a.querySelector&&(l=[a]),this.previews=l,ne(l,function(s){var u=document.createElement("img");zt(s,si,{width:s.offsetWidth,height:s.offsetHeight,html:s.innerHTML}),i&&(u.crossOrigin=i),u.src=n,u.alt=r,u.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',s.innerHTML="",s.appendChild(u)})}},resetPreview:function(){ne(this.previews,function(t){var i=ca(t,si);Ve(t,{width:i.width,height:i.height}),t.innerHTML=i.html,fu(t,si)})},preview:function(){var t=this.imageData,i=this.canvasData,a=this.cropBoxData,n=a.width,r=a.height,o=t.width,l=t.height,s=a.left-i.left-t.left,u=a.top-i.top-t.top;!this.cropped||this.disabled||(Ve(this.viewBoxImage,Z({width:o,height:l},Ft(Z({translateX:-s,translateY:-u},t)))),ne(this.previews,function(c){var d=ca(c,si),h=d.width,f=d.height,p=h,m=f,g=1;n&&(g=h/n,m=r*g),r&&m>f&&(g=f/r,p=n*g,m=f),Ve(c,{width:p,height:m}),Ve(c.getElementsByTagName("img")[0],Z({width:o*g,height:l*g},Ft(Z({translateX:-s*g,translateY:-u*g},t))))}))}},Au={bind:function(){var t=this.element,i=this.options,a=this.cropper;pe(i.cropstart)&&Re(t,la,i.cropstart),pe(i.cropmove)&&Re(t,oa,i.cropmove),pe(i.cropend)&&Re(t,ra,i.cropend),pe(i.crop)&&Re(t,na,i.crop),pe(i.zoom)&&Re(t,sa,i.zoom),Re(a,tr,this.onCropStart=this.cropStart.bind(this)),i.zoomable&&i.zoomOnWheel&&Re(a,or,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Re(a,er,this.onDblclick=this.dblclick.bind(this)),Re(t.ownerDocument,ir,this.onCropMove=this.cropMove.bind(this)),Re(t.ownerDocument,ar,this.onCropEnd=this.cropEnd.bind(this)),i.responsive&&Re(window,rr,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,i=this.options,a=this.cropper;pe(i.cropstart)&&Le(t,la,i.cropstart),pe(i.cropmove)&&Le(t,oa,i.cropmove),pe(i.cropend)&&Le(t,ra,i.cropend),pe(i.crop)&&Le(t,na,i.crop),pe(i.zoom)&&Le(t,sa,i.zoom),Le(a,tr,this.onCropStart),i.zoomable&&i.zoomOnWheel&&Le(a,or,this.onWheel,{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Le(a,er,this.onDblclick),Le(t.ownerDocument,ir,this.onCropMove),Le(t.ownerDocument,ar,this.onCropEnd),i.responsive&&Le(window,rr,this.onResize)}},Lu={resize:function(){if(!this.disabled){var t=this.options,i=this.container,a=this.containerData,n=i.offsetWidth/a.width,r=i.offsetHeight/a.height,o=Math.abs(n-1)>Math.abs(r-1)?n:r;if(o!==1){var l,s;t.restore&&(l=this.getCanvasData(),s=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(ne(l,function(u,c){l[c]=u*o})),this.setCropBoxData(ne(s,function(u,c){s[c]=u*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===Ir||this.setDragMode(uu(this.dragBox,ia)?Tr:fa)},wheel:function(t){var i=this,a=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){i.wheeling=!1},50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*a,t)))},cropStart:function(t){var i=t.buttons,a=t.button;if(!(this.disabled||(t.type==="mousedown"||t.type==="pointerdown"&&t.pointerType==="mouse")&&(Y(i)&&i!==1||Y(a)&&a!==0||t.ctrlKey))){var n=this.options,r=this.pointers,o;t.changedTouches?ne(t.changedTouches,function(l){r[l.identifier]=ci(l)}):r[t.pointerId||0]=ci(t),Object.keys(r).length>1&&n.zoomable&&n.zoomOnTouch?o=Er:o=ca(t.target,Ct),tu.test(o)&>(this.element,la,{originalEvent:t,action:o})!==!1&&(t.preventDefault(),this.action=o,this.cropping=!1,o===mr&&(this.cropping=!0,le(this.dragBox,di)))}},cropMove:function(t){var i=this.action;if(!(this.disabled||!i)){var a=this.pointers;t.preventDefault(),gt(this.element,oa,{originalEvent:t,action:i})!==!1&&(t.changedTouches?ne(t.changedTouches,function(n){Z(a[n.identifier]||{},ci(n,!0))}):Z(a[t.pointerId||0]||{},ci(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var i=this.action,a=this.pointers;t.changedTouches?ne(t.changedTouches,function(n){delete a[n.identifier]}):delete a[t.pointerId||0],i&&(t.preventDefault(),Object.keys(a).length||(this.action=""),this.cropping&&(this.cropping=!1,pt(this.dragBox,di,this.cropped&&this.options.modal)),gt(this.element,ra,{originalEvent:t,action:i}))}}},Mu={change:function(t){var i=this.options,a=this.canvasData,n=this.containerData,r=this.cropBoxData,o=this.pointers,l=this.action,s=i.aspectRatio,u=r.left,c=r.top,d=r.width,h=r.height,f=u+d,p=c+h,m=0,g=0,b=n.width,E=n.height,T=!0,_;!s&&t.shiftKey&&(s=d&&h?d/h:1),this.limited&&(m=r.minLeft,g=r.minTop,b=m+Math.min(n.width,a.width,a.left+a.width),E=g+Math.min(n.height,a.height,a.top+a.height));var y=o[Object.keys(o)[0]],I={x:y.endX-y.startX,y:y.endY-y.startY},v=function(S){switch(S){case Ze:f+I.x>b&&(I.x=b-f);break;case Ke:u+I.xE&&(I.y=E-p);break}};switch(l){case ha:u+=I.x,c+=I.y;break;case Ze:if(I.x>=0&&(f>=b||s&&(c<=g||p>=E))){T=!1;break}v(Ze),d+=I.x,d<0&&(l=Ke,d=-d,u-=d),s&&(h=d/s,c+=(r.height-h)/2);break;case Ge:if(I.y<=0&&(c<=g||s&&(u<=m||f>=b))){T=!1;break}v(Ge),h-=I.y,c+=I.y,h<0&&(l=ht,h=-h,c-=h),s&&(d=h*s,u+=(r.width-d)/2);break;case Ke:if(I.x<=0&&(u<=m||s&&(c<=g||p>=E))){T=!1;break}v(Ke),d-=I.x,u+=I.x,d<0&&(l=Ze,d=-d,u-=d),s&&(h=d/s,c+=(r.height-h)/2);break;case ht:if(I.y>=0&&(p>=E||s&&(u<=m||f>=b))){T=!1;break}v(ht),h+=I.y,h<0&&(l=Ge,h=-h,c-=h),s&&(d=h*s,u+=(r.width-d)/2);break;case Ot:if(s){if(I.y<=0&&(c<=g||f>=b)){T=!1;break}v(Ge),h-=I.y,c+=I.y,d=h*s}else v(Ge),v(Ze),I.x>=0?fg&&(h-=I.y,c+=I.y):(h-=I.y,c+=I.y);d<0&&h<0?(l=Pt,h=-h,d=-d,c-=h,u-=d):d<0?(l=xt,d=-d,u-=d):h<0&&(l=Dt,h=-h,c-=h);break;case xt:if(s){if(I.y<=0&&(c<=g||u<=m)){T=!1;break}v(Ge),h-=I.y,c+=I.y,d=h*s,u+=r.width-d}else v(Ge),v(Ke),I.x<=0?u>m?(d-=I.x,u+=I.x):I.y<=0&&c<=g&&(T=!1):(d-=I.x,u+=I.x),I.y<=0?c>g&&(h-=I.y,c+=I.y):(h-=I.y,c+=I.y);d<0&&h<0?(l=Dt,h=-h,d=-d,c-=h,u-=d):d<0?(l=Ot,d=-d,u-=d):h<0&&(l=Pt,h=-h,c-=h);break;case Pt:if(s){if(I.x<=0&&(u<=m||p>=E)){T=!1;break}v(Ke),d-=I.x,u+=I.x,h=d/s}else v(ht),v(Ke),I.x<=0?u>m?(d-=I.x,u+=I.x):I.y>=0&&p>=E&&(T=!1):(d-=I.x,u+=I.x),I.y>=0?p=0&&(f>=b||p>=E)){T=!1;break}v(Ze),d+=I.x,h=d/s}else v(ht),v(Ze),I.x>=0?f=0&&p>=E&&(T=!1):d+=I.x,I.y>=0?p0?l=I.y>0?Dt:Ot:I.x<0&&(u-=d,l=I.y>0?Pt:xt),I.y<0&&(c-=h),this.cropped||(Me(this.cropBox,me),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}T&&(r.width=d,r.height=h,r.left=u,r.top=c,this.action=l,this.renderCropBox()),ne(o,function(R){R.startX=R.endX,R.startY=R.endY})}},Ou={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&le(this.dragBox,di),Me(this.cropBox,me),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=Z({},this.initialImageData),this.canvasData=Z({},this.initialCanvasData),this.cropBoxData=Z({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(Z(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Me(this.dragBox,di),le(this.cropBox,me)),this},replace:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),i?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,ne(this.previews,function(a){a.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Me(this.cropper,Kn)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,le(this.cropper,Kn)),this},destroy:function(){var t=this.element;return t[Q]?(t[Q]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=a.left,r=a.top;return this.moveTo(Ki(t)?t:n+Number(t),Ki(i)?i:r+Number(i))},moveTo:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.movable&&(Y(t)&&(a.left=t,n=!0),Y(i)&&(a.top=i,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,i){var a=this.canvasData;return t=Number(t),t<0?t=1/(1-t):t=1+t,this.zoomTo(a.width*t/a.naturalWidth,null,i)},zoomTo:function(t,i,a){var n=this.options,r=this.canvasData,o=r.width,l=r.height,s=r.naturalWidth,u=r.naturalHeight;if(t=Number(t),t>=0&&this.ready&&!this.disabled&&n.zoomable){var c=s*t,d=u*t;if(gt(this.element,sa,{ratio:t,oldRatio:o/s,originalEvent:a})===!1)return this;if(a){var h=this.pointers,f=wr(this.cropper),p=h&&Object.keys(h).length?gu(h):{pageX:a.pageX,pageY:a.pageY};r.left-=(c-o)*((p.pageX-f.left-r.left)/o),r.top-=(d-l)*((p.pageY-f.top-r.top)/l)}else ft(i)&&Y(i.x)&&Y(i.y)?(r.left-=(c-o)*((i.x-r.left)/o),r.top-=(d-l)*((i.y-r.top)/l)):(r.left-=(c-o)/2,r.top-=(d-l)/2);r.width=c,r.height=d,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),Y(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var i=this.imageData.scaleY;return this.scale(t,Y(i)?i:1)},scaleY:function(t){var i=this.imageData.scaleX;return this.scale(Y(i)?i:1,t)},scale:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.imageData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.scalable&&(Y(t)&&(a.scaleX=t,n=!0),Y(i)&&(a.scaleY=i,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=this.options,a=this.imageData,n=this.canvasData,r=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:r.left-n.left,y:r.top-n.top,width:r.width,height:r.height};var l=a.width/a.naturalWidth;if(ne(o,function(c,d){o[d]=c/l}),t){var s=Math.round(o.y+o.height),u=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=u-o.x,o.height=s-o.y}}else o={x:0,y:0,width:0,height:0};return i.rotatable&&(o.rotate=a.rotate||0),i.scalable&&(o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1),o},setData:function(t){var i=this.options,a=this.imageData,n=this.canvasData,r={};if(this.ready&&!this.disabled&&ft(t)){var o=!1;i.rotatable&&Y(t.rotate)&&t.rotate!==a.rotate&&(a.rotate=t.rotate,o=!0),i.scalable&&(Y(t.scaleX)&&t.scaleX!==a.scaleX&&(a.scaleX=t.scaleX,o=!0),Y(t.scaleY)&&t.scaleY!==a.scaleY&&(a.scaleY=t.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var l=a.width/a.naturalWidth;Y(t.x)&&(r.left=t.x*l+n.left),Y(t.y)&&(r.top=t.y*l+n.top),Y(t.width)&&(r.width=t.width*l),Y(t.height)&&(r.height=t.height*l),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?Z({},this.containerData):{}},getImageData:function(){return this.sized?Z({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,i={};return this.ready&&ne(["left","top","width","height","naturalWidth","naturalHeight"],function(a){i[a]=t[a]}),i},setCanvasData:function(t){var i=this.canvasData,a=i.aspectRatio;return this.ready&&!this.disabled&&ft(t)&&(Y(t.left)&&(i.left=t.left),Y(t.top)&&(i.top=t.top),Y(t.width)?(i.width=t.width,i.height=t.width/a):Y(t.height)&&(i.height=t.height,i.width=t.height*a),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,i;return this.ready&&this.cropped&&(i={left:t.left,top:t.top,width:t.width,height:t.height}),i||{}},setCropBoxData:function(t){var i=this.cropBoxData,a=this.options.aspectRatio,n,r;return this.ready&&this.cropped&&!this.disabled&&ft(t)&&(Y(t.left)&&(i.left=t.left),Y(t.top)&&(i.top=t.top),Y(t.width)&&t.width!==i.width&&(n=!0,i.width=t.width),Y(t.height)&&t.height!==i.height&&(r=!0,i.height=t.height),a&&(n?i.height=i.width/a:r&&(i.width=i.height*a)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var i=this.canvasData,a=Tu(this.image,this.imageData,i,t);if(!this.cropped)return a;var n=this.getData(t.rounded),r=n.x,o=n.y,l=n.width,s=n.height,u=a.width/Math.floor(i.naturalWidth);u!==1&&(r*=u,o*=u,l*=u,s*=u);var c=l/s,d=Ue({aspectRatio:c,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),h=Ue({aspectRatio:c,width:t.minWidth||0,height:t.minHeight||0},"cover"),f=Ue({aspectRatio:c,width:t.width||(u!==1?a.width:l),height:t.height||(u!==1?a.height:s)}),p=f.width,m=f.height;p=Math.min(d.width,Math.max(h.width,p)),m=Math.min(d.height,Math.max(h.height,m));var g=document.createElement("canvas"),b=g.getContext("2d");g.width=mt(p),g.height=mt(m),b.fillStyle=t.fillColor||"transparent",b.fillRect(0,0,p,m);var E=t.imageSmoothingEnabled,T=E===void 0?!0:E,_=t.imageSmoothingQuality;b.imageSmoothingEnabled=T,_&&(b.imageSmoothingQuality=_);var y=a.width,I=a.height,v=r,R=o,S,D,x,O,B,A;v<=-l||v>y?(v=0,S=0,x=0,B=0):v<=0?(x=-v,v=0,S=Math.min(y,l+v),B=S):v<=y&&(x=0,S=Math.min(l,y-v),B=S),S<=0||R<=-s||R>I?(R=0,D=0,O=0,A=0):R<=0?(O=-R,R=0,D=Math.min(I,s+R),A=D):R<=I&&(O=0,D=Math.min(s,I-R),A=D);var F=[v,R,S,D];if(B>0&&A>0){var w=p/l;F.push(x*w,O*w,B*w,A*w)}return b.drawImage.apply(b,[a].concat(fr(F.map(function(L){return Math.floor(mt(L))})))),g},setAspectRatio:function(t){var i=this.options;return!this.disabled&&!Ki(t)&&(i.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var i=this.options,a=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var r=t===fa,o=i.movable&&t===Tr;t=r||o?t:Ir,i.dragMode=t,zt(a,Ct,t),pt(a,ia,r),pt(a,aa,o),i.cropBoxMovable||(zt(n,Ct,t),pt(n,ia,r),pt(n,aa,o))}return this}},xu=Oe.Cropper,ma=function(){function e(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Hd(this,e),!t||!nu.test(t.tagName))throw new Error("The first argument is required and must be an or element.");this.element=t,this.options=Z({},sr,ft(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Wd(e,[{key:"init",value:function(){var i=this.element,a=i.tagName.toLowerCase(),n;if(!i[Q]){if(i[Q]=this,a==="img"){if(this.isImg=!0,n=i.getAttribute("src")||"",this.originalUrl=n,!n)return;n=i.src}else a==="canvas"&&window.HTMLCanvasElement&&(n=i.toDataURL());this.load(n)}}},{key:"load",value:function(i){var a=this;if(i){this.url=i,this.imageData={};var n=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(iu.test(i)){au.test(i)?this.read(_u(i)):this.clone();return}var o=new XMLHttpRequest,l=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=l,o.onerror=l,o.ontimeout=l,o.onprogress=function(){o.getResponseHeader("content-type")!==lr&&o.abort()},o.onload=function(){a.read(o.response)},o.onloadend=function(){a.reloading=!1,a.xhr=null},r.checkCrossOrigin&&dr(i)&&n.crossOrigin&&(i=ur(i)),o.open("GET",i,!0),o.responseType="arraybuffer",o.withCredentials=n.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(i){var a=this.options,n=this.imageData,r=yu(i),o=0,l=1,s=1;if(r>1){this.url=Ru(i,lr);var u=Su(r);o=u.rotate,l=u.scaleX,s=u.scaleY}a.rotatable&&(n.rotate=o),a.scalable&&(n.scaleX=l,n.scaleY=s),this.clone()}},{key:"clone",value:function(){var i=this.element,a=this.url,n=i.crossOrigin,r=a;this.options.checkCrossOrigin&&dr(a)&&(n||(n="anonymous"),r=ur(a)),this.crossOrigin=n,this.crossOriginUrl=r;var o=document.createElement("img");n&&(o.crossOrigin=n),o.src=r||a,o.alt=i.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),le(o,Jn),i.parentNode.insertBefore(o,i.nextSibling)}},{key:"start",value:function(){var i=this,a=this.image;a.onload=null,a.onerror=null,this.sizing=!0;var n=Oe.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(Oe.navigator.userAgent),r=function(u,c){Z(i.imageData,{naturalWidth:u,naturalHeight:c,aspectRatio:u/c}),i.initialImageData=Z({},i.imageData),i.sizing=!1,i.sized=!0,i.build()};if(a.naturalWidth&&!n){r(a.naturalWidth,a.naturalHeight);return}var o=document.createElement("img"),l=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){r(o.width,o.height),n||l.removeChild(o)},o.src=a.src,n||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",l.appendChild(o))}},{key:"stop",value:function(){var i=this.image;i.onload=null,i.onerror=null,i.parentNode.removeChild(i),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var i=this.element,a=this.options,n=this.image,r=i.parentNode,o=document.createElement("div");o.innerHTML=ru;var l=o.querySelector(".".concat(Q,"-container")),s=l.querySelector(".".concat(Q,"-canvas")),u=l.querySelector(".".concat(Q,"-drag-box")),c=l.querySelector(".".concat(Q,"-crop-box")),d=c.querySelector(".".concat(Q,"-face"));this.container=r,this.cropper=l,this.canvas=s,this.dragBox=u,this.cropBox=c,this.viewBox=l.querySelector(".".concat(Q,"-view-box")),this.face=d,s.appendChild(n),le(i,me),r.insertBefore(l,i.nextSibling),Me(n,Jn),this.initPreview(),this.bind(),a.initialAspectRatio=Math.max(0,a.initialAspectRatio)||NaN,a.aspectRatio=Math.max(0,a.aspectRatio)||NaN,a.viewMode=Math.max(0,Math.min(3,Math.round(a.viewMode)))||0,le(c,me),a.guides||le(c.getElementsByClassName("".concat(Q,"-dashed")),me),a.center||le(c.getElementsByClassName("".concat(Q,"-center")),me),a.background&&le(l,"".concat(Q,"-bg")),a.highlight||le(d,Zd),a.cropBoxMovable&&(le(d,aa),zt(d,Ct,ha)),a.cropBoxResizable||(le(c.getElementsByClassName("".concat(Q,"-line")),me),le(c.getElementsByClassName("".concat(Q,"-point")),me)),this.render(),this.ready=!0,this.setDragMode(a.dragMode),a.autoCrop&&this.crop(),this.setData(a.data),pe(a.ready)&&Re(i,nr,a.ready,{once:!0}),gt(i,nr)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var i=this.cropper.parentNode;i&&i.removeChild(this.cropper),Me(this.element,me)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=xu,e}},{key:"setDefaults",value:function(i){Z(sr,ft(i)&&i)}}]),e}();Z(ma.prototype,wu,vu,Au,Lu,Mu,Ou);var Ar=({addFilter:e,utils:t})=>{let{Type:i,replaceInString:a,toNaturalFileSize:n}=t;return e("ALLOW_HOPPER_ITEM",(r,{query:o})=>{if(!o("GET_ALLOW_FILE_SIZE_VALIDATION"))return!0;let l=o("GET_MAX_FILE_SIZE");if(l!==null&&r.size>l)return!1;let s=o("GET_MIN_FILE_SIZE");return!(s!==null&&r.sizenew Promise((l,s)=>{if(!o("GET_ALLOW_FILE_SIZE_VALIDATION"))return l(r);let u=o("GET_FILE_VALIDATE_SIZE_FILTER");if(u&&!u(r))return l(r);let c=o("GET_MAX_FILE_SIZE");if(c!==null&&r.size>c){s({status:{main:o("GET_LABEL_MAX_FILE_SIZE_EXCEEDED"),sub:a(o("GET_LABEL_MAX_FILE_SIZE"),{filesize:n(c,".",o("GET_FILE_SIZE_BASE"),o("GET_FILE_SIZE_LABELS",o))})}});return}let d=o("GET_MIN_FILE_SIZE");if(d!==null&&r.sizep+m.fileSize,0)>h){s({status:{main:o("GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED"),sub:a(o("GET_LABEL_MAX_TOTAL_FILE_SIZE"),{filesize:n(h,".",o("GET_FILE_SIZE_BASE"),o("GET_FILE_SIZE_LABELS",o))})}});return}l(r)})),{options:{allowFileSizeValidation:[!0,i.BOOLEAN],maxFileSize:[null,i.INT],minFileSize:[null,i.INT],maxTotalFileSize:[null,i.INT],fileValidateSizeFilter:[null,i.FUNCTION],labelMinFileSizeExceeded:["File is too small",i.STRING],labelMinFileSize:["Minimum file size is {filesize}",i.STRING],labelMaxFileSizeExceeded:["File is too large",i.STRING],labelMaxFileSize:["Maximum file size is {filesize}",i.STRING],labelMaxTotalFileSizeExceeded:["Maximum total size exceeded",i.STRING],labelMaxTotalFileSize:["Maximum total file size is {filesize}",i.STRING]}}},Du=typeof window<"u"&&typeof window.document<"u";Du&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Ar}));var Lr=Ar;var Mr=({addFilter:e,utils:t})=>{let{Type:i,isString:a,replaceInString:n,guesstimateMimeType:r,getExtensionFromFilename:o,getFilenameFromURL:l}=t,s=(f,p)=>{let m=(/^[^/]+/.exec(f)||[]).pop(),g=p.slice(0,-2);return m===g},u=(f,p)=>f.some(m=>/\*$/.test(m)?s(p,m):m===p),c=f=>{let p="";if(a(f)){let m=l(f),g=o(m);g&&(p=r(g))}else p=f.type;return p},d=(f,p,m)=>{if(p.length===0)return!0;let g=c(f);return m?new Promise((b,E)=>{m(f,g).then(T=>{u(p,T)?b():E()}).catch(E)}):u(p,g)},h=f=>p=>f[p]===null?!1:f[p]||p;return e("SET_ATTRIBUTE_TO_OPTION_MAP",f=>Object.assign(f,{accept:"acceptedFileTypes"})),e("ALLOW_HOPPER_ITEM",(f,{query:p})=>p("GET_ALLOW_FILE_TYPE_VALIDATION")?d(f,p("GET_ACCEPTED_FILE_TYPES")):!0),e("LOAD_FILE",(f,{query:p})=>new Promise((m,g)=>{if(!p("GET_ALLOW_FILE_TYPE_VALIDATION")){m(f);return}let b=p("GET_ACCEPTED_FILE_TYPES"),E=p("GET_FILE_VALIDATE_TYPE_DETECT_TYPE"),T=d(f,b,E),_=()=>{let y=b.map(h(p("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP"))).filter(v=>v!==!1),I=y.filter(function(v,R){return y.indexOf(v)===R});g({status:{main:p("GET_LABEL_FILE_TYPE_NOT_ALLOWED"),sub:n(p("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES"),{allTypes:I.join(", "),allButLastType:I.slice(0,-1).join(", "),lastType:I[y.length-1]})}})};if(typeof T=="boolean")return T?m(f):_();T.then(()=>{m(f)}).catch(_)})),{options:{allowFileTypeValidation:[!0,i.BOOLEAN],acceptedFileTypes:[[],i.ARRAY],labelFileTypeNotAllowed:["File is of invalid type",i.STRING],fileValidateTypeLabelExpectedTypes:["Expects {allButLastType} or {lastType}",i.STRING],fileValidateTypeLabelExpectedTypesMap:[{},i.OBJECT],fileValidateTypeDetectType:[null,i.FUNCTION]}}},Pu=typeof window<"u"&&typeof window.document<"u";Pu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Mr}));var Or=Mr;var xr=e=>/^image/.test(e.type),Dr=({addFilter:e,utils:t})=>{let{Type:i,isFile:a,getNumericAspectRatioFromString:n}=t,r=(u,c)=>!(!xr(u.file)||!c("GET_ALLOW_IMAGE_CROP")),o=u=>typeof u=="object",l=u=>typeof u=="number",s=(u,c)=>u.setMetadata("crop",Object.assign({},u.getMetadata("crop"),c));return e("DID_CREATE_ITEM",(u,{query:c})=>{u.extend("setImageCrop",d=>{if(!(!r(u,c)||!o(center)))return u.setMetadata("crop",d),d}),u.extend("setImageCropCenter",d=>{if(!(!r(u,c)||!o(d)))return s(u,{center:d})}),u.extend("setImageCropZoom",d=>{if(!(!r(u,c)||!l(d)))return s(u,{zoom:Math.max(1,d)})}),u.extend("setImageCropRotation",d=>{if(!(!r(u,c)||!l(d)))return s(u,{rotation:d})}),u.extend("setImageCropFlip",d=>{if(!(!r(u,c)||!o(d)))return s(u,{flip:d})}),u.extend("setImageCropAspectRatio",d=>{if(!r(u,c)||typeof d>"u")return;let h=u.getMetadata("crop"),f=n(d),p={center:{x:.5,y:.5},flip:h?Object.assign({},h.flip):{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:f};return u.setMetadata("crop",p),p})}),e("DID_LOAD_ITEM",(u,{query:c})=>new Promise((d,h)=>{let f=u.file;if(!a(f)||!xr(f)||!c("GET_ALLOW_IMAGE_CROP")||u.getMetadata("crop"))return d(u);let m=c("GET_IMAGE_CROP_ASPECT_RATIO");u.setMetadata("crop",{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:m?n(m):null}),d(u)})),{options:{allowImageCrop:[!0,i.BOOLEAN],imageCropAspectRatio:[null,i.STRING]}}},Fu=typeof window<"u"&&typeof window.document<"u";Fu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Dr}));var Pr=Dr;var ga=e=>/^image/.test(e.type),Fr=e=>{let{addFilter:t,utils:i,views:a}=e,{Type:n,createRoute:r,createItemAPI:o=c=>c}=i,{fileActionButton:l}=a;t("SHOULD_REMOVE_ON_REVERT",(c,{item:d,query:h})=>new Promise(f=>{let{file:p}=d,m=h("GET_ALLOW_IMAGE_EDIT")&&h("GET_IMAGE_EDIT_ALLOW_EDIT")&&ga(p);f(!m)})),t("DID_LOAD_ITEM",(c,{query:d,dispatch:h})=>new Promise((f,p)=>{if(c.origin>1){f(c);return}let{file:m}=c;if(!d("GET_ALLOW_IMAGE_EDIT")||!d("GET_IMAGE_EDIT_INSTANT_EDIT")){f(c);return}if(!ga(m)){f(c);return}let g=(E,T,_)=>y=>{s.shift(),y?T(E):_(E),h("KICK"),b()},b=()=>{if(!s.length)return;let{item:E,resolve:T,reject:_}=s[0];h("EDIT_ITEM",{id:E.id,handleEditorResponse:g(E,T,_)})};u({item:c,resolve:f,reject:p}),s.length===1&&b()})),t("DID_CREATE_ITEM",(c,{query:d,dispatch:h})=>{c.extend("edit",()=>{h("EDIT_ITEM",{id:c.id})})});let s=[],u=c=>(s.push(c),c);return t("CREATE_VIEW",c=>{let{is:d,view:h,query:f}=c;if(!f("GET_ALLOW_IMAGE_EDIT"))return;let p=f("GET_ALLOW_IMAGE_PREVIEW");if(!(d("file-info")&&!p||d("file")&&p))return;let g=f("GET_IMAGE_EDIT_EDITOR");if(!g)return;g.filepondCallbackBridge||(g.outputData=!0,g.outputFile=!1,g.filepondCallbackBridge={onconfirm:g.onconfirm||(()=>{}),oncancel:g.oncancel||(()=>{})});let b=({root:_,props:y,action:I})=>{let{id:v}=y,{handleEditorResponse:R}=I;g.cropAspectRatio=_.query("GET_IMAGE_CROP_ASPECT_RATIO")||g.cropAspectRatio,g.outputCanvasBackgroundColor=_.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||g.outputCanvasBackgroundColor;let S=_.query("GET_ITEM",v);if(!S)return;let D=S.file,x=S.getMetadata("crop"),O={center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},B=S.getMetadata("resize"),A=S.getMetadata("filter")||null,F=S.getMetadata("filters")||null,w=S.getMetadata("colors")||null,L=S.getMetadata("markup")||null,N={crop:x||O,size:B?{upscale:B.upscale,mode:B.mode,width:B.size.width,height:B.size.height}:null,filter:F?F.id||F.matrix:_.query("GET_ALLOW_IMAGE_FILTER")&&_.query("GET_IMAGE_FILTER_COLOR_MATRIX")&&!w?A:null,color:w,markup:L};g.onconfirm=({data:P})=>{let{crop:U,size:V,filter:q,color:X,colorMatrix:j,markup:se}=P,k={};if(U&&(k.crop=U),V){let W=(S.getMetadata("resize")||{}).size,C={width:V.width,height:V.height};!(C.width&&C.height)&&W&&(C.width=W.width,C.height=W.height),(C.width||C.height)&&(k.resize={upscale:V.upscale,mode:V.mode,size:C})}se&&(k.markup=se),k.colors=X,k.filters=q,k.filter=j,S.setMetadata(k),g.filepondCallbackBridge.onconfirm(P,o(S)),R&&(g.onclose=()=>{R(!0),g.onclose=null})},g.oncancel=()=>{g.filepondCallbackBridge.oncancel(o(S)),R&&(g.onclose=()=>{R(!1),g.onclose=null})},g.open(D,N)},E=({root:_,props:y})=>{if(!f("GET_IMAGE_EDIT_ALLOW_EDIT"))return;let{id:I}=y,v=f("GET_ITEM",I);if(!v)return;let R=v.file;if(ga(R))if(_.ref.handleEdit=S=>{S.stopPropagation(),_.dispatch("EDIT_ITEM",{id:I})},p){let S=h.createChildView(l,{label:"edit",icon:f("GET_IMAGE_EDIT_ICON_EDIT"),opacity:0});S.element.classList.add("filepond--action-edit-item"),S.element.dataset.align=f("GET_STYLE_IMAGE_EDIT_BUTTON_EDIT_ITEM_POSITION"),S.on("click",_.ref.handleEdit),_.ref.buttonEditItem=h.appendChildView(S)}else{let S=h.element.querySelector(".filepond--file-info-main"),D=document.createElement("button");D.className="filepond--action-edit-item-alt",D.innerHTML=f("GET_IMAGE_EDIT_ICON_EDIT")+"edit",D.addEventListener("click",_.ref.handleEdit),S.appendChild(D),_.ref.editButton=D}};h.registerDestroyer(({root:_})=>{_.ref.buttonEditItem&&_.ref.buttonEditItem.off("click",_.ref.handleEdit),_.ref.editButton&&_.ref.editButton.removeEventListener("click",_.ref.handleEdit)});let T={EDIT_ITEM:b,DID_LOAD_ITEM:E};if(p){let _=({root:y})=>{y.ref.buttonEditItem&&(y.ref.buttonEditItem.opacity=1)};T.DID_IMAGE_PREVIEW_SHOW=_}h.registerWriter(r(T))}),{options:{allowImageEdit:[!0,n.BOOLEAN],styleImageEditButtonEditItemPosition:["bottom center",n.STRING],imageEditInstantEdit:[!1,n.BOOLEAN],imageEditAllowEdit:[!0,n.BOOLEAN],imageEditIconEdit:['',n.STRING],imageEditEditor:[null,n.OBJECT]}}},Cu=typeof window<"u"&&typeof window.document<"u";Cu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Fr}));var Cr=Fr;var zu=e=>/^image\/jpeg/.test(e.type),et={JPEG:65496,APP1:65505,EXIF:1165519206,TIFF:18761,Orientation:274,Unknown:65280},tt=(e,t,i=!1)=>e.getUint16(t,i),zr=(e,t,i=!1)=>e.getUint32(t,i),Nu=e=>new Promise((t,i)=>{let a=new FileReader;a.onload=function(n){let r=new DataView(n.target.result);if(tt(r,0)!==et.JPEG){t(-1);return}let o=r.byteLength,l=2;for(;ltypeof window<"u"&&typeof window.document<"u")(),Gu=()=>Bu,Vu="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=",Nr,hi=Gu()?new Image:{};hi.onload=()=>Nr=hi.naturalWidth>hi.naturalHeight;hi.src=Vu;var Uu=()=>Nr,Br=({addFilter:e,utils:t})=>{let{Type:i,isFile:a}=t;return e("DID_LOAD_ITEM",(n,{query:r})=>new Promise((o,l)=>{let s=n.file;if(!a(s)||!zu(s)||!r("GET_ALLOW_IMAGE_EXIF_ORIENTATION")||!Uu())return o(n);Nu(s).then(u=>{n.setMetadata("exif",{orientation:u}),o(n)})})),{options:{allowImageExifOrientation:[!0,i.BOOLEAN]}}},ku=typeof window<"u"&&typeof window.document<"u";ku&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Br}));var Gr=Br;var Hu=e=>/^image/.test(e.type),Vr=(e,t)=>Bt(e.x*t,e.y*t),Ur=(e,t)=>Bt(e.x+t.x,e.y+t.y),Wu=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:Bt(e.x/t,e.y/t)},fi=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),r=Bt(e.x-i.x,e.y-i.y);return Bt(i.x+a*r.x-n*r.y,i.y+n*r.x+a*r.y)},Bt=(e=0,t=0)=>({x:e,y:t}),ge=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},Yu=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",o=ge(e.borderWidth||e.lineWidth,t,i),l=e.lineCap||"round",s=e.lineJoin||"round",u=typeof a=="string"?"":a.map(d=>ge(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":l,"stroke-linejoin":s,"stroke-width":o||0,"stroke-dasharray":u,stroke:r,fill:n,opacity:c}},ye=e=>e!=null,$u=(e,t,i=1)=>{let a=ge(e.x,t,i,"width")||ge(e.left,t,i,"width"),n=ge(e.y,t,i,"height")||ge(e.top,t,i,"height"),r=ge(e.width,t,i,"width"),o=ge(e.height,t,i,"height"),l=ge(e.right,t,i,"width"),s=ge(e.bottom,t,i,"height");return ye(n)||(ye(o)&&ye(s)?n=t.height-o-s:n=s),ye(a)||(ye(r)&&ye(l)?a=t.width-r-l:a=l),ye(r)||(ye(a)&&ye(l)?r=t.width-a-l:r=0),ye(o)||(ye(n)&&ye(s)?o=t.height-n-s:o=0),{x:a||0,y:n||0,width:r||0,height:o||0}},qu=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),De=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),Xu="http://www.w3.org/2000/svg",Et=(e,t)=>{let i=document.createElementNS(Xu,e);return t&&De(i,t),i},ju=e=>De(e,{...e.rect,...e.styles}),Qu=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return De(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},Zu={contain:"xMidYMid meet",cover:"xMidYMid slice"},Ku=(e,t)=>{De(e,{...e.rect,...e.styles,preserveAspectRatio:Zu[t.fit]||"none"})},Ju={left:"start",center:"middle",right:"end"},eh=(e,t,i,a)=>{let n=ge(t.fontSize,i,a),r=t.fontFamily||"sans-serif",o=t.fontWeight||"normal",l=Ju[t.textAlign]||"start";De(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":o,"font-size":n,"font-family":r,"text-anchor":l}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},th=(e,t,i,a)=>{De(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],r=e.childNodes[1],o=e.childNodes[2],l=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(De(n,{x1:l.x,y1:l.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;r.style.display="none",o.style.display="none";let u=Wu({x:s.x-l.x,y:s.y-l.y}),c=ge(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=Vr(u,c),h=Ur(l,d),f=fi(l,2,h),p=fi(l,-2,h);De(r,{style:"display:block;",d:`M${f.x},${f.y} L${l.x},${l.y} L${p.x},${p.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=Vr(u,-c),h=Ur(s,d),f=fi(s,2,h),p=fi(s,-2,h);De(o,{style:"display:block;",d:`M${f.x},${f.y} L${s.x},${s.y} L${p.x},${p.y}`})}},ih=(e,t,i,a)=>{De(e,{...e.styles,fill:"none",d:qu(t.points.map(n=>({x:ge(n.x,i,a,"width"),y:ge(n.y,i,a,"height")})))})},pi=e=>t=>Et(e,{id:t.id}),ah=e=>{let t=Et("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},nh=e=>{let t=Et("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=Et("line");t.appendChild(i);let a=Et("path");t.appendChild(a);let n=Et("path");return t.appendChild(n),t},rh={image:ah,rect:pi("rect"),ellipse:pi("ellipse"),text:pi("text"),path:pi("path"),line:nh},oh={rect:ju,ellipse:Qu,image:Ku,text:eh,path:ih,line:th},lh=(e,t)=>rh[e](t),sh=(e,t,i,a,n)=>{t!=="path"&&(e.rect=$u(i,a,n)),e.styles=Yu(i,a,n),oh[t](e,i,a,n)},ch=["x","y","left","top","right","bottom","width","height"],dh=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,uh=e=>{let[t,i]=e,a=i.points?{}:ch.reduce((n,r)=>(n[r]=dh(i[r]),n),{});return[t,{zIndex:0,...i,...a}]},hh=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexe.utils.createView({name:"image-preview-markup",tag:"svg",ignoreRect:!0,mixins:{apis:["width","height","crop","markup","resize","dirty"]},write:({root:t,props:i})=>{if(!i.dirty)return;let{crop:a,resize:n,markup:r}=i,o=i.width,l=i.height,s=a.width,u=a.height;if(n){let{size:f}=n,p=f&&f.width,m=f&&f.height,g=n.mode,b=n.upscale;p&&!m&&(m=p),m&&!p&&(p=m);let E=s{let[p,m]=f,g=lh(p,m);sh(g,p,m,c,d),t.element.appendChild(g)})}}),Nt=(e,t)=>({x:e,y:t}),ph=(e,t)=>e.x*t.x+e.y*t.y,kr=(e,t)=>Nt(e.x-t.x,e.y-t.y),mh=(e,t)=>ph(kr(e,t),kr(e,t)),Hr=(e,t)=>Math.sqrt(mh(e,t)),Wr=(e,t)=>{let i=e,a=1.5707963267948966,n=t,r=1.5707963267948966-t,o=Math.sin(a),l=Math.sin(n),s=Math.sin(r),u=Math.cos(r),c=i/o,d=c*l,h=c*s;return Nt(u*d,u*h)},gh=(e,t)=>{let i=e.width,a=e.height,n=Wr(i,t),r=Wr(a,t),o=Nt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),l=Nt(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),s=Nt(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:Hr(o,l),height:Hr(o,s)}},Eh=(e,t,i=1)=>{let a=e.height/e.width,n=1,r=t,o=1,l=a;l>r&&(l=r,o=l/a);let s=Math.max(n/o,r/l),u=e.width/(i*s*o),c=u*t;return{width:u,height:c}},$r=(e,t,i,a)=>{let n=a.x>.5?1-a.x:a.x,r=a.y>.5?1-a.y:a.y,o=n*2*e.width,l=r*2*e.height,s=gh(t,i);return Math.max(s.width/o,s.height/l)},qr=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,r=(e.height-a)*.5;return{x:n,y:r,width:i,height:a}},Th=(e,t={})=>{let{zoom:i,rotation:a,center:n,aspectRatio:r}=t;r||(r=e.height/e.width);let o=Eh(e,r,i),l={x:o.width*.5,y:o.height*.5},s={x:0,y:0,width:o.width,height:o.height,center:l},u=typeof t.scaleToFit>"u"||t.scaleToFit,c=$r(e,qr(s,r),a,u?n:{x:.5,y:.5}),d=i*c;return{widthFloat:o.width/d,heightFloat:o.height/d,width:Math.round(o.width/d),height:Math.round(o.height/d)}},xe={type:"spring",stiffness:.5,damping:.45,mass:10},Ih=e=>e.utils.createView({name:"image-bitmap",ignoreRect:!0,mixins:{styles:["scaleX","scaleY"]},create:({root:t,props:i})=>{t.appendChild(i.image)}}),bh=e=>e.utils.createView({name:"image-canvas-wrapper",tag:"div",ignoreRect:!0,mixins:{apis:["crop","width","height"],styles:["originX","originY","translateX","translateY","scaleX","scaleY","rotateZ"],animations:{originX:xe,originY:xe,scaleX:xe,scaleY:xe,translateX:xe,translateY:xe,rotateZ:xe}},create:({root:t,props:i})=>{i.width=i.image.width,i.height=i.image.height,t.ref.bitmap=t.appendChildView(t.createChildView(Ih(e),{image:i.image}))},write:({root:t,props:i})=>{let{flip:a}=i.crop,{bitmap:n}=t.ref;n.scaleX=a.horizontal?-1:1,n.scaleY=a.vertical?-1:1}}),_h=e=>e.utils.createView({name:"image-clip",tag:"div",ignoreRect:!0,mixins:{apis:["crop","markup","resize","width","height","dirty","background"],styles:["width","height","opacity"],animations:{opacity:{type:"tween",duration:250}}},didWriteView:function({root:t,props:i}){i.background&&(t.element.style.backgroundColor=i.background)},create:({root:t,props:i})=>{t.ref.image=t.appendChildView(t.createChildView(bh(e),Object.assign({},i))),t.ref.createMarkup=()=>{t.ref.markup||(t.ref.markup=t.appendChildView(t.createChildView(fh(e),Object.assign({},i))))},t.ref.destroyMarkup=()=>{t.ref.markup&&(t.removeChildView(t.ref.markup),t.ref.markup=null)};let a=t.query("GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR");a!==null&&(a==="grid"?t.element.dataset.transparencyIndicator=a:t.element.dataset.transparencyIndicator="color")},write:({root:t,props:i,shouldOptimize:a})=>{let{crop:n,markup:r,resize:o,dirty:l,width:s,height:u}=i;t.ref.image.crop=n;let c={x:0,y:0,width:s,height:u,center:{x:s*.5,y:u*.5}},d={width:t.ref.image.width,height:t.ref.image.height},h={x:n.center.x*d.width,y:n.center.y*d.height},f={x:c.center.x-d.width*n.center.x,y:c.center.y-d.height*n.center.y},p=Math.PI*2+n.rotation%(Math.PI*2),m=n.aspectRatio||d.height/d.width,g=typeof n.scaleToFit>"u"||n.scaleToFit,b=$r(d,qr(c,m),p,g?n.center:{x:.5,y:.5}),E=n.zoom*b;r&&r.length?(t.ref.createMarkup(),t.ref.markup.width=s,t.ref.markup.height=u,t.ref.markup.resize=o,t.ref.markup.dirty=l,t.ref.markup.markup=r,t.ref.markup.crop=Th(d,n)):t.ref.markup&&t.ref.destroyMarkup();let T=t.ref.image;if(a){T.originX=null,T.originY=null,T.translateX=null,T.translateY=null,T.rotateZ=null,T.scaleX=null,T.scaleY=null;return}T.originX=h.x,T.originY=h.y,T.translateX=f.x,T.translateY=f.y,T.rotateZ=p,T.scaleX=E,T.scaleY=E}}),Rh=e=>e.utils.createView({name:"image-preview",tag:"div",ignoreRect:!0,mixins:{apis:["image","crop","markup","resize","dirty","background"],styles:["translateY","scaleX","scaleY","opacity"],animations:{scaleX:xe,scaleY:xe,translateY:xe,opacity:{type:"tween",duration:400}}},create:({root:t,props:i})=>{t.ref.clip=t.appendChildView(t.createChildView(_h(e),{id:i.id,image:i.image,crop:i.crop,markup:i.markup,resize:i.resize,dirty:i.dirty,background:i.background}))},write:({root:t,props:i,shouldOptimize:a})=>{let{clip:n}=t.ref,{image:r,crop:o,markup:l,resize:s,dirty:u}=i;if(n.crop=o,n.markup=l,n.resize=s,n.dirty=u,n.opacity=a?0:1,a||t.rect.element.hidden)return;let c=r.height/r.width,d=o.aspectRatio||c,h=t.rect.inner.width,f=t.rect.inner.height,p=t.query("GET_IMAGE_PREVIEW_HEIGHT"),m=t.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),g=t.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),b=t.query("GET_PANEL_ASPECT_RATIO"),E=t.query("GET_ALLOW_MULTIPLE");b&&!E&&(p=h*b,d=b);let T=p!==null?p:Math.max(m,Math.min(h*d,g)),_=T/d;_>h&&(_=h,T=_*d),T>f&&(T=f,_=f/d),n.width=_,n.height=T}}),yh=` + + + + + + + + + + + + + + + + + +`,Yr=0,Sh=e=>e.utils.createView({name:"image-preview-overlay",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let a=yh;if(document.querySelector("base")){let n=new URL(window.location.href.replace(window.location.hash,"")).href;a=a.replace(/url\(\#/g,"url("+n+"#")}Yr++,t.element.classList.add(`filepond--image-preview-overlay-${i.status}`),t.element.innerHTML=a.replace(/__UID__/g,Yr)},mixins:{styles:["opacity"],animations:{opacity:{type:"spring",mass:25}}}}),wh=function(){self.onmessage=e=>{createImageBitmap(e.data.message.file).then(t=>{self.postMessage({id:e.data.id,message:t},[t])})}},vh=function(){self.onmessage=e=>{let t=e.data.message.imageData,i=e.data.message.colorMatrix,a=t.data,n=a.length,r=i[0],o=i[1],l=i[2],s=i[3],u=i[4],c=i[5],d=i[6],h=i[7],f=i[8],p=i[9],m=i[10],g=i[11],b=i[12],E=i[13],T=i[14],_=i[15],y=i[16],I=i[17],v=i[18],R=i[19],S=0,D=0,x=0,O=0,B=0;for(;S{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t(a,n)},i.src=e},Lh={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},Mh=(e,t,i,a)=>{a!==-1&&e.transform.apply(e,Lh[a](t,i))},Oh=(e,t,i,a)=>{t=Math.round(t),i=Math.round(i);let n=document.createElement("canvas");n.width=t,n.height=i;let r=n.getContext("2d");return a>=5&&a<=8&&([t,i]=[i,t]),Mh(r,t,i,a),r.drawImage(e,0,0,t,i),n},Xr=e=>/^image/.test(e.type)&&!/svg/.test(e.type),xh=10,Dh=10,Ph=e=>{let t=Math.min(xh/e.width,Dh/e.height),i=document.createElement("canvas"),a=i.getContext("2d"),n=i.width=Math.ceil(e.width*t),r=i.height=Math.ceil(e.height*t);a.drawImage(e,0,0,n,r);let o=null;try{o=a.getImageData(0,0,n,r).data}catch{return null}let l=o.length,s=0,u=0,c=0,d=0;for(;dMath.floor(Math.sqrt(e/(t/4))),Fh=(e,t)=>(t=t||document.createElement("canvas"),t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0),t),Ch=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(new Uint8ClampedArray(e.data)),t},zh=e=>new Promise((t,i)=>{let a=new Image;a.crossOrigin="Anonymous",a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Nh=e=>{let t=Sh(e),i=Rh(e),{createWorker:a}=e.utils,n=(E,T,_)=>new Promise(y=>{E.ref.imageData||(E.ref.imageData=_.getContext("2d").getImageData(0,0,_.width,_.height));let I=Ch(E.ref.imageData);if(!T||T.length!==20)return _.getContext("2d").putImageData(I,0,0),y();let v=a(vh);v.post({imageData:I,colorMatrix:T},R=>{_.getContext("2d").putImageData(R,0,0),v.terminate(),y()},[I.data.buffer])}),r=(E,T)=>{E.removeChildView(T),T.image.width=1,T.image.height=1,T._destroy()},o=({root:E})=>{let T=E.ref.images.shift();return T.opacity=0,T.translateY=-15,E.ref.imageViewBin.push(T),T},l=({root:E,props:T,image:_})=>{let y=T.id,I=E.query("GET_ITEM",{id:y});if(!I)return;let v=I.getMetadata("crop")||{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},R=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),S,D,x=!1;E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(S=I.getMetadata("markup")||[],D=I.getMetadata("resize"),x=!0);let O=E.appendChildView(E.createChildView(i,{id:y,image:_,crop:v,resize:D,markup:S,dirty:x,background:R,opacity:0,scaleX:1.15,scaleY:1.15,translateY:15}),E.childViews.length);E.ref.images.push(O),O.opacity=1,O.scaleX=1,O.scaleY=1,O.translateY=0,setTimeout(()=>{E.dispatch("DID_IMAGE_PREVIEW_SHOW",{id:y})},250)},s=({root:E,props:T})=>{let _=E.query("GET_ITEM",{id:T.id});if(!_)return;let y=E.ref.images[E.ref.images.length-1];y.crop=_.getMetadata("crop"),y.background=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(y.dirty=!0,y.resize=_.getMetadata("resize"),y.markup=_.getMetadata("markup"))},u=({root:E,props:T,action:_})=>{if(!/crop|filter|markup|resize/.test(_.change.key)||!E.ref.images.length)return;let y=E.query("GET_ITEM",{id:T.id});if(y){if(/filter/.test(_.change.key)){let I=E.ref.images[E.ref.images.length-1];n(E,_.change.value,I.image);return}if(/crop|markup|resize/.test(_.change.key)){let I=y.getMetadata("crop"),v=E.ref.images[E.ref.images.length-1];if(I&&I.aspectRatio&&v.crop&&v.crop.aspectRatio&&Math.abs(I.aspectRatio-v.crop.aspectRatio)>1e-5){let R=o({root:E});l({root:E,props:T,image:Fh(R.image)})}else s({root:E,props:T})}}},c=E=>{let _=window.navigator.userAgent.match(/Firefox\/([0-9]+)\./),y=_?parseInt(_[1]):null;return y!==null&&y<=58?!1:"createImageBitmap"in window&&Xr(E)},d=({root:E,props:T})=>{let{id:_}=T,y=E.query("GET_ITEM",_);if(!y)return;let I=URL.createObjectURL(y.file);Ah(I,(v,R)=>{E.dispatch("DID_IMAGE_PREVIEW_CALCULATE_SIZE",{id:_,width:v,height:R})})},h=({root:E,props:T})=>{let{id:_}=T,y=E.query("GET_ITEM",_);if(!y)return;let I=URL.createObjectURL(y.file),v=()=>{zh(I).then(R)},R=S=>{URL.revokeObjectURL(I);let x=(y.getMetadata("exif")||{}).orientation||-1,{width:O,height:B}=S;if(!O||!B)return;x>=5&&x<=8&&([O,B]=[B,O]);let A=Math.max(1,window.devicePixelRatio*.75),w=E.query("GET_IMAGE_PREVIEW_ZOOM_FACTOR")*A,L=B/O,N=E.rect.element.width,P=E.rect.element.height,U=N,V=U*L;L>1?(U=Math.min(O,N*w),V=U*L):(V=Math.min(B,P*w),U=V/L);let q=Oh(S,U,V,x),X=()=>{let se=E.query("GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR")?Ph(data):null;y.setMetadata("color",se,!0),"close"in S&&S.close(),E.ref.overlayShadow.opacity=1,l({root:E,props:T,image:q})},j=y.getMetadata("filter");j?n(E,j,q).then(X):X()};if(c(y.file)){let S=a(wh);S.post({file:y.file},D=>{if(S.terminate(),!D){v();return}R(D)})}else v()},f=({root:E})=>{let T=E.ref.images[E.ref.images.length-1];T.translateY=0,T.scaleX=1,T.scaleY=1,T.opacity=1},p=({root:E})=>{E.ref.overlayShadow.opacity=1,E.ref.overlayError.opacity=0,E.ref.overlaySuccess.opacity=0},m=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlayError.opacity=1},g=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlaySuccess.opacity=1},b=({root:E})=>{E.ref.images=[],E.ref.imageData=null,E.ref.imageViewBin=[],E.ref.overlayShadow=E.appendChildView(E.createChildView(t,{opacity:0,status:"idle"})),E.ref.overlaySuccess=E.appendChildView(E.createChildView(t,{opacity:0,status:"success"})),E.ref.overlayError=E.appendChildView(E.createChildView(t,{opacity:0,status:"failure"}))};return e.utils.createView({name:"image-preview-wrapper",create:b,styles:["height"],apis:["height"],destroy:({root:E})=>{E.ref.images.forEach(T=>{T.image.width=1,T.image.height=1})},didWriteView:({root:E})=>{E.ref.images.forEach(T=>{T.dirty=!1})},write:e.utils.createRoute({DID_IMAGE_PREVIEW_DRAW:f,DID_IMAGE_PREVIEW_CONTAINER_CREATE:d,DID_FINISH_CALCULATE_PREVIEWSIZE:h,DID_UPDATE_ITEM_METADATA:u,DID_THROW_ITEM_LOAD_ERROR:m,DID_THROW_ITEM_PROCESSING_ERROR:m,DID_THROW_ITEM_INVALID:m,DID_COMPLETE_ITEM_PROCESSING:g,DID_START_ITEM_PROCESSING:p,DID_REVERT_ITEM_PROCESSING:p},({root:E})=>{let T=E.ref.imageViewBin.filter(_=>_.opacity===0);E.ref.imageViewBin=E.ref.imageViewBin.filter(_=>_.opacity>0),T.forEach(_=>r(E,_)),T.length=0})})},jr=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n,isFile:r}=i,o=Nh(e);return t("CREATE_VIEW",l=>{let{is:s,view:u,query:c}=l;if(!s("file")||!c("GET_ALLOW_IMAGE_PREVIEW"))return;let d=({root:g,props:b})=>{let{id:E}=b,T=c("GET_ITEM",E);if(!T||!r(T.file)||T.archived)return;let _=T.file;if(!Hu(_)||!c("GET_IMAGE_PREVIEW_FILTER_ITEM")(T))return;let y="createImageBitmap"in(window||{}),I=c("GET_IMAGE_PREVIEW_MAX_FILE_SIZE");if(!y&&I&&_.size>I)return;g.ref.imagePreview=u.appendChildView(u.createChildView(o,{id:E}));let v=g.query("GET_IMAGE_PREVIEW_HEIGHT");v&&g.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:v});let R=!y&&_.size>c("GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE");g.dispatch("DID_IMAGE_PREVIEW_CONTAINER_CREATE",{id:E},R)},h=(g,b)=>{if(!g.ref.imagePreview)return;let{id:E}=b,T=g.query("GET_ITEM",{id:E});if(!T)return;let _=g.query("GET_PANEL_ASPECT_RATIO"),y=g.query("GET_ITEM_PANEL_ASPECT_RATIO"),I=g.query("GET_IMAGE_PREVIEW_HEIGHT");if(_||y||I)return;let{imageWidth:v,imageHeight:R}=g.ref;if(!v||!R)return;let S=g.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),D=g.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),O=(T.getMetadata("exif")||{}).orientation||-1;if(O>=5&&O<=8&&([v,R]=[R,v]),!Xr(T.file)||g.query("GET_IMAGE_PREVIEW_UPSCALE")){let N=2048/v;v*=N,R*=N}let B=R/v,A=(T.getMetadata("crop")||{}).aspectRatio||B,F=Math.max(S,Math.min(R,D)),w=g.rect.element.width,L=Math.min(w*A,F);g.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:L})},f=({root:g})=>{g.ref.shouldRescale=!0},p=({root:g,action:b})=>{b.change.key==="crop"&&(g.ref.shouldRescale=!0)},m=({root:g,action:b})=>{g.ref.imageWidth=b.width,g.ref.imageHeight=b.height,g.ref.shouldRescale=!0,g.ref.shouldDrawPreview=!0,g.dispatch("KICK")};u.registerWriter(n({DID_RESIZE_ROOT:f,DID_STOP_RESIZE:f,DID_LOAD_ITEM:d,DID_IMAGE_PREVIEW_CALCULATE_SIZE:m,DID_UPDATE_ITEM_METADATA:p},({root:g,props:b})=>{g.ref.imagePreview&&(g.rect.element.hidden||(g.ref.shouldRescale&&(h(g,b),g.ref.shouldRescale=!1),g.ref.shouldDrawPreview&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{g.dispatch("DID_FINISH_CALCULATE_PREVIEWSIZE",{id:b.id})})}),g.ref.shouldDrawPreview=!1)))}))}),{options:{allowImagePreview:[!0,a.BOOLEAN],imagePreviewFilterItem:[()=>!0,a.FUNCTION],imagePreviewHeight:[null,a.INT],imagePreviewMinHeight:[44,a.INT],imagePreviewMaxHeight:[256,a.INT],imagePreviewMaxFileSize:[null,a.INT],imagePreviewZoomFactor:[2,a.INT],imagePreviewUpscale:[!1,a.BOOLEAN],imagePreviewMaxInstantPreviewFileSize:[1e6,a.INT],imagePreviewTransparencyIndicator:[null,a.STRING],imagePreviewCalculateAverageImageColor:[!1,a.BOOLEAN],imagePreviewMarkupShow:[!0,a.BOOLEAN],imagePreviewMarkupFilter:[()=>!0,a.FUNCTION]}}},Bh=typeof window<"u"&&typeof window.document<"u";Bh&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:jr}));var Qr=jr;var Gh=e=>/^image/.test(e.type),Vh=(e,t)=>{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t({width:a,height:n})},i.onerror=()=>t(null),i.src=e},Zr=({addFilter:e,utils:t})=>{let{Type:i}=t;return e("DID_LOAD_ITEM",(a,{query:n})=>new Promise((r,o)=>{let l=a.file;if(!Gh(l)||!n("GET_ALLOW_IMAGE_RESIZE"))return r(a);let s=n("GET_IMAGE_RESIZE_MODE"),u=n("GET_IMAGE_RESIZE_TARGET_WIDTH"),c=n("GET_IMAGE_RESIZE_TARGET_HEIGHT"),d=n("GET_IMAGE_RESIZE_UPSCALE");if(u===null&&c===null)return r(a);let h=u===null?c:u,f=c===null?h:c,p=URL.createObjectURL(l);Vh(p,m=>{if(URL.revokeObjectURL(p),!m)return r(a);let{width:g,height:b}=m,E=(a.getMetadata("exif")||{}).orientation||-1;if(E>=5&&E<=8&&([g,b]=[b,g]),g===h&&b===f)return r(a);if(!d){if(s==="cover"){if(g<=h||b<=f)return r(a)}else if(g<=h&&b<=h)return r(a)}a.setMetadata("resize",{mode:s,upscale:d,size:{width:h,height:f}}),r(a)})})),{options:{allowImageResize:[!0,i.BOOLEAN],imageResizeMode:["cover",i.STRING],imageResizeUpscale:[!0,i.BOOLEAN],imageResizeTargetWidth:[null,i.INT],imageResizeTargetHeight:[null,i.INT]}}},Uh=typeof window<"u"&&typeof window.document<"u";Uh&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Zr}));var Kr=Zr;var kh=e=>/^image/.test(e.type),Hh=e=>e.substr(0,e.lastIndexOf("."))||e,Wh={jpeg:"jpg","svg+xml":"svg"},Yh=(e,t)=>{let i=Hh(e),a=t.split("/")[1],n=Wh[a]||a;return`${i}.${n}`},$h=e=>/jpeg|png|svg\+xml/.test(e)?e:"image/jpeg",qh=e=>/^image/.test(e.type),Xh={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},jh=(e,t,i)=>(i===-1&&(i=1),Xh[i](e,t)),Gt=(e,t)=>({x:e,y:t}),Qh=(e,t)=>e.x*t.x+e.y*t.y,Jr=(e,t)=>Gt(e.x-t.x,e.y-t.y),Zh=(e,t)=>Qh(Jr(e,t),Jr(e,t)),eo=(e,t)=>Math.sqrt(Zh(e,t)),to=(e,t)=>{let i=e,a=1.5707963267948966,n=t,r=1.5707963267948966-t,o=Math.sin(a),l=Math.sin(n),s=Math.sin(r),u=Math.cos(r),c=i/o,d=c*l,h=c*s;return Gt(u*d,u*h)},Kh=(e,t)=>{let i=e.width,a=e.height,n=to(i,t),r=to(a,t),o=Gt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),l=Gt(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),s=Gt(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:eo(o,l),height:eo(o,s)}},no=(e,t,i=0,a={x:.5,y:.5})=>{let n=a.x>.5?1-a.x:a.x,r=a.y>.5?1-a.y:a.y,o=n*2*e.width,l=r*2*e.height,s=Kh(t,i);return Math.max(s.width/o,s.height/l)},ro=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,r=(e.height-a)*.5;return{x:n,y:r,width:i,height:a}},io=(e,t,i=1)=>{let a=e.height/e.width,n=1,r=t,o=1,l=a;l>r&&(l=r,o=l/a);let s=Math.max(n/o,r/l),u=e.width/(i*s*o),c=u*t;return{width:u,height:c}},oo=e=>{e.width=1,e.height=1,e.getContext("2d").clearRect(0,0,1,1)},ao=e=>e&&(e.horizontal||e.vertical),Jh=(e,t,i)=>{if(t<=1&&!ao(i))return e.width=e.naturalWidth,e.height=e.naturalHeight,e;let a=document.createElement("canvas"),n=e.naturalWidth,r=e.naturalHeight,o=t>=5&&t<=8;o?(a.width=r,a.height=n):(a.width=n,a.height=r);let l=a.getContext("2d");if(t&&l.transform.apply(l,jh(n,r,t)),ao(i)){let s=[1,0,0,1,0,0];(!o&&i.horizontal||o&i.vertical)&&(s[0]=-1,s[4]=n),(!o&&i.vertical||o&&i.horizontal)&&(s[3]=-1,s[5]=r),l.transform(...s)}return l.drawImage(e,0,0,n,r),a},ef=(e,t,i={},a={})=>{let{canvasMemoryLimit:n,background:r=null}=a,o=i.zoom||1,l=Jh(e,t,i.flip),s={width:l.width,height:l.height},u=i.aspectRatio||s.height/s.width,c=io(s,u,o);if(n){let T=c.width*c.height;if(T>n){let _=Math.sqrt(n)/Math.sqrt(T);s.width=Math.floor(s.width*_),s.height=Math.floor(s.height*_),c=io(s,u,o)}}let d=document.createElement("canvas"),h={x:c.width*.5,y:c.height*.5},f={x:0,y:0,width:c.width,height:c.height,center:h},p=typeof i.scaleToFit>"u"||i.scaleToFit,m=o*no(s,ro(f,u),i.rotation,p?i.center:{x:.5,y:.5});d.width=Math.round(c.width/m),d.height=Math.round(c.height/m),h.x/=m,h.y/=m;let g={x:h.x-s.width*(i.center?i.center.x:.5),y:h.y-s.height*(i.center?i.center.y:.5)},b=d.getContext("2d");r&&(b.fillStyle=r,b.fillRect(0,0,d.width,d.height)),b.translate(h.x,h.y),b.rotate(i.rotation||0),b.drawImage(l,g.x-h.x,g.y-h.y,s.width,s.height);let E=b.getImageData(0,0,d.width,d.height);return oo(d),E},tf=(()=>typeof window<"u"&&typeof window.document<"u")();tf&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){var a=this.toDataURL(t,i).split(",")[1];setTimeout(function(){for(var n=atob(a),r=n.length,o=new Uint8Array(r),l=0;lnew Promise(a=>{let n=i?i(e):e;Promise.resolve(n).then(r=>{r.toBlob(a,t.type,t.quality)})}),gi=(e,t)=>Vt(e.x*t,e.y*t),Ei=(e,t)=>Vt(e.x+t.x,e.y+t.y),lo=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:Vt(e.x/t,e.y/t)},ke=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),r=Vt(e.x-i.x,e.y-i.y);return Vt(i.x+a*r.x-n*r.y,i.y+n*r.x+a*r.y)},Vt=(e=0,t=0)=>({x:e,y:t}),ce=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},it=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",o=ce(e.borderWidth||e.lineWidth,t,i),l=e.lineCap||"round",s=e.lineJoin||"round",u=typeof a=="string"?"":a.map(d=>ce(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":l,"stroke-linejoin":s,"stroke-width":o||0,"stroke-dasharray":u,stroke:r,fill:n,opacity:c}},Se=e=>e!=null,It=(e,t,i=1)=>{let a=ce(e.x,t,i,"width")||ce(e.left,t,i,"width"),n=ce(e.y,t,i,"height")||ce(e.top,t,i,"height"),r=ce(e.width,t,i,"width"),o=ce(e.height,t,i,"height"),l=ce(e.right,t,i,"width"),s=ce(e.bottom,t,i,"height");return Se(n)||(Se(o)&&Se(s)?n=t.height-o-s:n=s),Se(a)||(Se(r)&&Se(l)?a=t.width-r-l:a=l),Se(r)||(Se(a)&&Se(l)?r=t.width-a-l:r=0),Se(o)||(Se(n)&&Se(s)?o=t.height-n-s:o=0),{x:a||0,y:n||0,width:r||0,height:o||0}},nf=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),Pe=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),rf="http://www.w3.org/2000/svg",Tt=(e,t)=>{let i=document.createElementNS(rf,e);return t&&Pe(i,t),i},of=e=>Pe(e,{...e.rect,...e.styles}),lf=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return Pe(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},sf={contain:"xMidYMid meet",cover:"xMidYMid slice"},cf=(e,t)=>{Pe(e,{...e.rect,...e.styles,preserveAspectRatio:sf[t.fit]||"none"})},df={left:"start",center:"middle",right:"end"},uf=(e,t,i,a)=>{let n=ce(t.fontSize,i,a),r=t.fontFamily||"sans-serif",o=t.fontWeight||"normal",l=df[t.textAlign]||"start";Pe(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":o,"font-size":n,"font-family":r,"text-anchor":l}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},hf=(e,t,i,a)=>{Pe(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],r=e.childNodes[1],o=e.childNodes[2],l=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(Pe(n,{x1:l.x,y1:l.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;r.style.display="none",o.style.display="none";let u=lo({x:s.x-l.x,y:s.y-l.y}),c=ce(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=gi(u,c),h=Ei(l,d),f=ke(l,2,h),p=ke(l,-2,h);Pe(r,{style:"display:block;",d:`M${f.x},${f.y} L${l.x},${l.y} L${p.x},${p.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=gi(u,-c),h=Ei(s,d),f=ke(s,2,h),p=ke(s,-2,h);Pe(o,{style:"display:block;",d:`M${f.x},${f.y} L${s.x},${s.y} L${p.x},${p.y}`})}},ff=(e,t,i,a)=>{Pe(e,{...e.styles,fill:"none",d:nf(t.points.map(n=>({x:ce(n.x,i,a,"width"),y:ce(n.y,i,a,"height")})))})},mi=e=>t=>Tt(e,{id:t.id}),pf=e=>{let t=Tt("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},mf=e=>{let t=Tt("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=Tt("line");t.appendChild(i);let a=Tt("path");t.appendChild(a);let n=Tt("path");return t.appendChild(n),t},gf={image:pf,rect:mi("rect"),ellipse:mi("ellipse"),text:mi("text"),path:mi("path"),line:mf},Ef={rect:of,ellipse:lf,image:cf,text:uf,path:ff,line:hf},Tf=(e,t)=>gf[e](t),If=(e,t,i,a,n)=>{t!=="path"&&(e.rect=It(i,a,n)),e.styles=it(i,a,n),Ef[t](e,i,a,n)},so=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexnew Promise(n=>{let{background:r=null}=a,o=new FileReader;o.onloadend=()=>{let l=o.result,s=document.createElement("div");s.style.cssText="position:absolute;pointer-events:none;width:0;height:0;visibility:hidden;",s.innerHTML=l;let u=s.querySelector("svg");document.body.appendChild(s);let c=u.getBBox();s.parentNode.removeChild(s);let d=s.querySelector("title"),h=u.getAttribute("viewBox")||"",f=u.getAttribute("width")||"",p=u.getAttribute("height")||"",m=parseFloat(f)||null,g=parseFloat(p)||null,b=(f.match(/[a-z]+/)||[])[0]||"",E=(p.match(/[a-z]+/)||[])[0]||"",T=h.split(" ").map(parseFloat),_=T.length?{x:T[0],y:T[1],width:T[2],height:T[3]}:c,y=m??_.width,I=g??_.height;u.style.overflow="visible",u.setAttribute("width",y),u.setAttribute("height",I);let v="";if(i&&i.length){let j={width:y,height:I};v=i.sort(so).reduce((se,k)=>{let W=Tf(k[0],k[1]);return If(W,k[0],k[1],j),W.removeAttribute("id"),W.getAttribute("opacity")===1&&W.removeAttribute("opacity"),se+` +`+W.outerHTML+` +`},""),v=` + +${v.replace(/ /g," ")} + +`}let R=t.aspectRatio||I/y,S=y,D=S*R,x=typeof t.scaleToFit>"u"||t.scaleToFit,O=t.center?t.center.x:.5,B=t.center?t.center.y:.5,A=no({width:y,height:I},ro({width:S,height:D},R),t.rotation,x?{x:O,y:B}:{x:.5,y:.5}),F=t.zoom*A,w=t.rotation*(180/Math.PI),L={x:S*.5,y:D*.5},N={x:L.x-y*O,y:L.y-I*B},P=[`rotate(${w} ${L.x} ${L.y})`,`translate(${L.x} ${L.y})`,`scale(${F})`,`translate(${-L.x} ${-L.y})`,`translate(${N.x} ${N.y})`],U=t.flip&&t.flip.horizontal,V=t.flip&&t.flip.vertical,q=[`scale(${U?-1:1} ${V?-1:1})`,`translate(${U?-y:0} ${V?-I:0})`],X=` + + +${d?d.textContent:""} + + +${u.outerHTML}${v} + + +`;n(X)},o.readAsText(e)}),_f=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(e.data),t},Rf=()=>{let e={resize:c,filter:u},t=(d,h)=>(d.forEach(f=>{h=e[f.type](h,f.data)}),h),i=(d,h)=>{let f=d.transforms,p=null;if(f.forEach(m=>{m.type==="filter"&&(p=m)}),p){let m=null;f.forEach(g=>{g.type==="resize"&&(m=g)}),m&&(m.data.matrix=p.data,f=f.filter(g=>g.type!=="filter"))}h(t(f,d.imageData))};self.onmessage=d=>{i(d.data.message,h=>{self.postMessage({id:d.data.id,message:h},[h.data.buffer])})};let a=1,n=1,r=1;function o(d,h,f){let p=h[d]/255,m=h[d+1]/255,g=h[d+2]/255,b=h[d+3]/255,E=p*f[0]+m*f[1]+g*f[2]+b*f[3]+f[4],T=p*f[5]+m*f[6]+g*f[7]+b*f[8]+f[9],_=p*f[10]+m*f[11]+g*f[12]+b*f[13]+f[14],y=p*f[15]+m*f[16]+g*f[17]+b*f[18]+f[19],I=Math.max(0,E*y)+a*(1-y),v=Math.max(0,T*y)+n*(1-y),R=Math.max(0,_*y)+r*(1-y);h[d]=Math.max(0,Math.min(1,I))*255,h[d+1]=Math.max(0,Math.min(1,v))*255,h[d+2]=Math.max(0,Math.min(1,R))*255}let l=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function s(d){return self.JSON.stringify(d||[])===l}function u(d,h){if(!h||s(h))return d;let f=d.data,p=f.length,m=h[0],g=h[1],b=h[2],E=h[3],T=h[4],_=h[5],y=h[6],I=h[7],v=h[8],R=h[9],S=h[10],D=h[11],x=h[12],O=h[13],B=h[14],A=h[15],F=h[16],w=h[17],L=h[18],N=h[19],P=0,U=0,V=0,q=0,X=0,j=0,se=0,k=0,W=0,C=0,z=0,G=0;for(;P1&&p===!1)return u(d,b);m=d.width*A,g=d.height*A}let E=d.width,T=d.height,_=Math.round(m),y=Math.round(g),I=d.data,v=new Uint8ClampedArray(_*y*4),R=E/_,S=T/y,D=Math.ceil(R*.5),x=Math.ceil(S*.5);for(let O=0;O=-1&&z<=1&&(F=2*z*z*z-3*z*z+1,F>0)){C=4*(W+X*E);let G=I[C+3];V+=F*G,L+=F,G<255&&(F=F*G/250),N+=F*I[C],P+=F*I[C+1],U+=F*I[C+2],w+=F}}}v[A]=N/w,v[A+1]=P/w,v[A+2]=U/w,v[A+3]=V/L,b&&o(A,v,b)}return{data:v,width:_,height:y}}},yf=(e,t)=>{if(e.getUint32(t+4,!1)!==1165519206)return;t+=4;let i=e.getUint16(t+=6,!1)===18761;t+=e.getUint32(t+4,i);let a=e.getUint16(t,i);t+=2;for(let n=0;n{let t=new DataView(e);if(t.getUint16(0)!==65496)return null;let i=2,a,n,r=!1;for(;i=65504&&a<=65519||a===65534)||(r||(r=yf(t,i,n)),i+n>t.byteLength)));)i+=n;return e.slice(0,i)},wf=e=>new Promise(t=>{let i=new FileReader;i.onload=()=>t(Sf(i.result)||null),i.readAsArrayBuffer(e.slice(0,256*1024))}),vf=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,Af=(e,t)=>{let i=vf();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},Lf=()=>Math.random().toString(36).substr(2,9),Mf=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i),n=[];return{transfer:()=>{},post:(r,o,l)=>{let s=Lf();n[s]=o,a.onmessage=u=>{let c=n[u.data.id];c&&(c(u.data.message),delete n[u.data.id])},a.postMessage({id:s,message:r},l)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},Of=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),xf=e=>e.reduce((t,i)=>t.then(a=>i().then(Array.prototype.concat.bind(a))),Promise.resolve([])),Df=(e,t)=>new Promise(i=>{let a={width:e.width,height:e.height},n=e.getContext("2d"),r=t.sort(so).map(o=>()=>new Promise(l=>{Gf[o[0]](n,a,o[1],l)&&l()}));xf(r).then(()=>i(e))}),bt=(e,t)=>{e.beginPath(),e.lineCap=t["stroke-linecap"],e.lineJoin=t["stroke-linejoin"],e.lineWidth=t["stroke-width"],t["stroke-dasharray"].length&&e.setLineDash(t["stroke-dasharray"].split(",")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},_t=e=>{e.fill(),e.stroke(),e.globalAlpha=1},Pf=(e,t,i)=>{let a=It(i,t),n=it(i,t);return bt(e,n),e.rect(a.x,a.y,a.width,a.height),_t(e,n),!0},Ff=(e,t,i)=>{let a=It(i,t),n=it(i,t);bt(e,n);let r=a.x,o=a.y,l=a.width,s=a.height,u=.5522848,c=l/2*u,d=s/2*u,h=r+l,f=o+s,p=r+l/2,m=o+s/2;return e.moveTo(r,m),e.bezierCurveTo(r,m-d,p-c,o,p,o),e.bezierCurveTo(p+c,o,h,m-d,h,m),e.bezierCurveTo(h,m+d,p+c,f,p,f),e.bezierCurveTo(p-c,f,r,m+d,r,m),_t(e,n),!0},Cf=(e,t,i,a)=>{let n=It(i,t),r=it(i,t);bt(e,r);let o=new Image;new URL(i.src,window.location.href).origin!==window.location.origin&&(o.crossOrigin=""),o.onload=()=>{if(i.fit==="cover"){let s=n.width/n.height,u=s>1?o.width:o.height*s,c=s>1?o.width/s:o.height,d=o.width*.5-u*.5,h=o.height*.5-c*.5;e.drawImage(o,d,h,u,c,n.x,n.y,n.width,n.height)}else if(i.fit==="contain"){let s=Math.min(n.width/o.width,n.height/o.height),u=s*o.width,c=s*o.height,d=n.x+n.width*.5-u*.5,h=n.y+n.height*.5-c*.5;e.drawImage(o,0,0,o.width,o.height,d,h,u,c)}else e.drawImage(o,0,0,o.width,o.height,n.x,n.y,n.width,n.height);_t(e,r),a()},o.src=i.src},zf=(e,t,i)=>{let a=It(i,t),n=it(i,t);bt(e,n);let r=ce(i.fontSize,t),o=i.fontFamily||"sans-serif",l=i.fontWeight||"normal",s=i.textAlign||"left";return e.font=`${l} ${r}px ${o}`,e.textAlign=s,e.fillText(i.text,a.x,a.y),_t(e,n),!0},Nf=(e,t,i)=>{let a=it(i,t);bt(e,a),e.beginPath();let n=i.points.map(o=>({x:ce(o.x,t,1,"width"),y:ce(o.y,t,1,"height")}));e.moveTo(n[0].x,n[0].y);let r=n.length;for(let o=1;o{let a=It(i,t),n=it(i,t);bt(e,n),e.beginPath();let r={x:a.x,y:a.y},o={x:a.x+a.width,y:a.y+a.height};e.moveTo(r.x,r.y),e.lineTo(o.x,o.y);let l=lo({x:o.x-r.x,y:o.y-r.y}),s=.04*Math.min(t.width,t.height);if(i.lineDecoration.indexOf("arrow-begin")!==-1){let u=gi(l,s),c=Ei(r,u),d=ke(r,2,c),h=ke(r,-2,c);e.moveTo(d.x,d.y),e.lineTo(r.x,r.y),e.lineTo(h.x,h.y)}if(i.lineDecoration.indexOf("arrow-end")!==-1){let u=gi(l,-s),c=Ei(o,u),d=ke(o,2,c),h=ke(o,-2,c);e.moveTo(d.x,d.y),e.lineTo(o.x,o.y),e.lineTo(h.x,h.y)}return _t(e,n),!0},Gf={rect:Pf,ellipse:Ff,image:Cf,text:zf,line:Bf,path:Nf},Vf=e=>{let t=document.createElement("canvas");return t.width=e.width,t.height=e.height,t.getContext("2d").putImageData(e,0,0),t},Uf=(e,t,i={})=>new Promise((a,n)=>{if(!e||!qh(e))return n({status:"not an image file",file:e});let{stripImageHead:r,beforeCreateBlob:o,afterCreateBlob:l,canvasMemoryLimit:s}=i,{crop:u,size:c,filter:d,markup:h,output:f}=t,p=t.image&&t.image.orientation?Math.max(1,Math.min(8,t.image.orientation)):null,m=f&&f.quality,g=m===null?null:m/100,b=f&&f.type||null,E=f&&f.background||null,T=[];c&&(typeof c.width=="number"||typeof c.height=="number")&&T.push({type:"resize",data:c}),d&&d.length===20&&T.push({type:"filter",data:d});let _=v=>{let R=l?l(v):v;Promise.resolve(R).then(a)},y=(v,R)=>{let S=Vf(v),D=h.length?Df(S,h):S;Promise.resolve(D).then(x=>{af(x,R,o).then(O=>{if(oo(x),r)return _(O);wf(e).then(B=>{B!==null&&(O=new Blob([B,O.slice(20)],{type:O.type})),_(O)})}).catch(n)})};if(/svg/.test(e.type)&&b===null)return bf(e,u,h,{background:E}).then(v=>{a(Af(v,"image/svg+xml"))});let I=URL.createObjectURL(e);Of(I).then(v=>{URL.revokeObjectURL(I);let R=ef(v,p,u,{canvasMemoryLimit:s,background:E}),S={quality:g,type:b||e.type};if(!T.length)return y(R,S);let D=Mf(Rf);D.post({transforms:T,imageData:R},x=>{y(_f(x),S),D.terminate()},[R.data.buffer])}).catch(n)}),kf=["x","y","left","top","right","bottom","width","height"],Hf=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,Wf=e=>{let[t,i]=e,a=i.points?{}:kf.reduce((n,r)=>(n[r]=Hf(i[r]),n),{});return[t,{zIndex:0,...i,...a}]},Yf=e=>new Promise((t,i)=>{let a=new Image;a.src=URL.createObjectURL(e);let n=()=>{let o=a.naturalWidth,l=a.naturalHeight;o&&l&&(URL.revokeObjectURL(a.src),clearInterval(r),t({width:o,height:l}))};a.onerror=o=>{URL.revokeObjectURL(a.src),clearInterval(r),i(o)};let r=setInterval(n,1);n()});typeof window<"u"&&typeof window.document<"u"&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){let a=this;setTimeout(()=>{let n=a.toDataURL(t,i).split(",")[1],r=atob(n),o=r.length,l=new Uint8Array(o);for(;o--;)l[o]=r.charCodeAt(o);e(new Blob([l],{type:t||"image/png"}))})}}));var Ta=typeof window<"u"&&typeof window.document<"u",$f=Ta&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,co=({addFilter:e,utils:t})=>{let{Type:i,forin:a,getFileFromBlob:n,isFile:r}=t,o=["crop","resize","filter","markup","output"],l=c=>(d,h,f)=>d(h,c?c(f):f),s=c=>c.aspectRatio===null&&c.rotation===0&&c.zoom===1&&c.center&&c.center.x===.5&&c.center.y===.5&&c.flip&&c.flip.horizontal===!1&&c.flip.vertical===!1;e("SHOULD_PREPARE_OUTPUT",(c,{query:d})=>new Promise(h=>{h(!d("IS_ASYNC"))}));let u=(c,d,h)=>new Promise(f=>{if(!c("GET_ALLOW_IMAGE_TRANSFORM")||h.archived||!r(d)||!kh(d))return f(!1);Yf(d).then(()=>{let p=c("GET_IMAGE_TRANSFORM_IMAGE_FILTER");if(p){let m=p(d);if(m==null)return handleRevert(!0);if(typeof m=="boolean")return f(m);if(typeof m.then=="function")return m.then(f)}f(!0)}).catch(p=>{f(!1)})});return e("DID_CREATE_ITEM",(c,{query:d,dispatch:h})=>{d("GET_ALLOW_IMAGE_TRANSFORM")&&c.extend("requestPrepare",()=>new Promise((f,p)=>{h("REQUEST_PREPARE_OUTPUT",{query:c.id,item:c,success:f,failure:p},!0)}))}),e("PREPARE_OUTPUT",(c,{query:d,item:h})=>new Promise(f=>{u(d,c,h).then(p=>{if(!p)return f(c);let m=[];d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_ORIGINAL")&&m.push(()=>new Promise(R=>{R({name:d("GET_IMAGE_TRANSFORM_VARIANTS_ORIGINAL_NAME"),file:c})})),d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_DEFAULT")&&m.push((R,S,D)=>new Promise(x=>{R(S,D).then(O=>x({name:d("GET_IMAGE_TRANSFORM_VARIANTS_DEFAULT_NAME"),file:O}))}));let g=d("GET_IMAGE_TRANSFORM_VARIANTS")||{};a(g,(R,S)=>{let D=l(S);m.push((x,O,B)=>new Promise(A=>{D(x,O,B).then(F=>A({name:R,file:F}))}))});let b=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY"),E=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY_MODE"),T=b===null?null:b/100,_=d("GET_IMAGE_TRANSFORM_OUTPUT_MIME_TYPE"),y=d("GET_IMAGE_TRANSFORM_CLIENT_TRANSFORMS")||o;h.setMetadata("output",{type:_,quality:T,client:y},!0);let I=(R,S)=>new Promise((D,x)=>{let O={...S};Object.keys(O).filter(V=>V!=="exif").forEach(V=>{y.indexOf(V)===-1&&delete O[V]});let{resize:B,exif:A,output:F,crop:w,filter:L,markup:N}=O,P={image:{orientation:A?A.orientation:null},output:F&&(F.type||typeof F.quality=="number"||F.background)?{type:F.type,quality:typeof F.quality=="number"?F.quality*100:null,background:F.background||d("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||null}:void 0,size:B&&(B.size.width||B.size.height)?{mode:B.mode,upscale:B.upscale,...B.size}:void 0,crop:w&&!s(w)?{...w}:void 0,markup:N&&N.length?N.map(Wf):[],filter:L};if(P.output){let V=F.type?F.type!==R.type:!1,q=/\/jpe?g$/.test(R.type),X=F.quality!==null?q&&E==="always":!1;if(!!!(P.size||P.crop||P.filter||V||X))return D(R)}let U={beforeCreateBlob:d("GET_IMAGE_TRANSFORM_BEFORE_CREATE_BLOB"),afterCreateBlob:d("GET_IMAGE_TRANSFORM_AFTER_CREATE_BLOB"),canvasMemoryLimit:d("GET_IMAGE_TRANSFORM_CANVAS_MEMORY_LIMIT"),stripImageHead:d("GET_IMAGE_TRANSFORM_OUTPUT_STRIP_IMAGE_HEAD")};Uf(R,P,U).then(V=>{let q=n(V,Yh(R.name,$h(V.type)));D(q)}).catch(x)}),v=m.map(R=>R(I,c,h.getMetadata()));Promise.all(v).then(R=>{f(R.length===1&&R[0].name===null?R[0].file:R)})})})),{options:{allowImageTransform:[!0,i.BOOLEAN],imageTransformImageFilter:[null,i.FUNCTION],imageTransformOutputMimeType:[null,i.STRING],imageTransformOutputQuality:[null,i.INT],imageTransformOutputStripImageHead:[!0,i.BOOLEAN],imageTransformClientTransforms:[null,i.ARRAY],imageTransformOutputQualityMode:["always",i.STRING],imageTransformVariants:[null,i.OBJECT],imageTransformVariantsIncludeDefault:[!0,i.BOOLEAN],imageTransformVariantsDefaultName:[null,i.STRING],imageTransformVariantsIncludeOriginal:[!1,i.BOOLEAN],imageTransformVariantsOriginalName:["original_",i.STRING],imageTransformBeforeCreateBlob:[null,i.FUNCTION],imageTransformAfterCreateBlob:[null,i.FUNCTION],imageTransformCanvasMemoryLimit:[Ta&&$f?4096*4096:null,i.INT],imageTransformCanvasBackgroundColor:[null,i.STRING]}}};Ta&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:co}));var uo=co;var Ia=e=>/^video/.test(e.type),Ut=e=>/^audio/.test(e.type),ba=class{constructor(t,i){this.mediaEl=t,this.audioElems=i,this.onplayhead=!1,this.duration=0,this.timelineWidth=this.audioElems.timeline.offsetWidth-this.audioElems.playhead.offsetWidth,this.moveplayheadFn=this.moveplayhead.bind(this),this.registerListeners()}registerListeners(){this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1),this.mediaEl.addEventListener("canplaythrough",()=>this.duration=this.mediaEl.duration,!1),this.audioElems.timeline.addEventListener("click",this.timelineClicked.bind(this),!1),this.audioElems.button.addEventListener("click",this.play.bind(this)),this.audioElems.playhead.addEventListener("mousedown",this.mouseDown.bind(this),!1),window.addEventListener("mouseup",this.mouseUp.bind(this),!1)}play(){this.mediaEl.paused?this.mediaEl.play():this.mediaEl.pause(),this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause")}timeUpdate(){let t=this.mediaEl.currentTime/this.duration*100;this.audioElems.playhead.style.marginLeft=t+"%",this.mediaEl.currentTime===this.duration&&(this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause"))}moveplayhead(t){let i=t.clientX-this.getPosition(this.audioElems.timeline);i>=0&&i<=this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=i+"px"),i<0&&(this.audioElems.playhead.style.marginLeft="0px"),i>this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=this.timelineWidth-4+"px")}timelineClicked(t){this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t)}mouseDown(){this.onplayhead=!0,window.addEventListener("mousemove",this.moveplayheadFn,!0),this.mediaEl.removeEventListener("timeupdate",this.timeUpdate.bind(this),!1)}mouseUp(t){window.removeEventListener("mousemove",this.moveplayheadFn,!0),this.onplayhead==!0&&(this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t),this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1)),this.onplayhead=!1}clickPercent(t){return(t.clientX-this.getPosition(this.audioElems.timeline))/this.timelineWidth}getPosition(t){return t.getBoundingClientRect().left}},qf=e=>e.utils.createView({name:"media-preview",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id}),r=Ut(n.file)?"audio":"video";if(t.ref.media=document.createElement(r),t.ref.media.setAttribute("controls",!0),t.element.appendChild(t.ref.media),Ut(n.file)){let o=document.createDocumentFragment();t.ref.audio=[],t.ref.audio.container=document.createElement("div"),t.ref.audio.button=document.createElement("span"),t.ref.audio.timeline=document.createElement("div"),t.ref.audio.playhead=document.createElement("div"),t.ref.audio.container.className="audioplayer",t.ref.audio.button.className="playpausebtn play",t.ref.audio.timeline.className="timeline",t.ref.audio.playhead.className="playhead",t.ref.audio.timeline.appendChild(t.ref.audio.playhead),t.ref.audio.container.appendChild(t.ref.audio.button),t.ref.audio.container.appendChild(t.ref.audio.timeline),o.appendChild(t.ref.audio.container),t.element.appendChild(o)}},write:e.utils.createRoute({DID_MEDIA_PREVIEW_LOAD:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id});if(!n)return;let r=window.URL||window.webkitURL,o=new Blob([n.file],{type:n.file.type});t.ref.media.type=n.file.type,t.ref.media.src=n.file.mock&&n.file.url||r.createObjectURL(o),Ut(n.file)&&new ba(t.ref.media,t.ref.audio),t.ref.media.addEventListener("loadeddata",()=>{let l=75;if(Ia(n.file)){let s=t.ref.media.offsetWidth,u=t.ref.media.videoWidth/s;l=t.ref.media.videoHeight/u}t.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:i.id,height:l})},!1)}})}),Xf=e=>{let t=({root:a,props:n})=>{let{id:r}=n;a.query("GET_ITEM",r)&&a.dispatch("DID_MEDIA_PREVIEW_LOAD",{id:r})},i=({root:a,props:n})=>{let r=qf(e);a.ref.media=a.appendChildView(a.createChildView(r,{id:n.id}))};return e.utils.createView({name:"media-preview-wrapper",create:i,write:e.utils.createRoute({DID_MEDIA_PREVIEW_CONTAINER_CREATE:t})})},_a=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n}=i,r=Xf(e);return t("CREATE_VIEW",o=>{let{is:l,view:s,query:u}=o;if(!l("file"))return;let c=({root:d,props:h})=>{let{id:f}=h,p=u("GET_ITEM",f),m=u("GET_ALLOW_VIDEO_PREVIEW"),g=u("GET_ALLOW_AUDIO_PREVIEW");!p||p.archived||(!Ia(p.file)||!m)&&(!Ut(p.file)||!g)||(d.ref.mediaPreview=s.appendChildView(s.createChildView(r,{id:f})),d.dispatch("DID_MEDIA_PREVIEW_CONTAINER_CREATE",{id:f}))};s.registerWriter(n({DID_LOAD_ITEM:c},({root:d,props:h})=>{let{id:f}=h,p=u("GET_ITEM",f),m=d.query("GET_ALLOW_VIDEO_PREVIEW"),g=d.query("GET_ALLOW_AUDIO_PREVIEW");!p||(!Ia(p.file)||!m)&&(!Ut(p.file)||!g)||d.rect.element.hidden}))}),{options:{allowVideoPreview:[!0,a.BOOLEAN],allowAudioPreview:[!0,a.BOOLEAN]}}},jf=typeof window<"u"&&typeof window.document<"u";jf&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:_a}));var ho={labelIdle:'\u0627\u0633\u062D\u0628 \u0648 \u0627\u062F\u0631\u062C \u0645\u0644\u0641\u0627\u062A\u0643 \u0623\u0648 \u062A\u0635\u0641\u062D ',labelInvalidField:"\u0627\u0644\u062D\u0642\u0644 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062A \u063A\u064A\u0631 \u0635\u0627\u0644\u062D\u0629",labelFileWaitingForSize:"\u0628\u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u062D\u062C\u0645",labelFileSizeNotAvailable:"\u0627\u0644\u062D\u062C\u0645 \u063A\u064A\u0631 \u0645\u062A\u0627\u062D",labelFileLoading:"\u0628\u0627\u0644\u0625\u0646\u062A\u0638\u0627\u0631",labelFileLoadError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u062D\u0645\u064A\u0644",labelFileProcessing:"\u064A\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingComplete:"\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingAborted:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingRevertError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u0631\u0627\u062C\u0639",labelFileRemoveError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062D\u0630\u0641",labelTapToCancel:"\u0627\u0646\u0642\u0631 \u0644\u0644\u0625\u0644\u063A\u0627\u0621",labelTapToRetry:"\u0627\u0646\u0642\u0631 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629",labelTapToUndo:"\u0627\u0646\u0642\u0631 \u0644\u0644\u062A\u0631\u0627\u062C\u0639",labelButtonRemoveItem:"\u0645\u0633\u062D",labelButtonAbortItemLoad:"\u0625\u0644\u063A\u0627\u0621",labelButtonRetryItemLoad:"\u0625\u0639\u0627\u062F\u0629",labelButtonAbortItemProcessing:"\u0625\u0644\u063A\u0627\u0621",labelButtonUndoItemProcessing:"\u062A\u0631\u0627\u062C\u0639",labelButtonRetryItemProcessing:"\u0625\u0639\u0627\u062F\u0629",labelButtonProcessItem:"\u0631\u0641\u0639",labelMaxFileSizeExceeded:"\u0627\u0644\u0645\u0644\u0641 \u0643\u0628\u064A\u0631 \u062C\u062F\u0627",labelMaxFileSize:"\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0623\u0642\u0635\u0649: {filesize}",labelMaxTotalFileSizeExceeded:"\u062A\u0645 \u062A\u062C\u0627\u0648\u0632 \u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u062D\u062C\u0645 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A",labelMaxTotalFileSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641: {filesize}",labelFileTypeNotAllowed:"\u0645\u0644\u0641 \u0645\u0646 \u0646\u0648\u0639 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",fileValidateTypeLabelExpectedTypes:"\u062A\u062A\u0648\u0642\u0639 {allButLastType} \u0645\u0646 {lastType}",imageValidateSizeLabelFormatError:"\u0646\u0648\u0639 \u0627\u0644\u0635\u0648\u0631\u0629 \u063A\u064A\u0631 \u0645\u062F\u0639\u0648\u0645",imageValidateSizeLabelImageSizeTooSmall:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0635\u063A\u064A\u0631 \u062C\u062F\u0627",imageValidateSizeLabelImageSizeTooBig:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0643\u0628\u064A\u0631\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0627\u0644\u062F\u0642\u0629 \u0636\u0639\u064A\u0641\u0629 \u062C\u062F\u0627",imageValidateSizeLabelImageResolutionTooHigh:"\u0627\u0644\u062F\u0642\u0629 \u0645\u0631\u062A\u0641\u0639\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinResolution:"\u0623\u0642\u0644 \u062F\u0642\u0629: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0623\u0642\u0635\u0649 \u062F\u0642\u0629: {maxResolution}"};var fo={labelIdle:'P\u0159et\xE1hn\u011Bte soubor sem (drag&drop) nebo Vyhledat ',labelInvalidField:"Pole obsahuje chybn\xE9 soubory",labelFileWaitingForSize:"Zji\u0161\u0165uje se velikost",labelFileSizeNotAvailable:"Velikost nen\xED zn\xE1m\xE1",labelFileLoading:"P\u0159en\xE1\u0161\xED se",labelFileLoadError:"Chyba p\u0159i p\u0159enosu",labelFileProcessing:"Prob\xEDh\xE1 upload",labelFileProcessingComplete:"Upload dokon\u010Den",labelFileProcessingAborted:"Upload stornov\xE1n",labelFileProcessingError:"Chyba p\u0159i uploadu",labelFileProcessingRevertError:"Chyba p\u0159i obnov\u011B",labelFileRemoveError:"Chyba p\u0159i odstran\u011Bn\xED",labelTapToCancel:"klepn\u011Bte pro storno",labelTapToRetry:"klepn\u011Bte pro opakov\xE1n\xED",labelTapToUndo:"klepn\u011Bte pro vr\xE1cen\xED",labelButtonRemoveItem:"Odstranit",labelButtonAbortItemLoad:"Storno",labelButtonRetryItemLoad:"Opakovat",labelButtonAbortItemProcessing:"Zp\u011Bt",labelButtonUndoItemProcessing:"Vr\xE1tit",labelButtonRetryItemProcessing:"Opakovat",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Soubor je p\u0159\xEDli\u0161 velk\xFD",labelMaxFileSize:"Nejv\u011Bt\u0161\xED velikost souboru je {filesize}",labelMaxTotalFileSizeExceeded:"P\u0159ekro\u010Dena maxim\xE1ln\xED celkov\xE1 velikost souboru",labelMaxTotalFileSize:"Maxim\xE1ln\xED celkov\xE1 velikost souboru je {filesize}",labelFileTypeNotAllowed:"Soubor je nespr\xE1vn\xE9ho typu",fileValidateTypeLabelExpectedTypes:"O\u010Dek\xE1v\xE1 se {allButLastType} nebo {lastType}",imageValidateSizeLabelFormatError:"Obr\xE1zek tohoto typu nen\xED podporov\xE1n",imageValidateSizeLabelImageSizeTooSmall:"Obr\xE1zek je p\u0159\xEDli\u0161 mal\xFD",imageValidateSizeLabelImageSizeTooBig:"Obr\xE1zek je p\u0159\xEDli\u0161 velk\xFD",imageValidateSizeLabelExpectedMinSize:"Minim\xE1ln\xED rozm\u011Br je {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maxim\xE1ln\xED rozm\u011Br je {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 mal\xE9",imageValidateSizeLabelImageResolutionTooHigh:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 velk\xE9",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1ln\xED rozli\u0161en\xED je {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1ln\xED rozli\u0161en\xED je {maxResolution}"};var po={labelIdle:'Tr\xE6k & slip filer eller Gennemse ',labelInvalidField:"Felt indeholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilg\xE6ngelig",labelFileLoading:"Loader",labelFileLoadError:"Load fejlede",labelFileProcessing:"Uploader",labelFileProcessingComplete:"Upload f\xE6rdig",labelFileProcessingAborted:"Upload annulleret",labelFileProcessingError:"Upload fejlede",labelFileProcessingRevertError:"Fortryd fejlede",labelFileRemoveError:"Fjern fejlede",labelTapToCancel:"tryk for at annullere",labelTapToRetry:"tryk for at pr\xF8ve igen",labelTapToUndo:"tryk for at fortryde",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Annuller",labelButtonRetryItemLoad:"Fors\xF8g igen",labelButtonAbortItemProcessing:"Annuller",labelButtonUndoItemProcessing:"Fortryd",labelButtonRetryItemProcessing:"Pr\xF8v igen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal totalst\xF8rrelse overskredet",labelMaxTotalFileSize:"Maksimal total filst\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Ugyldigt format",imageValidateSizeLabelImageSizeTooSmall:"Billedet er for lille",imageValidateSizeLabelImageSizeTooBig:"Billedet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimum st\xF8rrelse er {minBredde} \xD7 {minH\xF8jde}",imageValidateSizeLabelExpectedMaxSize:"Maksimal st\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"For lav opl\xF8sning",imageValidateSizeLabelImageResolutionTooHigh:"For h\xF8j opl\xF8sning",imageValidateSizeLabelExpectedMinResolution:"Minimum opl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal opl\xF8sning er {maxResolution}"};var mo={labelIdle:'Dateien ablegen oder ausw\xE4hlen ',labelInvalidField:"Feld beinhaltet ung\xFCltige Dateien",labelFileWaitingForSize:"Dateigr\xF6\xDFe berechnen",labelFileSizeNotAvailable:"Dateigr\xF6\xDFe nicht verf\xFCgbar",labelFileLoading:"Laden",labelFileLoadError:"Fehler beim Laden",labelFileProcessing:"Upload l\xE4uft",labelFileProcessingComplete:"Upload abgeschlossen",labelFileProcessingAborted:"Upload abgebrochen",labelFileProcessingError:"Fehler beim Upload",labelFileProcessingRevertError:"Fehler beim Wiederherstellen",labelFileRemoveError:"Fehler beim L\xF6schen",labelTapToCancel:"abbrechen",labelTapToRetry:"erneut versuchen",labelTapToUndo:"r\xFCckg\xE4ngig",labelButtonRemoveItem:"Entfernen",labelButtonAbortItemLoad:"Verwerfen",labelButtonRetryItemLoad:"Erneut versuchen",labelButtonAbortItemProcessing:"Abbrechen",labelButtonUndoItemProcessing:"R\xFCckg\xE4ngig",labelButtonRetryItemProcessing:"Erneut versuchen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Datei ist zu gro\xDF",labelMaxFileSize:"Maximale Dateigr\xF6\xDFe: {filesize}",labelMaxTotalFileSizeExceeded:"Maximale gesamte Dateigr\xF6\xDFe \xFCberschritten",labelMaxTotalFileSize:"Maximale gesamte Dateigr\xF6\xDFe: {filesize}",labelFileTypeNotAllowed:"Dateityp ung\xFCltig",fileValidateTypeLabelExpectedTypes:"Erwartet {allButLastType} oder {lastType}",imageValidateSizeLabelFormatError:"Bildtyp nicht unterst\xFCtzt",imageValidateSizeLabelImageSizeTooSmall:"Bild ist zu klein",imageValidateSizeLabelImageSizeTooBig:"Bild ist zu gro\xDF",imageValidateSizeLabelExpectedMinSize:"Mindestgr\xF6\xDFe: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale Gr\xF6\xDFe: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Aufl\xF6sung ist zu niedrig",imageValidateSizeLabelImageResolutionTooHigh:"Aufl\xF6sung ist zu hoch",imageValidateSizeLabelExpectedMinResolution:"Mindestaufl\xF6sung: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale Aufl\xF6sung: {maxResolution}"};var go={labelIdle:'Drag & Drop your files or Browse ',labelInvalidField:"Field contains invalid files",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"Size not available",labelFileLoading:"Loading",labelFileLoadError:"Error during load",labelFileProcessing:"Uploading",labelFileProcessingComplete:"Upload complete",labelFileProcessingAborted:"Upload cancelled",labelFileProcessingError:"Error during upload",labelFileProcessingRevertError:"Error during revert",labelFileRemoveError:"Error during remove",labelTapToCancel:"tap to cancel",labelTapToRetry:"tap to retry",labelTapToUndo:"tap to undo",labelButtonRemoveItem:"Remove",labelButtonAbortItemLoad:"Abort",labelButtonRetryItemLoad:"Retry",labelButtonAbortItemProcessing:"Cancel",labelButtonUndoItemProcessing:"Undo",labelButtonRetryItemProcessing:"Retry",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"File is too large",labelMaxFileSize:"Maximum file size is {filesize}",labelMaxTotalFileSizeExceeded:"Maximum total size exceeded",labelMaxTotalFileSize:"Maximum total file size is {filesize}",labelFileTypeNotAllowed:"File of invalid type",fileValidateTypeLabelExpectedTypes:"Expects {allButLastType} or {lastType}",imageValidateSizeLabelFormatError:"Image type not supported",imageValidateSizeLabelImageSizeTooSmall:"Image is too small",imageValidateSizeLabelImageSizeTooBig:"Image is too big",imageValidateSizeLabelExpectedMinSize:"Minimum size is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum size is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolution is too low",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimum resolution is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum resolution is {maxResolution}"};var Eo={labelIdle:'Arrastra y suelta tus archivos o Examinar ',labelInvalidField:"El campo contiene archivos inv\xE1lidos",labelFileWaitingForSize:"Esperando tama\xF1o",labelFileSizeNotAvailable:"Tama\xF1o no disponible",labelFileLoading:"Cargando",labelFileLoadError:"Error durante la carga",labelFileProcessing:"Cargando",labelFileProcessingComplete:"Carga completa",labelFileProcessingAborted:"Carga cancelada",labelFileProcessingError:"Error durante la carga",labelFileProcessingRevertError:"Error durante la reversi\xF3n",labelFileRemoveError:"Error durante la eliminaci\xF3n",labelTapToCancel:"toca para cancelar",labelTapToRetry:"tocar para volver a intentar",labelTapToUndo:"tocar para deshacer",labelButtonRemoveItem:"Eliminar",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reintentar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Deshacer",labelButtonRetryItemProcessing:"Reintentar",labelButtonProcessItem:"Cargar",labelMaxFileSizeExceeded:"El archivo es demasiado grande",labelMaxFileSize:"El tama\xF1o m\xE1ximo del archivo es {filesize}",labelMaxTotalFileSizeExceeded:"Tama\xF1o total m\xE1ximo excedido",labelMaxTotalFileSize:"El tama\xF1o total m\xE1ximo del archivo es {filesize}",labelFileTypeNotAllowed:"Archivo de tipo no v\xE1lido",fileValidateTypeLabelExpectedTypes:"Espera {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagen no compatible",imageValidateSizeLabelImageSizeTooSmall:"La imagen es demasiado peque\xF1a",imageValidateSizeLabelImageSizeTooBig:"La imagen es demasiado grande",imageValidateSizeLabelExpectedMinSize:"El tama\xF1o m\xEDnimo es {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"El tama\xF1o m\xE1ximo es {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La resoluci\xF3n es demasiado baja",imageValidateSizeLabelImageResolutionTooHigh:"La resoluci\xF3n es demasiado alta",imageValidateSizeLabelExpectedMinResolution:"La resoluci\xF3n m\xEDnima es {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La resoluci\xF3n m\xE1xima es {maxResolution}"};var To={labelIdle:'\u0641\u0627\u06CC\u0644 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0628\u06A9\u0634\u06CC\u062F \u0648 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F\u060C \u06CC\u0627 \u062C\u0633\u062A\u062C\u0648 \u06A9\u0646\u06CC\u062F ',labelInvalidField:"\u0641\u06CC\u0644\u062F \u062F\u0627\u0631\u0627\u06CC \u0641\u0627\u06CC\u0644 \u0647\u0627\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"\u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A",labelFileLoading:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileLoadError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0627\u062C\u0631\u0627",labelFileProcessing:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingComplete:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u06A9\u0627\u0645\u0644 \u0634\u062F",labelFileProcessingAborted:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0644\u063A\u0648 \u0634\u062F",labelFileProcessingError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingRevertError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelFileRemoveError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelTapToCancel:"\u0628\u0631\u0627\u06CC \u0644\u063A\u0648 \u0636\u0631\u0628\u0647 \u0628\u0632\u0646\u06CC\u062F",labelTapToRetry:"\u0628\u0631\u0627\u06CC \u062A\u06A9\u0631\u0627\u0631 \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelTapToUndo:"\u0628\u0631\u0627\u06CC \u0628\u0631\u06AF\u0634\u062A \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelButtonRemoveItem:"\u062D\u0630\u0641",labelButtonAbortItemLoad:"\u0644\u063A\u0648",labelButtonRetryItemLoad:"\u062A\u06A9\u0631\u0627\u0631",labelButtonAbortItemProcessing:"\u0644\u063A\u0648",labelButtonUndoItemProcessing:"\u0628\u0631\u06AF\u0634\u062A",labelButtonRetryItemProcessing:"\u062A\u06A9\u0631\u0627\u0631",labelButtonProcessItem:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelMaxFileSizeExceeded:"\u0641\u0627\u06CC\u0644 \u0628\u0633\u06CC\u0627\u0631 \u062D\u062C\u06CC\u0645 \u0627\u0633\u062A",labelMaxFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0645\u062C\u0627\u0632 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelMaxTotalFileSizeExceeded:"\u0627\u0632 \u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0628\u06CC\u0634\u062A\u0631 \u0634\u062F",labelMaxTotalFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelFileTypeNotAllowed:"\u0646\u0648\u0639 \u0641\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",fileValidateTypeLabelExpectedTypes:"\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 {allButLastType} \u06CC\u0627 {lastType}",imageValidateSizeLabelFormatError:"\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0646\u0645\u06CC \u0634\u0648\u062F",imageValidateSizeLabelImageSizeTooSmall:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0648\u0686\u06A9 \u0627\u0633\u062A",imageValidateSizeLabelImageSizeTooBig:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0628\u0632\u0631\u06AF \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinSize:"\u062D\u062F\u0627\u0642\u0644 \u0627\u0646\u062F\u0627\u0632\u0647 {minWidth} \xD7 {minHeight} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0627\u0646\u062F\u0627\u0632\u0647 {maxWidth} \xD7 {maxHeight} \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooLow:"\u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0645 \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooHigh:"\u0648\u0636\u0648\u0639 \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0632\u06CC\u0627\u062F \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinResolution:"\u062D\u062F\u0627\u0642\u0644 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {minResolution} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxResolution:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {maxResolution} \u0627\u0633\u062A"};var Io={labelIdle:'Ved\xE4 ja pudota tiedostoja tai Selaa ',labelInvalidField:"Kent\xE4ss\xE4 on virheellisi\xE4 tiedostoja",labelFileWaitingForSize:"Odotetaan kokoa",labelFileSizeNotAvailable:"Kokoa ei saatavilla",labelFileLoading:"Ladataan",labelFileLoadError:"Virhe latauksessa",labelFileProcessing:"L\xE4hetet\xE4\xE4n",labelFileProcessingComplete:"L\xE4hetys valmis",labelFileProcessingAborted:"L\xE4hetys peruttu",labelFileProcessingError:"Virhe l\xE4hetyksess\xE4",labelFileProcessingRevertError:"Virhe palautuksessa",labelFileRemoveError:"Virhe poistamisessa",labelTapToCancel:"peruuta napauttamalla",labelTapToRetry:"yrit\xE4 uudelleen napauttamalla",labelTapToUndo:"kumoa napauttamalla",labelButtonRemoveItem:"Poista",labelButtonAbortItemLoad:"Keskeyt\xE4",labelButtonRetryItemLoad:"Yrit\xE4 uudelleen",labelButtonAbortItemProcessing:"Peruuta",labelButtonUndoItemProcessing:"Kumoa",labelButtonRetryItemProcessing:"Yrit\xE4 uudelleen",labelButtonProcessItem:"L\xE4het\xE4",labelMaxFileSizeExceeded:"Tiedoston koko on liian suuri",labelMaxFileSize:"Tiedoston maksimikoko on {filesize}",labelMaxTotalFileSizeExceeded:"Tiedostojen yhdistetty maksimikoko ylitetty",labelMaxTotalFileSize:"Tiedostojen yhdistetty maksimikoko on {filesize}",labelFileTypeNotAllowed:"Tiedostotyyppi\xE4 ei sallita",fileValidateTypeLabelExpectedTypes:"Sallitaan {allButLastType} tai {lastType}",imageValidateSizeLabelFormatError:"Kuvatyyppi\xE4 ei tueta",imageValidateSizeLabelImageSizeTooSmall:"Kuva on liian pieni",imageValidateSizeLabelImageSizeTooBig:"Kuva on liian suuri",imageValidateSizeLabelExpectedMinSize:"Minimikoko on {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimikoko on {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resoluutio on liian pieni",imageValidateSizeLabelImageResolutionTooHigh:"Resoluutio on liian suuri",imageValidateSizeLabelExpectedMinResolution:"Minimiresoluutio on {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimiresoluutio on {maxResolution}"};var bo={labelIdle:'Faites glisser vos fichiers ou Parcourir ',labelInvalidField:"Le champ contient des fichiers invalides",labelFileWaitingForSize:"En attente de taille",labelFileSizeNotAvailable:"Taille non disponible",labelFileLoading:"Chargement",labelFileLoadError:"Erreur durant le chargement",labelFileProcessing:"Traitement",labelFileProcessingComplete:"Traitement effectu\xE9",labelFileProcessingAborted:"Traitement interrompu",labelFileProcessingError:"Erreur durant le traitement",labelFileProcessingRevertError:"Erreur durant la restauration",labelFileRemoveError:"Erreur durant la suppression",labelTapToCancel:"appuyer pour annuler",labelTapToRetry:"appuyer pour r\xE9essayer",labelTapToUndo:"appuyer pour revenir en arri\xE8re",labelButtonRemoveItem:"Retirer",labelButtonAbortItemLoad:"Annuler",labelButtonRetryItemLoad:"Recommencer",labelButtonAbortItemProcessing:"Annuler",labelButtonUndoItemProcessing:"Revenir en arri\xE8re",labelButtonRetryItemProcessing:"Recommencer",labelButtonProcessItem:"Transf\xE9rer",labelMaxFileSizeExceeded:"Le fichier est trop volumineux",labelMaxFileSize:"La taille maximale de fichier est {filesize}",labelMaxTotalFileSizeExceeded:"Taille totale maximale d\xE9pass\xE9e",labelMaxTotalFileSize:"La taille totale maximale des fichiers est {filesize}",labelFileTypeNotAllowed:"Fichier non valide",fileValidateTypeLabelExpectedTypes:"Attendu {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Type d'image non pris en charge",imageValidateSizeLabelImageSizeTooSmall:"L'image est trop petite",imageValidateSizeLabelImageSizeTooBig:"L'image est trop grande",imageValidateSizeLabelExpectedMinSize:"La taille minimale est {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La taille maximale est {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La r\xE9solution est trop faible",imageValidateSizeLabelImageResolutionTooHigh:"La r\xE9solution est trop \xE9lev\xE9e",imageValidateSizeLabelExpectedMinResolution:"La r\xE9solution minimale est {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La r\xE9solution maximale est {maxResolution}"};var _o={labelIdle:'Mozgasd ide a f\xE1jlt a felt\xF6lt\xE9shez, vagy tall\xF3z\xE1s ',labelInvalidField:"A mez\u0151 \xE9rv\xE9nytelen f\xE1jlokat tartalmaz",labelFileWaitingForSize:"F\xE1ljm\xE9ret kisz\xE1mol\xE1sa",labelFileSizeNotAvailable:"A f\xE1jlm\xE9ret nem el\xE9rhet\u0151",labelFileLoading:"T\xF6lt\xE9s",labelFileLoadError:"Hiba a bet\xF6lt\xE9s sor\xE1n",labelFileProcessing:"Felt\xF6lt\xE9s",labelFileProcessingComplete:"Sikeres felt\xF6lt\xE9s",labelFileProcessingAborted:"A felt\xF6lt\xE9s megszak\xEDtva",labelFileProcessingError:"Hiba t\xF6rt\xE9nt a felt\xF6lt\xE9s sor\xE1n",labelFileProcessingRevertError:"Hiba a vissza\xE1ll\xEDt\xE1s sor\xE1n",labelFileRemoveError:"Hiba t\xF6rt\xE9nt az elt\xE1vol\xEDt\xE1s sor\xE1n",labelTapToCancel:"koppints a t\xF6rl\xE9shez",labelTapToRetry:"koppints az \xFAjrakezd\xE9shez",labelTapToUndo:"koppints a visszavon\xE1shoz",labelButtonRemoveItem:"Elt\xE1vol\xEDt\xE1s",labelButtonAbortItemLoad:"Megszak\xEDt\xE1s",labelButtonRetryItemLoad:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonAbortItemProcessing:"Megszak\xEDt\xE1s",labelButtonUndoItemProcessing:"Visszavon\xE1s",labelButtonRetryItemProcessing:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonProcessItem:"Felt\xF6lt\xE9s",labelMaxFileSizeExceeded:"A f\xE1jl t\xFAll\xE9pte a maxim\xE1lis m\xE9retet",labelMaxFileSize:"Maxim\xE1lis f\xE1jlm\xE9ret: {filesize}",labelMaxTotalFileSizeExceeded:"T\xFAll\xE9pte a maxim\xE1lis teljes m\xE9retet",labelMaxTotalFileSize:"A maxim\xE1is teljes f\xE1jlm\xE9ret: {filesize}",labelFileTypeNotAllowed:"\xC9rv\xE9nytelen t\xEDpus\xFA f\xE1jl",fileValidateTypeLabelExpectedTypes:"Enged\xE9lyezett t\xEDpusok {allButLastType} vagy {lastType}",imageValidateSizeLabelFormatError:"A k\xE9pt\xEDpus nem t\xE1mogatott",imageValidateSizeLabelImageSizeTooSmall:"A k\xE9p t\xFAl kicsi",imageValidateSizeLabelImageSizeTooBig:"A k\xE9p t\xFAl nagy",imageValidateSizeLabelExpectedMinSize:"Minimum m\xE9ret: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum m\xE9ret: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"A felbont\xE1s t\xFAl alacsony",imageValidateSizeLabelImageResolutionTooHigh:"A felbont\xE1s t\xFAl magas",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1is felbont\xE1s: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1lis felbont\xE1s: {maxResolution}"};var Ro={labelIdle:'Seret & Jatuhkan berkas Anda atau Jelajahi',labelInvalidField:"Isian berisi berkas yang tidak valid",labelFileWaitingForSize:"Menunggu ukuran berkas",labelFileSizeNotAvailable:"Ukuran berkas tidak tersedia",labelFileLoading:"Memuat",labelFileLoadError:"Kesalahan saat memuat",labelFileProcessing:"Mengunggah",labelFileProcessingComplete:"Pengunggahan selesai",labelFileProcessingAborted:"Pengunggahan dibatalkan",labelFileProcessingError:"Kesalahan saat pengunggahan",labelFileProcessingRevertError:"Kesalahan saat pemulihan",labelFileRemoveError:"Kesalahan saat penghapusan",labelTapToCancel:"ketuk untuk membatalkan",labelTapToRetry:"ketuk untuk mencoba lagi",labelTapToUndo:"ketuk untuk mengurungkan",labelButtonRemoveItem:"Hapus",labelButtonAbortItemLoad:"Batalkan",labelButtonRetryItemLoad:"Coba Kembali",labelButtonAbortItemProcessing:"Batalkan",labelButtonUndoItemProcessing:"Urungkan",labelButtonRetryItemProcessing:"Coba Kembali",labelButtonProcessItem:"Unggah",labelMaxFileSizeExceeded:"Berkas terlalu besar",labelMaxFileSize:"Ukuran berkas maksimum adalah {filesize}",labelMaxTotalFileSizeExceeded:"Jumlah berkas maksimum terlampaui",labelMaxTotalFileSize:"Jumlah berkas maksimum adalah {filesize}",labelFileTypeNotAllowed:"Jenis berkas tidak valid",fileValidateTypeLabelExpectedTypes:"Mengharapkan {allButLastType} atau {lastType}",imageValidateSizeLabelFormatError:"Jenis citra tidak didukung",imageValidateSizeLabelImageSizeTooSmall:"Citra terlalu kecil",imageValidateSizeLabelImageSizeTooBig:"Citra terlalu besar",imageValidateSizeLabelExpectedMinSize:"Ukuran minimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Ukuran maksimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolusi terlalu rendah",imageValidateSizeLabelImageResolutionTooHigh:"Resolusi terlalu tinggi",imageValidateSizeLabelExpectedMinResolution:"Resolusi minimum adalah {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolusi maksimum adalah {maxResolution}"};var yo={labelIdle:'Trascina e rilascia i tuoi file oppure Carica ',labelInvalidField:"Il campo contiene dei file non validi",labelFileWaitingForSize:"Aspettando le dimensioni",labelFileSizeNotAvailable:"Dimensioni non disponibili",labelFileLoading:"Caricamento",labelFileLoadError:"Errore durante il caricamento",labelFileProcessing:"Caricamento",labelFileProcessingComplete:"Caricamento completato",labelFileProcessingAborted:"Caricamento cancellato",labelFileProcessingError:"Errore durante il caricamento",labelFileProcessingRevertError:"Errore durante il ripristino",labelFileRemoveError:"Errore durante l'eliminazione",labelTapToCancel:"tocca per cancellare",labelTapToRetry:"tocca per riprovare",labelTapToUndo:"tocca per ripristinare",labelButtonRemoveItem:"Elimina",labelButtonAbortItemLoad:"Cancella",labelButtonRetryItemLoad:"Ritenta",labelButtonAbortItemProcessing:"Camcella",labelButtonUndoItemProcessing:"Indietro",labelButtonRetryItemProcessing:"Ritenta",labelButtonProcessItem:"Carica",labelMaxFileSizeExceeded:"Il peso del file \xE8 eccessivo",labelMaxFileSize:"Il peso massimo del file \xE8 {filesize}",labelMaxTotalFileSizeExceeded:"Dimensione totale massima superata",labelMaxTotalFileSize:"La dimensione massima totale del file \xE8 {filesize}",labelFileTypeNotAllowed:"File non supportato",fileValidateTypeLabelExpectedTypes:"Aspetta {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo di immagine non compatibile",imageValidateSizeLabelImageSizeTooSmall:"L'immagine \xE8 troppo piccola",imageValidateSizeLabelImageSizeTooBig:"L'immagine \xE8 troppo grande",imageValidateSizeLabelExpectedMinSize:"La dimensione minima \xE8 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La dimensione massima \xE8 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La risoluzione \xE8 troppo bassa",imageValidateSizeLabelImageResolutionTooHigh:"La risoluzione \xE8 troppo alta",imageValidateSizeLabelExpectedMinResolution:"La risoluzione minima \xE8 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La risoluzione massima \xE8 {maxResolution}"};var So={labelIdle:'Drag & Drop je bestanden of Bladeren ',labelInvalidField:"Veld bevat ongeldige bestanden",labelFileWaitingForSize:"Wachten op grootte",labelFileSizeNotAvailable:"Grootte niet beschikbaar",labelFileLoading:"Laden",labelFileLoadError:"Fout tijdens laden",labelFileProcessing:"Uploaden",labelFileProcessingComplete:"Upload afgerond",labelFileProcessingAborted:"Upload geannuleerd",labelFileProcessingError:"Fout tijdens upload",labelFileProcessingRevertError:"Fout bij herstellen",labelFileRemoveError:"Fout bij verwijderen",labelTapToCancel:"tik om te annuleren",labelTapToRetry:"tik om opnieuw te proberen",labelTapToUndo:"tik om ongedaan te maken",labelButtonRemoveItem:"Verwijderen",labelButtonAbortItemLoad:"Afbreken",labelButtonRetryItemLoad:"Opnieuw proberen",labelButtonAbortItemProcessing:"Annuleren",labelButtonUndoItemProcessing:"Ongedaan maken",labelButtonRetryItemProcessing:"Opnieuw proberen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Bestand is te groot",labelMaxFileSize:"Maximale bestandsgrootte is {filesize}",labelMaxTotalFileSizeExceeded:"Maximale totale grootte overschreden",labelMaxTotalFileSize:"Maximale totale bestandsgrootte is {filesize}",labelFileTypeNotAllowed:"Ongeldig bestandstype",fileValidateTypeLabelExpectedTypes:"Verwacht {allButLastType} of {lastType}",imageValidateSizeLabelFormatError:"Afbeeldingstype niet ondersteund",imageValidateSizeLabelImageSizeTooSmall:"Afbeelding is te klein",imageValidateSizeLabelImageSizeTooBig:"Afbeelding is te groot",imageValidateSizeLabelExpectedMinSize:"Minimale afmeting is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale afmeting is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolutie is te laag",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimale resolutie is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale resolutie is {maxResolution}"};var wo={labelIdle:'Dra og slipp filene dine, eller Bla gjennom... ',labelInvalidField:"Feltet inneholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilgjengelig",labelFileLoading:"Laster",labelFileLoadError:"Feil under lasting",labelFileProcessing:"Laster opp",labelFileProcessingComplete:"Opplasting ferdig",labelFileProcessingAborted:"Opplasting avbrutt",labelFileProcessingError:"Feil under opplasting",labelFileProcessingRevertError:"Feil under reversering",labelFileRemoveError:"Feil under flytting",labelTapToCancel:"klikk for \xE5 avbryte",labelTapToRetry:"klikk for \xE5 pr\xF8ve p\xE5 nytt",labelTapToUndo:"klikk for \xE5 angre",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"Pr\xF8v p\xE5 nytt",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"Angre",labelButtonRetryItemProcessing:"Pr\xF8v p\xE5 nytt",labelButtonProcessItem:"Last opp",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal total st\xF8rrelse oversteget",labelMaxTotalFileSize:"Maksimal total st\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildeformat ikke st\xF8ttet",imageValidateSizeLabelImageSizeTooSmall:"Bildet er for lite",imageValidateSizeLabelImageSizeTooBig:"Bildet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimumsst\xF8rrelse er {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimumsst\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Oppl\xF8sningen er for lav",imageValidateSizeLabelImageResolutionTooHigh:"Oppl\xF8sningen er for h\xF8y",imageValidateSizeLabelExpectedMinResolution:"Minimum oppl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal oppl\xF8sning er {maxResolution}"};var vo={labelIdle:'Przeci\u0105gnij i upu\u015B\u0107 lub wybierz pliki',labelInvalidField:"Nieprawid\u0142owe pliki",labelFileWaitingForSize:"Pobieranie rozmiaru",labelFileSizeNotAvailable:"Nieznany rozmiar",labelFileLoading:"Wczytywanie",labelFileLoadError:"B\u0142\u0105d wczytywania",labelFileProcessing:"Przesy\u0142anie",labelFileProcessingComplete:"Przes\u0142ano",labelFileProcessingAborted:"Przerwano",labelFileProcessingError:"Przesy\u0142anie nie powiod\u0142o si\u0119",labelFileProcessingRevertError:"Co\u015B posz\u0142o nie tak",labelFileRemoveError:"Nieudane usuni\u0119cie",labelTapToCancel:"Anuluj",labelTapToRetry:"Pon\xF3w",labelTapToUndo:"Cofnij",labelButtonRemoveItem:"Usu\u0144",labelButtonAbortItemLoad:"Przerwij",labelButtonRetryItemLoad:"Pon\xF3w",labelButtonAbortItemProcessing:"Anuluj",labelButtonUndoItemProcessing:"Cofnij",labelButtonRetryItemProcessing:"Pon\xF3w",labelButtonProcessItem:"Prze\u015Blij",labelMaxFileSizeExceeded:"Plik jest zbyt du\u017Cy",labelMaxFileSize:"Dopuszczalna wielko\u015B\u0107 pliku to {filesize}",labelMaxTotalFileSizeExceeded:"Przekroczono \u0142\u0105czny rozmiar plik\xF3w",labelMaxTotalFileSize:"\u0141\u0105czny rozmiar plik\xF3w nie mo\u017Ce przekroczy\u0107 {filesize}",labelFileTypeNotAllowed:"Niedozwolony rodzaj pliku",fileValidateTypeLabelExpectedTypes:"Oczekiwano {allButLastType} lub {lastType}",imageValidateSizeLabelFormatError:"Nieobs\u0142ugiwany format obrazu",imageValidateSizeLabelImageSizeTooSmall:"Obraz jest zbyt ma\u0142y",imageValidateSizeLabelImageSizeTooBig:"Obraz jest zbyt du\u017Cy",imageValidateSizeLabelExpectedMinSize:"Minimalne wymiary obrazu to {minWidth}\xD7{minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksymalna wymiary obrazu to {maxWidth}\xD7{maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozdzielczo\u015B\u0107 jest zbyt niska",imageValidateSizeLabelImageResolutionTooHigh:"Rozdzielczo\u015B\u0107 jest zbyt wysoka",imageValidateSizeLabelExpectedMinResolution:"Minimalna rozdzielczo\u015B\u0107 to {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksymalna rozdzielczo\u015B\u0107 to {maxResolution}"};var Ti={labelIdle:'Arraste e solte os arquivos ou Clique aqui ',labelInvalidField:"Arquivos inv\xE1lidos",labelFileWaitingForSize:"Calculando o tamanho do arquivo",labelFileSizeNotAvailable:"Tamanho do arquivo indispon\xEDvel",labelFileLoading:"Carregando",labelFileLoadError:"Erro durante o carregamento",labelFileProcessing:"Enviando",labelFileProcessingComplete:"Envio finalizado",labelFileProcessingAborted:"Envio cancelado",labelFileProcessingError:"Erro durante o envio",labelFileProcessingRevertError:"Erro ao reverter o envio",labelFileRemoveError:"Erro ao remover o arquivo",labelTapToCancel:"clique para cancelar",labelTapToRetry:"clique para reenviar",labelTapToUndo:"clique para desfazer",labelButtonRemoveItem:"Remover",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reenviar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Desfazer",labelButtonRetryItemProcessing:"Reenviar",labelButtonProcessItem:"Enviar",labelMaxFileSizeExceeded:"Arquivo \xE9 muito grande",labelMaxFileSize:"O tamanho m\xE1ximo permitido: {filesize}",labelMaxTotalFileSizeExceeded:"Tamanho total dos arquivos excedido",labelMaxTotalFileSize:"Tamanho total permitido: {filesize}",labelFileTypeNotAllowed:"Tipo de arquivo inv\xE1lido",fileValidateTypeLabelExpectedTypes:"Tipos de arquivo suportados s\xE3o {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagem inv\xE1lida",imageValidateSizeLabelImageSizeTooSmall:"Imagem muito pequena",imageValidateSizeLabelImageSizeTooBig:"Imagem muito grande",imageValidateSizeLabelExpectedMinSize:"Tamanho m\xEDnimo permitida: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Tamanho m\xE1ximo permitido: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolu\xE7\xE3o muito baixa",imageValidateSizeLabelImageResolutionTooHigh:"Resolu\xE7\xE3o muito alta",imageValidateSizeLabelExpectedMinResolution:"Resolu\xE7\xE3o m\xEDnima permitida: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolu\xE7\xE3o m\xE1xima permitida: {maxResolution}"};var Ao={labelIdle:'Trage \u0219i plaseaz\u0103 fi\u0219iere sau Caut\u0103-le ',labelInvalidField:"C\xE2mpul con\u021Bine fi\u0219iere care nu sunt valide",labelFileWaitingForSize:"\xCEn a\u0219teptarea dimensiunii",labelFileSizeNotAvailable:"Dimensiunea nu este diponibil\u0103",labelFileLoading:"Se \xEEncarc\u0103",labelFileLoadError:"Eroare la \xEEnc\u0103rcare",labelFileProcessing:"Se \xEEncarc\u0103",labelFileProcessingComplete:"\xCEnc\u0103rcare finalizat\u0103",labelFileProcessingAborted:"\xCEnc\u0103rcare anulat\u0103",labelFileProcessingError:"Eroare la \xEEnc\u0103rcare",labelFileProcessingRevertError:"Eroare la anulare",labelFileRemoveError:"Eroare la \u015Ftergere",labelTapToCancel:"apas\u0103 pentru a anula",labelTapToRetry:"apas\u0103 pentru a re\xEEncerca",labelTapToUndo:"apas\u0103 pentru a anula",labelButtonRemoveItem:"\u015Eterge",labelButtonAbortItemLoad:"Anuleaz\u0103",labelButtonRetryItemLoad:"Re\xEEncearc\u0103",labelButtonAbortItemProcessing:"Anuleaz\u0103",labelButtonUndoItemProcessing:"Anuleaz\u0103",labelButtonRetryItemProcessing:"Re\xEEncearc\u0103",labelButtonProcessItem:"\xCEncarc\u0103",labelMaxFileSizeExceeded:"Fi\u0219ierul este prea mare",labelMaxFileSize:"Dimensiunea maxim\u0103 a unui fi\u0219ier este de {filesize}",labelMaxTotalFileSizeExceeded:"Dimensiunea total\u0103 maxim\u0103 a fost dep\u0103\u0219it\u0103",labelMaxTotalFileSize:"Dimensiunea total\u0103 maxim\u0103 a fi\u0219ierelor este de {filesize}",labelFileTypeNotAllowed:"Tipul fi\u0219ierului nu este valid",fileValidateTypeLabelExpectedTypes:"Se a\u0219teapt\u0103 {allButLastType} sau {lastType}",imageValidateSizeLabelFormatError:"Formatul imaginii nu este acceptat",imageValidateSizeLabelImageSizeTooSmall:"Imaginea este prea mic\u0103",imageValidateSizeLabelImageSizeTooBig:"Imaginea este prea mare",imageValidateSizeLabelExpectedMinSize:"M\u0103rimea minim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelExpectedMaxSize:"M\u0103rimea maxim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rezolu\u021Bia este prea mic\u0103",imageValidateSizeLabelImageResolutionTooHigh:"Rezolu\u021Bia este prea mare",imageValidateSizeLabelExpectedMinResolution:"Rezolu\u021Bia minim\u0103 este de {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Rezolu\u021Bia maxim\u0103 este de {maxResolution}"};var Lo={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B",labelFileWaitingForSize:"\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0435\u0440",labelFileSizeNotAvailable:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",labelFileLoading:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435",labelFileLoadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438",labelFileProcessing:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelFileProcessingComplete:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",labelFileProcessingAborted:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430",labelFileProcessingError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435",labelFileProcessingRevertError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0435",labelFileRemoveError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438",labelTapToCancel:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B",labelTapToRetry:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelTapToUndo:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRemoveItem:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",labelButtonAbortItemLoad:"\u041F\u0440\u0435\u043A\u0440\u0430\u0449\u0435\u043D\u043E",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonAbortItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430",labelButtonUndoItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonProcessItem:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0440\u0435\u0432\u044B\u0448\u0435\u043D \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelFileTypeNotAllowed:"\u0424\u0430\u0439\u043B \u043D\u0435\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430",fileValidateTypeLabelExpectedTypes:"\u041E\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044F {allButLastType} \u0438\u043B\u0438 {lastType}",imageValidateSizeLabelFormatError:"\u0422\u0438\u043F \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043D\u0438\u0437\u043A\u043E\u0435",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u044B\u0441\u043E\u043A\u043E\u0435",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {maxResolution}"};var Mo={labelIdle:'Drag och sl\xE4pp dina filer eller Bl\xE4ddra ',labelInvalidField:"F\xE4ltet inneh\xE5ller felaktiga filer",labelFileWaitingForSize:"V\xE4ntar p\xE5 storlek",labelFileSizeNotAvailable:"Storleken finns inte tillg\xE4nglig",labelFileLoading:"Laddar",labelFileLoadError:"Fel under laddning",labelFileProcessing:"Laddar upp",labelFileProcessingComplete:"Uppladdning klar",labelFileProcessingAborted:"Uppladdning avbruten",labelFileProcessingError:"Fel under uppladdning",labelFileProcessingRevertError:"Fel under \xE5terst\xE4llning",labelFileRemoveError:"Fel under borttagning",labelTapToCancel:"tryck f\xF6r att avbryta",labelTapToRetry:"tryck f\xF6r att f\xF6rs\xF6ka igen",labelTapToUndo:"tryck f\xF6r att \xE5ngra",labelButtonRemoveItem:"Tabort",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"F\xF6rs\xF6k igen",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"\xC5ngra",labelButtonRetryItemProcessing:"F\xF6rs\xF6k igen",labelButtonProcessItem:"Ladda upp",labelMaxFileSizeExceeded:"Filen \xE4r f\xF6r stor",labelMaxFileSize:"St\xF6rsta till\xE5tna filstorlek \xE4r {filesize}",labelMaxTotalFileSizeExceeded:"Maximal uppladdningsstorlek uppn\xE5d",labelMaxTotalFileSize:"Maximal uppladdningsstorlek \xE4r {filesize}",labelFileTypeNotAllowed:"Felaktig filtyp",fileValidateTypeLabelExpectedTypes:"Godk\xE4nda filtyper {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildtypen saknar st\xF6d",imageValidateSizeLabelImageSizeTooSmall:"Bilden \xE4r f\xF6r liten",imageValidateSizeLabelImageSizeTooBig:"Bilden \xE4r f\xF6r stor",imageValidateSizeLabelExpectedMinSize:"Minimal storlek \xE4r {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximal storlek \xE4r {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Uppl\xF6sningen \xE4r f\xF6r l\xE5g",imageValidateSizeLabelImageResolutionTooHigh:"Uppl\xF6sningen \xE4r f\xF6r h\xF6g",imageValidateSizeLabelExpectedMinResolution:"Minsta till\xE5tna uppl\xF6sning \xE4r {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"H\xF6gsta till\xE5tna uppl\xF6sning \xE4r {maxResolution}"};var Oo={labelIdle:'Dosyan\u0131z\u0131 S\xFCr\xFCkleyin & B\u0131rak\u0131n ya da Se\xE7in ',labelInvalidField:"Alan ge\xE7ersiz dosyalar i\xE7eriyor",labelFileWaitingForSize:"Boyut hesaplan\u0131yor",labelFileSizeNotAvailable:"Boyut mevcut de\u011Fil",labelFileLoading:"Y\xFCkleniyor",labelFileLoadError:"Y\xFCkleme s\u0131ras\u0131nda hata olu\u015Ftu",labelFileProcessing:"Y\xFCkleniyor",labelFileProcessingComplete:"Y\xFCkleme tamamland\u0131",labelFileProcessingAborted:"Y\xFCkleme iptal edildi",labelFileProcessingError:"Y\xFCklerken hata olu\u015Ftu",labelFileProcessingRevertError:"Geri \xE7ekerken hata olu\u015Ftu",labelFileRemoveError:"Kald\u0131r\u0131rken hata olu\u015Ftu",labelTapToCancel:"\u0130ptal etmek i\xE7in t\u0131klay\u0131n",labelTapToRetry:"Tekrar denemek i\xE7in t\u0131klay\u0131n",labelTapToUndo:"Geri almak i\xE7in t\u0131klay\u0131n",labelButtonRemoveItem:"Kald\u0131r",labelButtonAbortItemLoad:"\u0130ptal Et",labelButtonRetryItemLoad:"Tekrar dene",labelButtonAbortItemProcessing:"\u0130ptal et",labelButtonUndoItemProcessing:"Geri Al",labelButtonRetryItemProcessing:"Tekrar dene",labelButtonProcessItem:"Y\xFCkle",labelMaxFileSizeExceeded:"Dosya \xE7ok b\xFCy\xFCk",labelMaxFileSize:"En fazla dosya boyutu: {filesize}",labelMaxTotalFileSizeExceeded:"Maximum boyut a\u015F\u0131ld\u0131",labelMaxTotalFileSize:"Maximum dosya boyutu :{filesize}",labelFileTypeNotAllowed:"Ge\xE7ersiz dosya tipi",fileValidateTypeLabelExpectedTypes:"\u015Eu {allButLastType} ya da \u015Fu dosya olmas\u0131 gerekir: {lastType}",imageValidateSizeLabelFormatError:"Resim tipi desteklenmiyor",imageValidateSizeLabelImageSizeTooSmall:"Resim \xE7ok k\xFC\xE7\xFCk",imageValidateSizeLabelImageSizeTooBig:"Resim \xE7ok b\xFCy\xFCk",imageValidateSizeLabelExpectedMinSize:"Minimum boyut {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum boyut {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok d\xFC\u015F\xFCk",imageValidateSizeLabelImageResolutionTooHigh:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok y\xFCksek",imageValidateSizeLabelExpectedMinResolution:"Minimum \xE7\xF6z\xFCn\xFCrl\xFCk {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum \xE7\xF6z\xFCn\xFCrl\xFCk {maxResolution}"};var xo={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0444\u0430\u0439\u043B\u0438 \u0430\u0431\u043E \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044C ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0456 \u0444\u0430\u0439\u043B\u0438",labelFileWaitingForSize:"\u0412\u043A\u0430\u0436\u0456\u0442\u044C \u0440\u043E\u0437\u043C\u0456\u0440",labelFileSizeNotAvailable:"\u0420\u043E\u0437\u043C\u0456\u0440 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439",labelFileLoading:"\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F",labelFileLoadError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u0456",labelFileProcessing:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelFileProcessingComplete:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",labelFileProcessingAborted:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E",labelFileProcessingError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u0456",labelFileProcessingRevertError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0456",labelFileRemoveError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043D\u0456",labelTapToCancel:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelTapToRetry:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelTapToUndo:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRemoveItem:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438",labelButtonAbortItemLoad:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonAbortItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonUndoItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonProcessItem:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440 \u0444\u0430\u0439\u043B\u0443: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0435\u0440\u0435\u0432\u0438\u0449\u0435\u043D\u043E \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {filesize}",labelFileTypeNotAllowed:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0444\u0430\u0439\u043B\u0443 \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",fileValidateTypeLabelExpectedTypes:"\u041E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F {allButLastType} \u0430\u0431\u043E {lastType}",imageValidateSizeLabelFormatError:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0456",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0456",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {maxResolution}"};var Do={labelIdle:'K\xE9o th\u1EA3 t\u1EC7p c\u1EE7a b\u1EA1n ho\u1EB7c T\xECm ki\u1EBFm ',labelInvalidField:"Tr\u01B0\u1EDDng ch\u1EE9a c\xE1c t\u1EC7p kh\xF4ng h\u1EE3p l\u1EC7",labelFileWaitingForSize:"\u0110ang ch\u1EDD k\xEDch th\u01B0\u1EDBc",labelFileSizeNotAvailable:"K\xEDch th\u01B0\u1EDBc kh\xF4ng c\xF3 s\u1EB5n",labelFileLoading:"\u0110ang t\u1EA3i",labelFileLoadError:"L\u1ED7i khi t\u1EA3i",labelFileProcessing:"\u0110ang t\u1EA3i l\xEAn",labelFileProcessingComplete:"T\u1EA3i l\xEAn th\xE0nh c\xF4ng",labelFileProcessingAborted:"\u0110\xE3 hu\u1EF7 t\u1EA3i l\xEAn",labelFileProcessingError:"L\u1ED7i khi t\u1EA3i l\xEAn",labelFileProcessingRevertError:"L\u1ED7i khi ho\xE0n nguy\xEAn",labelFileRemoveError:"L\u1ED7i khi x\xF3a",labelTapToCancel:"nh\u1EA5n \u0111\u1EC3 h\u1EE7y",labelTapToRetry:"nh\u1EA5n \u0111\u1EC3 th\u1EED l\u1EA1i",labelTapToUndo:"nh\u1EA5n \u0111\u1EC3 ho\xE0n t\xE1c",labelButtonRemoveItem:"Xo\xE1",labelButtonAbortItemLoad:"Hu\u1EF7 b\u1ECF",labelButtonRetryItemLoad:"Th\u1EED l\u1EA1i",labelButtonAbortItemProcessing:"H\u1EE7y b\u1ECF",labelButtonUndoItemProcessing:"Ho\xE0n t\xE1c",labelButtonRetryItemProcessing:"Th\u1EED l\u1EA1i",labelButtonProcessItem:"T\u1EA3i l\xEAn",labelMaxFileSizeExceeded:"T\u1EADp tin qu\xE1 l\u1EDBn",labelMaxFileSize:"K\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelMaxTotalFileSizeExceeded:"\u0110\xE3 v\u01B0\u1EE3t qu\xE1 t\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a",labelMaxTotalFileSize:"T\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelFileTypeNotAllowed:"T\u1EC7p thu\u1ED9c lo\u1EA1i kh\xF4ng h\u1EE3p l\u1EC7",fileValidateTypeLabelExpectedTypes:"Ki\u1EC3u t\u1EC7p h\u1EE3p l\u1EC7 l\xE0 {allButLastType} ho\u1EB7c {lastType}",imageValidateSizeLabelFormatError:"Lo\u1EA1i h\xECnh \u1EA3nh kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3",imageValidateSizeLabelImageSizeTooSmall:"H\xECnh \u1EA3nh qu\xE1 nh\u1ECF",imageValidateSizeLabelImageSizeTooBig:"H\xECnh \u1EA3nh qu\xE1 l\u1EDBn",imageValidateSizeLabelExpectedMinSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i thi\u1EC3u l\xE0 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a l\xE0 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 th\u1EA5p",imageValidateSizeLabelImageResolutionTooHigh:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 cao",imageValidateSizeLabelExpectedMinResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i thi\u1EC3u l\xE0 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i \u0111a l\xE0 {maxResolution}"};var Po={labelIdle:'\u62D6\u653E\u6587\u4EF6\uFF0C\u6216\u8005 \u6D4F\u89C8 ',labelInvalidField:"\u5B57\u6BB5\u5305\u542B\u65E0\u6548\u6587\u4EF6",labelFileWaitingForSize:"\u8BA1\u7B97\u6587\u4EF6\u5927\u5C0F",labelFileSizeNotAvailable:"\u6587\u4EF6\u5927\u5C0F\u4E0D\u53EF\u7528",labelFileLoading:"\u52A0\u8F7D",labelFileLoadError:"\u52A0\u8F7D\u9519\u8BEF",labelFileProcessing:"\u4E0A\u4F20",labelFileProcessingComplete:"\u5DF2\u4E0A\u4F20",labelFileProcessingAborted:"\u4E0A\u4F20\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u4F20\u51FA\u9519",labelFileProcessingRevertError:"\u8FD8\u539F\u51FA\u9519",labelFileRemoveError:"\u5220\u9664\u51FA\u9519",labelTapToCancel:"\u70B9\u51FB\u53D6\u6D88",labelTapToRetry:"\u70B9\u51FB\u91CD\u8BD5",labelTapToUndo:"\u70B9\u51FB\u64A4\u6D88",labelButtonRemoveItem:"\u5220\u9664",labelButtonAbortItemLoad:"\u4E2D\u6B62",labelButtonRetryItemLoad:"\u91CD\u8BD5",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u64A4\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8BD5",labelButtonProcessItem:"\u4E0A\u4F20",labelMaxFileSizeExceeded:"\u6587\u4EF6\u592A\u5927",labelMaxFileSize:"\u6700\u5927\u503C: {filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u8FC7\u6700\u5927\u6587\u4EF6\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u6587\u4EF6\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u6587\u4EF6\u7C7B\u578B\u65E0\u6548",fileValidateTypeLabelExpectedTypes:"\u5E94\u4E3A {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u56FE\u50CF\u7C7B\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u56FE\u50CF\u592A\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u56FE\u50CF\u592A\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u503C: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u503C: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u5206\u8FA8\u7387\u592A\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u5206\u8FA8\u7387\u592A\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u5C0F\u5206\u8FA8\u7387\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u5927\u5206\u8FA8\u7387\uFF1A{maxResolution}"};var Fo={labelIdle:'\u62D6\u653E\u6A94\u6848\uFF0C\u6216\u8005 \u700F\u89BD ',labelInvalidField:"\u4E0D\u652F\u63F4\u6B64\u6A94\u6848",labelFileWaitingForSize:"\u6B63\u5728\u8A08\u7B97\u6A94\u6848\u5927\u5C0F",labelFileSizeNotAvailable:"\u6A94\u6848\u5927\u5C0F\u4E0D\u7B26",labelFileLoading:"\u8B80\u53D6\u4E2D",labelFileLoadError:"\u8B80\u53D6\u932F\u8AA4",labelFileProcessing:"\u4E0A\u50B3",labelFileProcessingComplete:"\u5DF2\u4E0A\u50B3",labelFileProcessingAborted:"\u4E0A\u50B3\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u50B3\u767C\u751F\u932F\u8AA4",labelFileProcessingRevertError:"\u9084\u539F\u932F\u8AA4",labelFileRemoveError:"\u522A\u9664\u932F\u8AA4",labelTapToCancel:"\u9EDE\u64CA\u53D6\u6D88",labelTapToRetry:"\u9EDE\u64CA\u91CD\u8A66",labelTapToUndo:"\u9EDE\u64CA\u9084\u539F",labelButtonRemoveItem:"\u522A\u9664",labelButtonAbortItemLoad:"\u505C\u6B62",labelButtonRetryItemLoad:"\u91CD\u8A66",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u53D6\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8A66",labelButtonProcessItem:"\u4E0A\u50B3",labelMaxFileSizeExceeded:"\u6A94\u6848\u904E\u5927",labelMaxFileSize:"\u6700\u5927\u503C\uFF1A{filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u904E\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u4E0D\u652F\u63F4\u6B64\u985E\u578B\u6A94\u6848",fileValidateTypeLabelExpectedTypes:"\u61C9\u70BA {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u6B64\u985E\u5716\u7247\u985E\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u5716\u7247\u904E\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u5716\u7247\u904E\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u5C3A\u5BF8\uFF1A{minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u5C3A\u5BF8\uFF1A{maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u89E3\u6790\u5EA6\u904E\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u89E3\u6790\u5EA6\u904E\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u4F4E\u89E3\u6790\u5EA6\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u9AD8\u89E3\u6790\u5EA6\uFF1A{maxResolution}"};Te(Lr);Te(Or);Te(Pr);Te(Cr);Te(Gr);Te(Qr);Te(Kr);Te(uo);Te(_a);window.FilePond=Zi;function Qf({acceptedFileTypes:e,imageEditorEmptyFillColor:t,imageEditorMode:i,imageEditorViewportHeight:a,imageEditorViewportWidth:n,deleteUploadedFileUsing:r,isDeletable:o,isDisabled:l,getUploadedFilesUsing:s,imageCropAspectRatio:u,imagePreviewHeight:c,imageResizeMode:d,imageResizeTargetHeight:h,imageResizeTargetWidth:f,imageResizeUpscale:p,isAvatar:m,hasImageEditor:g,hasCircleCropper:b,canEditSvgs:E,isSvgEditingConfirmed:T,confirmSvgEditingMessage:_,disabledSvgEditingMessage:y,isDownloadable:I,isMultiple:v,isOpenable:R,isPreviewable:S,isReorderable:D,loadingIndicatorPosition:x,locale:O,maxSize:B,minSize:A,panelAspectRatio:F,panelLayout:w,placeholder:L,removeUploadedFileButtonPosition:N,removeUploadedFileUsing:P,reorderUploadedFilesUsing:U,shouldAppendFiles:V,shouldOrientImageFromExif:q,shouldTransformImage:X,state:j,uploadButtonPosition:se,uploadProgressIndicatorPosition:k,uploadUsing:W}){return{fileKeyIndex:{},pond:null,shouldUpdateState:!0,state:j,lastState:null,uploadedFileIndex:{},isEditorOpen:!1,editingFile:{},currentRatio:"",editor:{},init:async function(){At(Co[O]??Co.en),this.pond=ot(this.$refs.input,{acceptedFileTypes:e,allowImageExifOrientation:q,allowPaste:!1,allowRemove:o,allowReorder:D,allowImagePreview:S,allowVideoPreview:S,allowAudioPreview:S,allowImageTransform:X,credits:!1,files:await this.getFiles(),imageCropAspectRatio:u,imagePreviewHeight:c,imageResizeTargetHeight:h,imageResizeTargetWidth:f,imageResizeMode:d,imageResizeUpscale:p,itemInsertLocation:V?"after":"before",...L&&{labelIdle:L},maxFileSize:B,minFileSize:A,styleButtonProcessItemPosition:se,styleButtonRemoveItemPosition:N,styleLoadIndicatorPosition:x,stylePanelAspectRatio:F,stylePanelLayout:w,styleProgressIndicatorPosition:k,server:{load:async(z,G)=>{let K=await(await fetch(z,{cache:"no-store"})).blob();G(K)},process:(z,G,$,K,Rt,ze)=>{this.shouldUpdateState=!1;let kt=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,Ht=>(Ht^crypto.getRandomValues(new Uint8Array(1))[0]&15>>Ht/4).toString(16));W(kt,G,Ht=>{this.shouldUpdateState=!0,K(Ht)},Rt,ze)},remove:async(z,G)=>{let $=this.uploadedFileIndex[z]??null;$&&(await r($),G())},revert:async(z,G)=>{await P(z),G()}},allowImageEdit:g,imageEditEditor:{open:z=>this.loadEditor(z),onconfirm:()=>{},oncancel:()=>this.closeEditor(),onclose:()=>this.closeEditor()}}),this.$watch("state",async()=>{if(this.pond&&this.shouldUpdateState&&this.state!==void 0){if(this.state!==null&&Object.values(this.state).filter(z=>z.startsWith("livewire-file:")).length){this.lastState=null;return}JSON.stringify(this.state)!==this.lastState&&(this.lastState=JSON.stringify(this.state),this.pond.files=await this.getFiles())}}),this.pond.on("reorderfiles",async z=>{let G=z.map($=>$.source instanceof File?$.serverId:this.uploadedFileIndex[$.source]??null).filter($=>$);await U(V?G:G.reverse())}),this.pond.on("initfile",async z=>{I&&(m||this.insertDownloadLink(z))}),this.pond.on("initfile",async z=>{R&&(m||this.insertOpenLink(z))}),this.pond.on("addfilestart",async z=>{z.status===ut.PROCESSING_QUEUED&&this.dispatchFormEvent("file-upload-started")});let C=async()=>{this.pond.getFiles().filter(z=>z.status===ut.PROCESSING||z.status===ut.PROCESSING_QUEUED).length||this.dispatchFormEvent("file-upload-finished")};this.pond.on("processfile",C),this.pond.on("processfileabort",C),this.pond.on("processfilerevert",C)},destroy:function(){this.destroyEditor(),lt(this.$refs.input),this.pond=null},dispatchFormEvent:function(C){this.$el.closest("form")?.dispatchEvent(new CustomEvent(C,{composed:!0,cancelable:!0}))},getUploadedFiles:async function(){let C=await s();this.fileKeyIndex=C??{},this.uploadedFileIndex=Object.entries(this.fileKeyIndex).filter(([z,G])=>G?.url).reduce((z,[G,$])=>(z[$.url]=G,z),{})},getFiles:async function(){await this.getUploadedFiles();let C=[];for(let z of Object.values(this.fileKeyIndex))z&&C.push({source:z.url,options:{type:"local",...!z.type||/^image/.test(z.type)?{}:{file:{name:z.name,size:z.size,type:z.type}}}});return V?C:C.reverse()},insertDownloadLink:function(C){if(C.origin!==Mt.LOCAL)return;let z=this.getDownloadLink(C);z&&document.getElementById(`filepond--item-${C.id}`).querySelector(".filepond--file-info-main").prepend(z)},insertOpenLink:function(C){if(C.origin!==Mt.LOCAL)return;let z=this.getOpenLink(C);z&&document.getElementById(`filepond--item-${C.id}`).querySelector(".filepond--file-info-main").prepend(z)},getDownloadLink:function(C){let z=C.source;if(!z)return;let G=document.createElement("a");return G.className="filepond--download-icon",G.href=z,G.download=C.file.name,G},getOpenLink:function(C){let z=C.source;if(!z)return;let G=document.createElement("a");return G.className="filepond--open-icon",G.href=z,G.target="_blank",G},initEditor:function(){l||g&&(this.editor=new ma(this.$refs.editor,{aspectRatio:n/a,autoCropArea:1,center:!0,crop:C=>{this.$refs.xPositionInput.value=Math.round(C.detail.x),this.$refs.yPositionInput.value=Math.round(C.detail.y),this.$refs.heightInput.value=Math.round(C.detail.height),this.$refs.widthInput.value=Math.round(C.detail.width),this.$refs.rotationInput.value=C.detail.rotate},cropBoxResizable:!0,guides:!0,highlight:!0,responsive:!0,toggleDragModeOnDblclick:!0,viewMode:i,wheelZoomRatio:.02}))},closeEditor:function(){this.editingFile={},this.isEditorOpen=!1,this.destroyEditor()},fixImageDimensions:function(C,z){if(C.type!=="image/svg+xml")return z(C);let G=new FileReader;G.onload=$=>{let K=new DOMParser().parseFromString($.target.result,"image/svg+xml")?.querySelector("svg");if(!K)return z(C);let Rt=["viewBox","ViewBox","viewbox"].find(kt=>K.hasAttribute(kt));if(!Rt)return z(C);let ze=K.getAttribute(Rt).split(" ");return!ze||ze.length!==4?z(C):(K.setAttribute("width",parseFloat(ze[2])+"pt"),K.setAttribute("height",parseFloat(ze[3])+"pt"),z(new File([new Blob([new XMLSerializer().serializeToString(K)],{type:"image/svg+xml"})],C.name,{type:"image/svg+xml",_relativePath:""})))},G.readAsText(C)},loadEditor:function(C){if(l||!g||!C)return;let z=C.type==="image/svg+xml";if(!E&&z){alert(y);return}T&&z&&!confirm(_)||this.fixImageDimensions(C,G=>{this.editingFile=G,this.initEditor();let $=new FileReader;$.onload=K=>{this.isEditorOpen=!0,setTimeout(()=>this.editor.replace(K.target.result),200)},$.readAsDataURL(C)})},getRoundedCanvas:function(C){let z=C.width,G=C.height,$=document.createElement("canvas");$.width=z,$.height=G;let K=$.getContext("2d");return K.imageSmoothingEnabled=!0,K.drawImage(C,0,0,z,G),K.globalCompositeOperation="destination-in",K.beginPath(),K.ellipse(z/2,G/2,z/2,G/2,0,0,2*Math.PI),K.fill(),$},saveEditor:function(){if(l||!g)return;let C=this.editor.getCroppedCanvas({fillColor:t??"transparent",height:h,imageSmoothingEnabled:!0,imageSmoothingQuality:"high",width:f});b&&(C=this.getRoundedCanvas(C)),C.toBlob(z=>{v&&this.pond.removeFile(this.pond.getFiles().find(G=>G.filename===this.editingFile.name)?.id,{revert:!0}),this.$nextTick(()=>{this.shouldUpdateState=!1;let G=this.editingFile.name.slice(0,this.editingFile.name.lastIndexOf(".")),$=this.editingFile.name.split(".").pop();$==="svg"&&($="png");let K=/-v(\d+)/;K.test(G)?G=G.replace(K,(Rt,ze)=>`-v${Number(ze)+1}`):G+="-v1",this.pond.addFile(new File([z],`${G}.${$}`,{type:this.editingFile.type==="image/svg+xml"||b?"image/png":this.editingFile.type,lastModified:new Date().getTime()})).then(()=>{this.closeEditor()}).catch(()=>{this.closeEditor()})})},b?"image/png":this.editingFile.type)},destroyEditor:function(){this.editor&&typeof this.editor.destroy=="function"&&this.editor.destroy(),this.editor=null}}}var Co={ar:ho,cs:fo,da:po,de:mo,en:go,es:Eo,fa:To,fi:Io,fr:bo,hu:_o,id:Ro,it:yo,nl:So,no:wo,pl:vo,pt_BR:Ti,pt_PT:Ti,ro:Ao,ru:Lo,sv:Mo,tr:Oo,uk:xo,vi:Do,zh_CN:Po,zh_TW:Fo};export{Qf as default}; +/*! Bundled license information: + +filepond/dist/filepond.esm.js: + (*! + * FilePond 4.30.6 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +cropperjs/dist/cropper.esm.js: + (*! + * Cropper.js v1.6.1 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2023-09-17T03:44:19.860Z + *) + +filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.esm.js: + (*! + * FilePondPluginFileValidateSize 2.2.8 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.esm.js: + (*! + * FilePondPluginFileValidateType 1.2.8 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-crop/dist/filepond-plugin-image-crop.esm.js: + (*! + * FilePondPluginImageCrop 2.0.6 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-edit/dist/filepond-plugin-image-edit.esm.js: + (*! + * FilePondPluginImageEdit 1.6.3 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-exif-orientation/dist/filepond-plugin-image-exif-orientation.esm.js: + (*! + * FilePondPluginImageExifOrientation 1.0.11 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-preview/dist/filepond-plugin-image-preview.esm.js: + (*! + * FilePondPluginImagePreview 4.6.12 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-resize/dist/filepond-plugin-image-resize.esm.js: + (*! + * FilePondPluginImageResize 2.0.10 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-transform/dist/filepond-plugin-image-transform.esm.js: + (*! + * FilePondPluginImageTransform 3.8.7 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-media-preview/dist/filepond-plugin-media-preview.esm.js: + (*! + * FilePondPluginMediaPreview 1.0.11 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit undefined for details. + *) +*/ diff --git a/public/js/filament/forms/components/key-value.js b/public/js/filament/forms/components/key-value.js new file mode 100644 index 000000000..3450bdffe --- /dev/null +++ b/public/js/filament/forms/components/key-value.js @@ -0,0 +1 @@ +function r({state:i}){return{state:i,rows:[],shouldUpdateRows:!0,init:function(){this.updateRows(),this.rows.length<=0?this.rows.push({key:"",value:""}):this.updateState(),this.$watch("state",(t,e)=>{let s=o=>o===null?0:Array.isArray(o)?o.length:typeof o!="object"?0:Object.keys(o).length;s(t)===0&&s(e)===0||this.updateRows()})},addRow:function(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow:function(t){this.rows.splice(t,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows:function(t){let e=Alpine.raw(this.rows),s=e.splice(t.oldIndex,1)[0];e.splice(t.newIndex,0,s),this.rows=e,this.updateState()},updateRows:function(){if(!this.shouldUpdateRows){this.shouldUpdateRows=!0;return}let t=[];for(let[e,s]of Object.entries(this.state??{}))t.push({key:e,value:s});this.rows=t},updateState:function(){let t={};this.rows.forEach(e=>{e.key===""||e.key===null||(t[e.key]=e.value)}),this.shouldUpdateRows=!1,this.state=t}}}export{r as default}; diff --git a/public/js/filament/forms/components/markdown-editor.js b/public/js/filament/forms/components/markdown-editor.js new file mode 100644 index 000000000..b6f93a8d7 --- /dev/null +++ b/public/js/filament/forms/components/markdown-editor.js @@ -0,0 +1,51 @@ +var ss=Object.defineProperty;var Sd=Object.getOwnPropertyDescriptor;var Td=Object.getOwnPropertyNames;var Ld=Object.prototype.hasOwnProperty;var Cd=(o,p)=>()=>(o&&(p=o(o=0)),p);var Ke=(o,p)=>()=>(p||o((p={exports:{}}).exports,p),p.exports);var Ed=(o,p,v,C)=>{if(p&&typeof p=="object"||typeof p=="function")for(let b of Td(p))!Ld.call(o,b)&&b!==v&&ss(o,b,{get:()=>p[b],enumerable:!(C=Sd(p,b))||C.enumerable});return o};var zd=o=>Ed(ss({},"__esModule",{value:!0}),o);var We=Ke((Yo,Qo)=>{(function(o,p){typeof Yo=="object"&&typeof Qo<"u"?Qo.exports=p():typeof define=="function"&&define.amd?define(p):(o=o||self,o.CodeMirror=p())})(Yo,function(){"use strict";var o=navigator.userAgent,p=navigator.platform,v=/gecko\/\d/i.test(o),C=/MSIE \d/.test(o),b=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(o),k=/Edge\/(\d+)/.exec(o),s=C||b||k,g=s&&(C?document.documentMode||6:+(k||b)[1]),h=!k&&/WebKit\//.test(o),S=h&&/Qt\/\d+\.\d+/.test(o),w=!k&&/Chrome\/(\d+)/.exec(o),c=w&&+w[1],d=/Opera\//.test(o),T=/Apple Computer/.test(navigator.vendor),E=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(o),z=/PhantomJS/.test(o),y=T&&(/Mobile\/\w+/.test(o)||navigator.maxTouchPoints>2),R=/Android/.test(o),M=y||R||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(o),H=y||/Mac/.test(p),Z=/\bCrOS\b/.test(o),ee=/win/i.test(p),re=d&&o.match(/Version\/(\d*\.\d*)/);re&&(re=Number(re[1])),re&&re>=15&&(d=!1,h=!0);var N=H&&(S||d&&(re==null||re<12.11)),F=v||s&&g>=9;function D(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var Q=function(e,t){var n=e.className,r=D(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function j(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function V(e,t){return j(e).appendChild(t)}function x(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),typeof t=="string")i.appendChild(document.createTextNode(t));else if(t)for(var a=0;a=t)return l+(t-a);l+=u-a,l+=n-l%n,a=u+1}}var qe=function(){this.id=null,this.f=null,this.time=0,this.handler=Ee(this.onTimeout,this)};qe.prototype.onTimeout=function(e){e.id=0,e.time<=+new Date?e.f():setTimeout(e.handler,e.time-+new Date)},qe.prototype.set=function(e,t){this.f=t;var n=+new Date+e;(!this.id||n=t)return r+Math.min(l,t-i);if(i+=a-r,i+=n-i%n,r=a+1,i>=t)return r}}var U=[""];function G(e){for(;U.length<=e;)U.push(ce(U)+" ");return U[e]}function ce(e){return e[e.length-1]}function Be(e,t){for(var n=[],r=0;r"\x80"&&(e.toUpperCase()!=e.toLowerCase()||Ue.test(e))}function Me(e,t){return t?t.source.indexOf("\\w")>-1&&we(e)?!0:t.test(e):we(e)}function Le(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var $=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function W(e){return e.charCodeAt(0)>=768&&$.test(e)}function se(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,a=r<0?Math.ceil(i):Math.floor(i);if(a==t)return e(a)?t:n;e(a)?n=a:t=a+r}}function nt(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,a=0;at||t==n&&l.to==t)&&(r(Math.max(l.from,t),Math.min(l.to,n),l.level==1?"rtl":"ltr",a),i=!0)}i||r(t,n,"ltr")}var dt=null;function Pt(e,t,n){var r;dt=null;for(var i=0;it)return i;a.to==t&&(a.from!=a.to&&n=="before"?r=i:dt=i),a.from==t&&(a.from!=a.to&&n!="before"?r=i:dt=i)}return r??dt}var It=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(m){return m<=247?e.charAt(m):1424<=m&&m<=1524?"R":1536<=m&&m<=1785?t.charAt(m-1536):1774<=m&&m<=2220?"r":8192<=m&&m<=8203?"w":m==8204?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,u=/[1n]/;function f(m,A,P){this.level=m,this.from=A,this.to=P}return function(m,A){var P=A=="ltr"?"L":"R";if(m.length==0||A=="ltr"&&!r.test(m))return!1;for(var J=m.length,Y=[],ie=0;ie-1&&(r[t]=i.slice(0,a).concat(i.slice(a+1)))}}}function it(e,t){var n=nr(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function Wt(e){e.prototype.on=function(t,n){Fe(this,t,n)},e.prototype.off=function(t,n){_t(this,t,n)}}function kt(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Hr(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ct(e){return e.defaultPrevented!=null?e.defaultPrevented:e.returnValue==!1}function dr(e){kt(e),Hr(e)}function yn(e){return e.target||e.srcElement}function Ut(e){var t=e.which;return t==null&&(e.button&1?t=1:e.button&2?t=3:e.button&4&&(t=2)),H&&e.ctrlKey&&t==1&&(t=3),t}var eo=function(){if(s&&g<9)return!1;var e=x("div");return"draggable"in e||"dragDrop"in e}(),Br;function ei(e){if(Br==null){var t=x("span","\u200B");V(e,x("span",[t,document.createTextNode("x")])),e.firstChild.offsetHeight!=0&&(Br=t.offsetWidth<=1&&t.offsetHeight>2&&!(s&&g<8))}var n=Br?x("span","\u200B"):x("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}var xn;function pr(e){if(xn!=null)return xn;var t=V(e,document.createTextNode("A\u062EA")),n=X(t,0,1).getBoundingClientRect(),r=X(t,1,2).getBoundingClientRect();return j(e),!n||n.left==n.right?!1:xn=r.right-n.right<3}var Bt=` + +b`.split(/\n/).length!=3?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf(` +`,t);i==-1&&(i=e.length);var a=e.slice(t,e.charAt(i-1)=="\r"?i-1:i),l=a.indexOf("\r");l!=-1?(n.push(a.slice(0,l)),t+=l+1):(n.push(a),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},hr=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch{return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch{}return!t||t.parentElement()!=e?!1:t.compareEndPoints("StartToEnd",t)!=0},ti=function(){var e=x("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),typeof e.oncopy=="function")}(),$t=null;function to(e){if($t!=null)return $t;var t=V(e,x("span","x")),n=t.getBoundingClientRect(),r=X(t,0,1).getBoundingClientRect();return $t=Math.abs(n.left-r.left)>1}var Wr={},Kt={};function Gt(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Wr[e]=t}function Cr(e,t){Kt[e]=t}function Ur(e){if(typeof e=="string"&&Kt.hasOwnProperty(e))e=Kt[e];else if(e&&typeof e.name=="string"&&Kt.hasOwnProperty(e.name)){var t=Kt[e.name];typeof t=="string"&&(t={name:t}),e=oe(t,e),e.name=t.name}else{if(typeof e=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ur("application/xml");if(typeof e=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ur("application/json")}return typeof e=="string"?{name:e}:e||{name:"null"}}function $r(e,t){t=Ur(t);var n=Wr[t.name];if(!n)return $r(e,"text/plain");var r=n(e,t);if(gr.hasOwnProperty(t.name)){var i=gr[t.name];for(var a in i)i.hasOwnProperty(a)&&(r.hasOwnProperty(a)&&(r["_"+a]=r[a]),r[a]=i[a])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)r[l]=t.modeProps[l];return r}var gr={};function Kr(e,t){var n=gr.hasOwnProperty(e)?gr[e]:gr[e]={};ge(t,n)}function Vt(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function _n(e,t){for(var n;e.innerMode&&(n=e.innerMode(t),!(!n||n.mode==e));)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Gr(e,t,n){return e.startState?e.startState(t,n):!0}var at=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};at.prototype.eol=function(){return this.pos>=this.string.length},at.prototype.sol=function(){return this.pos==this.lineStart},at.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},at.prototype.next=function(){if(this.post},at.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},at.prototype.skipToEnd=function(){this.pos=this.string.length},at.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},at.prototype.backUp=function(e){this.pos-=e},at.prototype.column=function(){return this.lastColumnPos0?null:(a&&t!==!1&&(this.pos+=a[0].length),a)}},at.prototype.current=function(){return this.string.slice(this.start,this.pos)},at.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},at.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},at.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};function Ae(e,t){if(t-=e.first,t<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],a=i.chunkSize();if(t=e.first&&tn?ne(n,Ae(e,n).text.length):Sc(t,Ae(e,t.line).text.length)}function Sc(e,t){var n=e.ch;return n==null||n>t?ne(e.line,t):n<0?ne(e.line,0):e}function ca(e,t){for(var n=[],r=0;rthis.maxLookAhead&&(this.maxLookAhead=e),t},Jt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Jt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Jt.fromSaved=function(e,t,n){return t instanceof ri?new Jt(e,Vt(e.mode,t.state),n,t.lookAhead):new Jt(e,Vt(e.mode,t),n)},Jt.prototype.save=function(e){var t=e!==!1?Vt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ri(t,this.maxLookAhead):t};function fa(e,t,n,r){var i=[e.state.modeGen],a={};va(e,t.text,e.doc.mode,n,function(m,A){return i.push(m,A)},a,r);for(var l=n.state,u=function(m){n.baseTokens=i;var A=e.state.overlays[m],P=1,J=0;n.state=!0,va(e,t.text,A.mode,n,function(Y,ie){for(var ue=P;JY&&i.splice(P,1,Y,i[P+1],me),P+=2,J=Math.min(Y,me)}if(ie)if(A.opaque)i.splice(ue,P-ue,Y,"overlay "+ie),P=ue+2;else for(;uee.options.maxHighlightLength&&Vt(e.doc.mode,r.state),a=fa(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=a.styles,a.classes?t.styleClasses=a.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function wn(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new Jt(r,!0,t);var a=Tc(e,t,n),l=a>r.first&&Ae(r,a-1).stateAfter,u=l?Jt.fromSaved(r,l,a):new Jt(r,Gr(r.mode),a);return r.iter(a,t,function(f){ro(e,f.text,u);var m=u.line;f.stateAfter=m==t-1||m%5==0||m>=i.viewFrom&&mt.start)return a}throw new Error("Mode "+e.name+" failed to advance stream.")}var ha=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function ga(e,t,n,r){var i=e.doc,a=i.mode,l;t=Re(i,t);var u=Ae(i,t.line),f=wn(e,t.line,n),m=new at(u.text,e.options.tabSize,f),A;for(r&&(A=[]);(r||m.pose.options.maxHighlightLength?(u=!1,l&&ro(e,t,r,A.pos),A.pos=t.length,P=null):P=ma(no(n,A,r.state,J),a),J){var Y=J[0].name;Y&&(P="m-"+(P?Y+" "+P:Y))}if(!u||m!=P){for(;fl;--u){if(u<=a.first)return a.first;var f=Ae(a,u-1),m=f.stateAfter;if(m&&(!n||u+(m instanceof ri?m.lookAhead:0)<=a.modeFrontier))return u;var A=Oe(f.text,null,e.options.tabSize);(i==null||r>A)&&(i=u-1,r=A)}return i}function Lc(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Ae(e,r).stateAfter;if(i&&(!(i instanceof ri)||r+i.lookAhead=t:a.to>t);(r||(r=[])).push(new ni(l,a.from,f?null:a.to))}}return r}function Dc(e,t,n){var r;if(e)for(var i=0;i=t:a.to>t);if(u||a.from==t&&l.type=="bookmark"&&(!n||a.marker.insertLeft)){var f=a.from==null||(l.inclusiveLeft?a.from<=t:a.from0&&u)for(var Ce=0;Ce0)){var A=[f,1],P=ye(m.from,u.from),J=ye(m.to,u.to);(P<0||!l.inclusiveLeft&&!P)&&A.push({from:m.from,to:u.from}),(J>0||!l.inclusiveRight&&!J)&&A.push({from:u.to,to:m.to}),i.splice.apply(i,A),f+=A.length-3}}return i}function xa(e){var t=e.markedSpans;if(t){for(var n=0;nt)&&(!r||oo(r,a.marker)<0)&&(r=a.marker)}return r}function Sa(e,t,n,r,i){var a=Ae(e,t),l=or&&a.markedSpans;if(l)for(var u=0;u=0&&P<=0||A<=0&&P>=0)&&(A<=0&&(f.marker.inclusiveRight&&i.inclusiveLeft?ye(m.to,n)>=0:ye(m.to,n)>0)||A>=0&&(f.marker.inclusiveRight&&i.inclusiveLeft?ye(m.from,r)<=0:ye(m.from,r)<0)))return!0}}}function Zt(e){for(var t;t=wa(e);)e=t.find(-1,!0).line;return e}function Fc(e){for(var t;t=ai(e);)e=t.find(1,!0).line;return e}function Nc(e){for(var t,n;t=ai(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function ao(e,t){var n=Ae(e,t),r=Zt(n);return n==r?t:_(r)}function Ta(e,t){if(t>e.lastLine())return t;var n=Ae(e,t),r;if(!mr(e,n))return t;for(;r=ai(n);)n=r.find(1,!0).line;return _(n)+1}function mr(e,t){var n=or&&t.markedSpans;if(n){for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=i,t.maxLine=r)})}var Xr=function(e,t,n){this.text=e,_a(this,t),this.height=n?n(this):1};Xr.prototype.lineNo=function(){return _(this)},Wt(Xr);function Oc(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),e.order!=null&&(e.order=null),xa(e),_a(e,n);var i=r?r(e):1;i!=e.height&&jt(e,i)}function Pc(e){e.parent=null,xa(e)}var jc={},Rc={};function La(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Rc:jc;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Ca(e,t){var n=K("span",null,null,h?"padding-right: .1px":null),r={pre:K("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var a=i?t.rest[i-1]:t.line,l=void 0;r.pos=0,r.addToken=Bc,pr(e.display.measure)&&(l=Pe(a,e.doc.direction))&&(r.addToken=Uc(r.addToken,l)),r.map=[];var u=t!=e.display.externalMeasured&&_(a);$c(a,r,da(e,a,u)),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=xe(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=xe(a.styleClasses.textClass,r.textClass||""))),r.map.length==0&&r.map.push(0,0,r.content.appendChild(ei(e.display.measure))),i==0?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(h){var f=r.content.lastChild;(/\bcm-tab\b/.test(f.className)||f.querySelector&&f.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return it(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=xe(r.pre.className,r.textClass||"")),r}function Hc(e){var t=x("span","\u2022","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Bc(e,t,n,r,i,a,l){if(t){var u=e.splitSpaces?Wc(t,e.trailingSpace):t,f=e.cm.state.specialChars,m=!1,A;if(!f.test(t))e.col+=t.length,A=document.createTextNode(u),e.map.push(e.pos,e.pos+t.length,A),s&&g<9&&(m=!0),e.pos+=t.length;else{A=document.createDocumentFragment();for(var P=0;;){f.lastIndex=P;var J=f.exec(t),Y=J?J.index-P:t.length-P;if(Y){var ie=document.createTextNode(u.slice(P,P+Y));s&&g<9?A.appendChild(x("span",[ie])):A.appendChild(ie),e.map.push(e.pos,e.pos+Y,ie),e.col+=Y,e.pos+=Y}if(!J)break;P+=Y+1;var ue=void 0;if(J[0]==" "){var me=e.cm.options.tabSize,ve=me-e.col%me;ue=A.appendChild(x("span",G(ve),"cm-tab")),ue.setAttribute("role","presentation"),ue.setAttribute("cm-text"," "),e.col+=ve}else J[0]=="\r"||J[0]==` +`?(ue=A.appendChild(x("span",J[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),ue.setAttribute("cm-text",J[0]),e.col+=1):(ue=e.cm.options.specialCharPlaceholder(J[0]),ue.setAttribute("cm-text",J[0]),s&&g<9?A.appendChild(x("span",[ue])):A.appendChild(ue),e.col+=1);e.map.push(e.pos,e.pos+1,ue),e.pos++}}if(e.trailingSpace=u.charCodeAt(t.length-1)==32,n||r||i||m||a||l){var _e=n||"";r&&(_e+=r),i&&(_e+=i);var be=x("span",[A],_e,a);if(l)for(var Ce in l)l.hasOwnProperty(Ce)&&Ce!="style"&&Ce!="class"&&be.setAttribute(Ce,l[Ce]);return e.content.appendChild(be)}e.content.appendChild(A)}}function Wc(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;im&&P.from<=m));J++);if(P.to>=A)return e(n,r,i,a,l,u,f);e(n,r.slice(0,P.to-m),i,a,null,u,f),a=null,r=r.slice(P.to-m),m=P.to}}}function Ea(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function $c(e,t,n){var r=e.markedSpans,i=e.text,a=0;if(!r){for(var l=1;lf||$e.collapsed&&Ie.to==f&&Ie.from==f)){if(Ie.to!=null&&Ie.to!=f&&Y>Ie.to&&(Y=Ie.to,ue=""),$e.className&&(ie+=" "+$e.className),$e.css&&(J=(J?J+";":"")+$e.css),$e.startStyle&&Ie.from==f&&(me+=" "+$e.startStyle),$e.endStyle&&Ie.to==Y&&(Ce||(Ce=[])).push($e.endStyle,Ie.to),$e.title&&((_e||(_e={})).title=$e.title),$e.attributes)for(var Ve in $e.attributes)(_e||(_e={}))[Ve]=$e.attributes[Ve];$e.collapsed&&(!ve||oo(ve.marker,$e)<0)&&(ve=Ie)}else Ie.from>f&&Y>Ie.from&&(Y=Ie.from)}if(Ce)for(var vt=0;vt=u)break;for(var Ot=Math.min(u,Y);;){if(A){var At=f+A.length;if(!ve){var ut=At>Ot?A.slice(0,Ot-f):A;t.addToken(t,ut,P?P+ie:ie,me,f+ut.length==Y?ue:"",J,_e)}if(At>=Ot){A=A.slice(Ot-f),f=Ot;break}f=At,me=""}A=i.slice(a,a=n[m++]),P=La(n[m++],t.cm.options)}}}function za(e,t,n){this.line=t,this.rest=Nc(t),this.size=this.rest?_(ce(this.rest))-n+1:1,this.node=this.text=null,this.hidden=mr(e,t)}function si(e,t,n){for(var r=[],i,a=t;a2&&a.push((f.bottom+m.top)/2-n.top)}}a.push(n.bottom-n.top)}}function Na(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};if(e.rest){for(var r=0;rn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function rf(e,t){t=Zt(t);var n=_(t),r=e.display.externalMeasured=new za(e.doc,t,n);r.lineN=n;var i=r.built=Ca(e,r);return r.text=i.pre,V(e.display.lineMeasure,i.pre),r}function Oa(e,t,n,r){return tr(e,Qr(e,t),n,r)}function po(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(a=f-u,i=a-1,t>=f&&(l="right")),i!=null){if(r=e[m+2],u==f&&n==(r.insertLeft?"left":"right")&&(l=n),n=="left"&&i==0)for(;m&&e[m-2]==e[m-3]&&e[m-1].insertLeft;)r=e[(m-=3)+2],l="left";if(n=="right"&&i==f-u)for(;m=0&&(n=e[i]).left==n.right;i--);return n}function of(e,t,n,r){var i=ja(t.map,n,r),a=i.node,l=i.start,u=i.end,f=i.collapse,m;if(a.nodeType==3){for(var A=0;A<4;A++){for(;l&&W(t.line.text.charAt(i.coverStart+l));)--l;for(;i.coverStart+u0&&(f=r="right");var P;e.options.lineWrapping&&(P=a.getClientRects()).length>1?m=P[r=="right"?P.length-1:0]:m=a.getBoundingClientRect()}if(s&&g<9&&!l&&(!m||!m.left&&!m.right)){var J=a.parentNode.getClientRects()[0];J?m={left:J.left,right:J.left+Jr(e.display),top:J.top,bottom:J.bottom}:m=Pa}for(var Y=m.top-t.rect.top,ie=m.bottom-t.rect.top,ue=(Y+ie)/2,me=t.view.measure.heights,ve=0;ve=r.text.length?(f=r.text.length,m="before"):f<=0&&(f=0,m="after"),!u)return l(m=="before"?f-1:f,m=="before");function A(ie,ue,me){var ve=u[ue],_e=ve.level==1;return l(me?ie-1:ie,_e!=me)}var P=Pt(u,f,m),J=dt,Y=A(f,P,m=="before");return J!=null&&(Y.other=A(f,J,m!="before")),Y}function $a(e,t){var n=0;t=Re(e.doc,t),e.options.lineWrapping||(n=Jr(e.display)*t.ch);var r=Ae(e.doc,t.line),i=ar(r)+ui(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function go(e,t,n,r,i){var a=ne(e,t,n);return a.xRel=i,r&&(a.outside=r),a}function mo(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,n<0)return go(r.first,0,null,-1,-1);var i=O(r,n),a=r.first+r.size-1;if(i>a)return go(r.first+r.size-1,Ae(r,a).text.length,null,1,1);t<0&&(t=0);for(var l=Ae(r,i);;){var u=lf(e,l,i,t,n),f=Ic(l,u.ch+(u.xRel>0||u.outside>0?1:0));if(!f)return u;var m=f.find(1);if(m.line==i)return m;l=Ae(r,i=m.line)}}function Ka(e,t,n,r){r-=ho(t);var i=t.text.length,a=De(function(l){return tr(e,n,l-1).bottom<=r},i,0);return i=De(function(l){return tr(e,n,l).top>r},a,i),{begin:a,end:i}}function Ga(e,t,n,r){n||(n=Qr(e,t));var i=ci(e,t,tr(e,n,r),"line").top;return Ka(e,t,n,i)}function vo(e,t,n,r){return e.bottom<=n?!1:e.top>n?!0:(r?e.left:e.right)>t}function lf(e,t,n,r,i){i-=ar(t);var a=Qr(e,t),l=ho(t),u=0,f=t.text.length,m=!0,A=Pe(t,e.doc.direction);if(A){var P=(e.options.lineWrapping?uf:sf)(e,t,n,a,A,r,i);m=P.level!=1,u=m?P.from:P.to-1,f=m?P.to:P.from-1}var J=null,Y=null,ie=De(function(Ne){var Ie=tr(e,a,Ne);return Ie.top+=l,Ie.bottom+=l,vo(Ie,r,i,!1)?(Ie.top<=i&&Ie.left<=r&&(J=Ne,Y=Ie),!0):!1},u,f),ue,me,ve=!1;if(Y){var _e=r-Y.left=Ce.bottom?1:0}return ie=se(t.text,ie,1),go(n,ie,me,ve,r-ue)}function sf(e,t,n,r,i,a,l){var u=De(function(P){var J=i[P],Y=J.level!=1;return vo(Xt(e,ne(n,Y?J.to:J.from,Y?"before":"after"),"line",t,r),a,l,!0)},0,i.length-1),f=i[u];if(u>0){var m=f.level!=1,A=Xt(e,ne(n,m?f.from:f.to,m?"after":"before"),"line",t,r);vo(A,a,l,!0)&&A.top>l&&(f=i[u-1])}return f}function uf(e,t,n,r,i,a,l){var u=Ka(e,t,r,l),f=u.begin,m=u.end;/\s/.test(t.text.charAt(m-1))&&m--;for(var A=null,P=null,J=0;J=m||Y.to<=f)){var ie=Y.level!=1,ue=tr(e,r,ie?Math.min(m,Y.to)-1:Math.max(f,Y.from)).right,me=ueme)&&(A=Y,P=me)}}return A||(A=i[i.length-1]),A.fromm&&(A={from:A.from,to:m,level:A.level}),A}var zr;function Vr(e){if(e.cachedTextHeight!=null)return e.cachedTextHeight;if(zr==null){zr=x("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)zr.appendChild(document.createTextNode("x")),zr.appendChild(x("br"));zr.appendChild(document.createTextNode("x"))}V(e.measure,zr);var n=zr.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),j(e.measure),n||1}function Jr(e){if(e.cachedCharWidth!=null)return e.cachedCharWidth;var t=x("span","xxxxxxxxxx"),n=x("pre",[t],"CodeMirror-line-like");V(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function bo(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,a=t.gutters.firstChild,l=0;a;a=a.nextSibling,++l){var u=e.display.gutterSpecs[l].className;n[u]=a.offsetLeft+a.clientLeft+i,r[u]=a.clientWidth}return{fixedPos:yo(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function yo(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Za(e){var t=Vr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Jr(e.display)-3);return function(i){if(mr(e.doc,i))return 0;var a=0;if(i.widgets)for(var l=0;l0&&(m=Ae(e.doc,f.line).text).length==f.ch){var A=Oe(m,m.length,e.options.tabSize)-m.length;f=ne(f.line,Math.max(0,Math.round((a-Fa(e.display).left)/Jr(e.display))-A))}return f}function Ar(e,t){if(t>=e.display.viewTo||(t-=e.display.viewFrom,t<0))return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)or&&ao(e.doc,t)i.viewFrom?br(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)br(e);else if(t<=i.viewFrom){var a=di(e,n,n+r,1);a?(i.view=i.view.slice(a.index),i.viewFrom=a.lineN,i.viewTo+=r):br(e)}else if(n>=i.viewTo){var l=di(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):br(e)}else{var u=di(e,t,t,-1),f=di(e,n,n+r,1);u&&f?(i.view=i.view.slice(0,u.index).concat(si(e,u.lineN,f.lineN)).concat(i.view.slice(f.index)),i.viewTo+=r):br(e)}var m=i.externalMeasured;m&&(n=i.lineN&&t=r.viewTo)){var a=r.view[Ar(e,t)];if(a.node!=null){var l=a.changes||(a.changes=[]);Se(l,n)==-1&&l.push(n)}}}function br(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function di(e,t,n,r){var i=Ar(e,t),a,l=e.display.view;if(!or||n==e.doc.first+e.doc.size)return{index:i,lineN:n};for(var u=e.display.viewFrom,f=0;f0){if(i==l.length-1)return null;a=u+l[i].size-t,i++}else a=u-t;t+=a,n+=a}for(;ao(e.doc,n)!=n;){if(i==(r<0?0:l.length-1))return null;n+=r*l[i-(r<0?1:0)].size,i+=r}return{index:i,lineN:n}}function cf(e,t,n){var r=e.display,i=r.view;i.length==0||t>=r.viewTo||n<=r.viewFrom?(r.view=si(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=si(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Ar(e,n)))),r.viewTo=n}function Xa(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||f.to().line0?l:e.defaultCharWidth())+"px"}if(r.other){var u=n.appendChild(x("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));u.style.display="",u.style.left=r.other.left+"px",u.style.top=r.other.top+"px",u.style.height=(r.other.bottom-r.other.top)*.85+"px"}}function pi(e,t){return e.top-t.top||e.left-t.left}function ff(e,t,n){var r=e.display,i=e.doc,a=document.createDocumentFragment(),l=Fa(e.display),u=l.left,f=Math.max(r.sizerWidth,Er(e)-r.sizer.offsetLeft)-l.right,m=i.direction=="ltr";function A(be,Ce,Ne,Ie){Ce<0&&(Ce=0),Ce=Math.round(Ce),Ie=Math.round(Ie),a.appendChild(x("div",null,"CodeMirror-selected","position: absolute; left: "+be+`px; + top: `+Ce+"px; width: "+(Ne??f-be)+`px; + height: `+(Ie-Ce)+"px"))}function P(be,Ce,Ne){var Ie=Ae(i,be),$e=Ie.text.length,Ve,vt;function rt(ut,Dt){return fi(e,ne(be,ut),"div",Ie,Dt)}function Ot(ut,Dt,yt){var ft=Ga(e,Ie,null,ut),ct=Dt=="ltr"==(yt=="after")?"left":"right",lt=yt=="after"?ft.begin:ft.end-(/\s/.test(Ie.text.charAt(ft.end-1))?2:1);return rt(lt,ct)[ct]}var At=Pe(Ie,i.direction);return nt(At,Ce||0,Ne??$e,function(ut,Dt,yt,ft){var ct=yt=="ltr",lt=rt(ut,ct?"left":"right"),qt=rt(Dt-1,ct?"right":"left"),pn=Ce==null&&ut==0,Sr=Ne==null&&Dt==$e,St=ft==0,rr=!At||ft==At.length-1;if(qt.top-lt.top<=3){var bt=(m?pn:Sr)&&St,Zo=(m?Sr:pn)&&rr,cr=bt?u:(ct?lt:qt).left,Nr=Zo?f:(ct?qt:lt).right;A(cr,lt.top,Nr-cr,lt.bottom)}else{var Or,Lt,hn,Xo;ct?(Or=m&&pn&&St?u:lt.left,Lt=m?f:Ot(ut,yt,"before"),hn=m?u:Ot(Dt,yt,"after"),Xo=m&&Sr&&rr?f:qt.right):(Or=m?Ot(ut,yt,"before"):u,Lt=!m&&pn&&St?f:lt.right,hn=!m&&Sr&&rr?u:qt.left,Xo=m?Ot(Dt,yt,"after"):f),A(Or,lt.top,Lt-Or,lt.bottom),lt.bottom0?t.blinker=setInterval(function(){e.hasFocus()||en(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Qa(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||So(e))}function wo(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&en(e))},100)}function So(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),e.options.readOnly!="nocursor"&&(e.state.focused||(it(e,"focus",e,t),e.state.focused=!0,le(e.display.wrapper,"CodeMirror-focused"),!e.curOp&&e.display.selForContextMenu!=e.doc.sel&&(e.display.input.reset(),h&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),ko(e))}function en(e,t){e.state.delayingBlurEvent||(e.state.focused&&(it(e,"blur",e,t),e.state.focused=!1,Q(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function hi(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,a=0,l=0;l.005||Y<-.005)&&(ie.display.sizerWidth){var ue=Math.ceil(A/Jr(e.display));ue>e.display.maxLineLength&&(e.display.maxLineLength=ue,e.display.maxLine=u.line,e.display.maxLineChanged=!0)}}}Math.abs(a)>2&&(t.scroller.scrollTop+=a)}function Va(e){if(e.widgets)for(var t=0;t=l&&(a=O(t,ar(Ae(t,f))-e.wrapper.clientHeight),l=f)}return{from:a,to:Math.max(l,a+1)}}function df(e,t){if(!ot(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null,a=n.wrapper.ownerDocument;if(t.top+r.top<0?i=!0:t.bottom+r.top>(a.defaultView.innerHeight||a.documentElement.clientHeight)&&(i=!1),i!=null&&!z){var l=x("div","\u200B",null,`position: absolute; + top: `+(t.top-n.viewOffset-ui(e.display))+`px; + height: `+(t.bottom-t.top+er(e)+n.barHeight)+`px; + left: `+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(l),l.scrollIntoView(i),e.display.lineSpace.removeChild(l)}}}function pf(e,t,n,r){r==null&&(r=0);var i;!e.options.lineWrapping&&t==n&&(n=t.sticky=="before"?ne(t.line,t.ch+1,"before"):t,t=t.ch?ne(t.line,t.sticky=="before"?t.ch-1:t.ch,"after"):t);for(var a=0;a<5;a++){var l=!1,u=Xt(e,t),f=!n||n==t?u:Xt(e,n);i={left:Math.min(u.left,f.left),top:Math.min(u.top,f.top)-r,right:Math.max(u.left,f.left),bottom:Math.max(u.bottom,f.bottom)+r};var m=To(e,i),A=e.doc.scrollTop,P=e.doc.scrollLeft;if(m.scrollTop!=null&&(An(e,m.scrollTop),Math.abs(e.doc.scrollTop-A)>1&&(l=!0)),m.scrollLeft!=null&&(Dr(e,m.scrollLeft),Math.abs(e.doc.scrollLeft-P)>1&&(l=!0)),!l)break}return i}function hf(e,t){var n=To(e,t);n.scrollTop!=null&&An(e,n.scrollTop),n.scrollLeft!=null&&Dr(e,n.scrollLeft)}function To(e,t){var n=e.display,r=Vr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&e.curOp.scrollTop!=null?e.curOp.scrollTop:n.scroller.scrollTop,a=fo(e),l={};t.bottom-t.top>a&&(t.bottom=t.top+a);var u=e.doc.height+co(n),f=t.topu-r;if(t.topi+a){var A=Math.min(t.top,(m?u:t.bottom)-a);A!=i&&(l.scrollTop=A)}var P=e.options.fixedGutter?0:n.gutters.offsetWidth,J=e.curOp&&e.curOp.scrollLeft!=null?e.curOp.scrollLeft:n.scroller.scrollLeft-P,Y=Er(e)-n.gutters.offsetWidth,ie=t.right-t.left>Y;return ie&&(t.right=t.left+Y),t.left<10?l.scrollLeft=0:t.leftY+J-3&&(l.scrollLeft=t.right+(ie?0:10)-Y),l}function Lo(e,t){t!=null&&(mi(e),e.curOp.scrollTop=(e.curOp.scrollTop==null?e.doc.scrollTop:e.curOp.scrollTop)+t)}function tn(e){mi(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Mn(e,t,n){(t!=null||n!=null)&&mi(e),t!=null&&(e.curOp.scrollLeft=t),n!=null&&(e.curOp.scrollTop=n)}function gf(e,t){mi(e),e.curOp.scrollToPos=t}function mi(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=$a(e,t.from),r=$a(e,t.to);Ja(e,n,r,t.margin)}}function Ja(e,t,n,r){var i=To(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Mn(e,i.scrollLeft,i.scrollTop)}function An(e,t){Math.abs(e.doc.scrollTop-t)<2||(v||Eo(e,{top:t}),el(e,t,!0),v&&Eo(e),In(e,100))}function el(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),!(e.display.scroller.scrollTop==t&&!n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Dr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),!((n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r)&&(e.doc.scrollLeft=t,ol(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Dn(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+co(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+er(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var qr=function(e,t,n){this.cm=n;var r=this.vert=x("div",[x("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=x("div",[x("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),Fe(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Fe(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,s&&g<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};qr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var a=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+a)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(r==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},qr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},qr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},qr.prototype.zeroWidthHack=function(){var e=H&&!E?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new qe,this.disableVert=new qe},qr.prototype.enableZeroWidthBar=function(e,t,n){e.style.visibility="";function r(){var i=e.getBoundingClientRect(),a=n=="vert"?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1);a!=e?e.style.visibility="hidden":t.set(1e3,r)}t.set(1e3,r)},qr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var qn=function(){};qn.prototype.update=function(){return{bottom:0,right:0}},qn.prototype.setScrollLeft=function(){},qn.prototype.setScrollTop=function(){},qn.prototype.clear=function(){};function rn(e,t){t||(t=Dn(e));var n=e.display.barWidth,r=e.display.barHeight;tl(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&hi(e),tl(e,Dn(e)),n=e.display.barWidth,r=e.display.barHeight}function tl(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}var rl={native:qr,null:qn};function nl(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Q(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new rl[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Fe(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){n=="horizontal"?Dr(e,t):An(e,t)},e),e.display.scrollbars.addClass&&le(e.display.wrapper,e.display.scrollbars.addClass)}var mf=0;function Ir(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++mf,markArrays:null},Kc(e.curOp)}function Fr(e){var t=e.curOp;t&&Zc(t,function(n){for(var r=0;r=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new vi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function yf(e){e.updatedDisplay=e.mustUpdate&&Co(e.cm,e.update)}function xf(e){var t=e.cm,n=t.display;e.updatedDisplay&&hi(t),e.barMeasure=Dn(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Oa(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+er(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Er(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function _f(e){var t=e.cm;e.adjustWidthTo!=null&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft=e.display.viewTo)){var n=+new Date+e.options.workTime,r=wn(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(a){if(r.line>=e.display.viewFrom){var l=a.styles,u=a.text.length>e.options.maxHighlightLength?Vt(t.mode,r.state):null,f=fa(e,a,r,!0);u&&(r.state=u),a.styles=f.styles;var m=a.styleClasses,A=f.classes;A?a.styleClasses=A:m&&(a.styleClasses=null);for(var P=!l||l.length!=a.styles.length||m!=A&&(!m||!A||m.bgClass!=A.bgClass||m.textClass!=A.textClass),J=0;!P&&Jn)return In(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Nt(e,function(){for(var a=0;a=n.viewFrom&&t.visible.to<=n.viewTo&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&Xa(e)==0)return!1;al(e)&&(br(e),t.dims=bo(e));var i=r.first+r.size,a=Math.max(t.visible.from-e.options.viewportMargin,r.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroml&&n.viewTo-l<20&&(l=Math.min(i,n.viewTo)),or&&(a=ao(e.doc,a),l=Ta(e.doc,l));var u=a!=n.viewFrom||l!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;cf(e,a,l),n.viewOffset=ar(Ae(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var f=Xa(e);if(!u&&f==0&&!t.force&&n.renderedView==n.view&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo))return!1;var m=Tf(e);return f>4&&(n.lineDiv.style.display="none"),Cf(e,n.updateLineNumbers,t.dims),f>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Lf(m),j(n.cursorDiv),j(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,u&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,In(e,400)),n.updateLineNumbers=null,!0}function il(e,t){for(var n=t.viewport,r=!0;;r=!1){if(!r||!e.options.lineWrapping||t.oldDisplayWidth==Er(e)){if(n&&n.top!=null&&(n={top:Math.min(e.doc.height+co(e.display)-fo(e),n.top)}),t.visible=gi(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break}else r&&(t.visible=gi(e.display,e.doc,n));if(!Co(e,t))break;hi(e);var i=Dn(e);zn(e),rn(e,i),Mo(e,i),t.force=!1}t.signal(e,"update",e),(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo)&&(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Eo(e,t){var n=new vi(e,t);if(Co(e,n)){hi(e),il(e,n);var r=Dn(e);zn(e),rn(e,r),Mo(e,r),n.finish()}}function Cf(e,t,n){var r=e.display,i=e.options.lineNumbers,a=r.lineDiv,l=a.firstChild;function u(ie){var ue=ie.nextSibling;return h&&H&&e.display.currentWheelTarget==ie?ie.style.display="none":ie.parentNode.removeChild(ie),ue}for(var f=r.view,m=r.viewFrom,A=0;A-1&&(Y=!1),Ma(e,P,m,n)),Y&&(j(P.lineNumber),P.lineNumber.appendChild(document.createTextNode(he(e.options,m)))),l=P.node.nextSibling}m+=P.size}for(;l;)l=u(l)}function zo(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",ht(e,"gutterChanged",e)}function Mo(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+er(e)+"px"}function ol(e){var t=e.display,n=t.view;if(!(!t.alignWidgets&&(!t.gutters.firstChild||!e.options.fixedGutter))){for(var r=yo(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,a=r+"px",l=0;l=105&&(i.wrapper.style.clipPath="inset(0px)"),i.wrapper.setAttribute("translate","no"),s&&g<8&&(i.gutters.style.zIndex=-1,i.scroller.style.paddingRight=0),!h&&!(v&&M)&&(i.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(i.wrapper):e(i.wrapper)),i.viewFrom=i.viewTo=t.first,i.reportedViewFrom=i.reportedViewTo=t.first,i.view=[],i.renderedView=null,i.externalMeasured=null,i.viewOffset=0,i.lastWrapHeight=i.lastWrapWidth=0,i.updateLineNumbers=null,i.nativeBarWidth=i.barHeight=i.barWidth=0,i.scrollbarsClipped=!1,i.lineNumWidth=i.lineNumInnerWidth=i.lineNumChars=null,i.alignWidgets=!1,i.cachedCharWidth=i.cachedTextHeight=i.cachedPaddingH=null,i.maxLine=null,i.maxLineLength=0,i.maxLineChanged=!1,i.wheelDX=i.wheelDY=i.wheelStartX=i.wheelStartY=null,i.shift=!1,i.selForContextMenu=null,i.activeTouch=null,i.gutterSpecs=Ao(r.gutters,r.lineNumbers),ll(i),n.init(i)}var bi=0,sr=null;s?sr=-.53:v?sr=15:w?sr=-.7:T&&(sr=-1/3);function sl(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return t==null&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),n==null&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:n==null&&(n=e.wheelDelta),{x:t,y:n}}function zf(e){var t=sl(e);return t.x*=sr,t.y*=sr,t}function ul(e,t){w&&c==102&&(e.display.chromeScrollHack==null?e.display.sizer.style.pointerEvents="none":clearTimeout(e.display.chromeScrollHack),e.display.chromeScrollHack=setTimeout(function(){e.display.chromeScrollHack=null,e.display.sizer.style.pointerEvents=""},100));var n=sl(t),r=n.x,i=n.y,a=sr;t.deltaMode===0&&(r=t.deltaX,i=t.deltaY,a=1);var l=e.display,u=l.scroller,f=u.scrollWidth>u.clientWidth,m=u.scrollHeight>u.clientHeight;if(r&&f||i&&m){if(i&&H&&h){e:for(var A=t.target,P=l.view;A!=u;A=A.parentNode)for(var J=0;J=0&&ye(e,r.to())<=0)return n}return-1};var Ye=function(e,t){this.anchor=e,this.head=t};Ye.prototype.from=function(){return Zr(this.anchor,this.head)},Ye.prototype.to=function(){return Et(this.anchor,this.head)},Ye.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function Yt(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort(function(J,Y){return ye(J.from(),Y.from())}),n=Se(t,i);for(var a=1;a0:f>=0){var m=Zr(u.from(),l.from()),A=Et(u.to(),l.to()),P=u.empty()?l.from()==l.head:u.from()==u.head;a<=n&&--n,t.splice(--a,2,new Ye(P?A:m,P?m:A))}}return new Rt(t,n)}function yr(e,t){return new Rt([new Ye(e,t||e)],0)}function xr(e){return e.text?ne(e.from.line+e.text.length-1,ce(e.text).length+(e.text.length==1?e.from.ch:0)):e.to}function cl(e,t){if(ye(e,t.from)<0)return e;if(ye(e,t.to)<=0)return xr(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=xr(t).ch-t.to.ch),ne(n,r)}function Do(e,t){for(var n=[],r=0;r1&&e.remove(u.line+1,ie-1),e.insert(u.line+1,ve)}ht(e,"change",e,t)}function _r(e,t,n){function r(i,a,l){if(i.linked)for(var u=0;u1&&!e.done[e.done.length-2].ranges)return e.done.pop(),ce(e.done)}function ml(e,t,n,r){var i=e.history;i.undone.length=0;var a=+new Date,l,u;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&(t.origin.charAt(0)=="+"&&i.lastModTime>a-(e.cm?e.cm.options.historyEventDelay:500)||t.origin.charAt(0)=="*"))&&(l=Df(i,i.lastOp==r)))u=ce(l.changes),ye(t.from,t.to)==0&&ye(t.from,u.to)==0?u.to=xr(t):l.changes.push(Fo(e,t));else{var f=ce(i.done);for((!f||!f.ranges)&&xi(e.sel,i.done),l={changes:[Fo(e,t)],generation:i.generation},i.done.push(l);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,u||it(e,"historyAdded")}function qf(e,t,n,r){var i=t.charAt(0);return i=="*"||i=="+"&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function If(e,t,n,r){var i=e.history,a=r&&r.origin;n==i.lastSelOp||a&&i.lastSelOrigin==a&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==a||qf(e,a,ce(i.done),t))?i.done[i.done.length-1]=t:xi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=a,i.lastSelOp=n,r&&r.clearRedo!==!1&&gl(i.undone)}function xi(e,t){var n=ce(t);n&&n.ranges&&n.equals(e)||t.push(e)}function vl(e,t,n,r){var i=t["spans_"+e.id],a=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(l){l.markedSpans&&((i||(i=t["spans_"+e.id]={}))[a]=l.markedSpans),++a})}function Ff(e){if(!e)return null;for(var t,n=0;n-1&&(ce(u)[P]=m[P],delete m[P])}}return r}function No(e,t,n,r){if(r){var i=e.anchor;if(n){var a=ye(t,i)<0;a!=ye(n,i)<0?(i=t,t=n):a!=ye(t,n)<0&&(t=n)}return new Ye(i,t)}else return new Ye(n||t,t)}function _i(e,t,n,r,i){i==null&&(i=e.cm&&(e.cm.display.shift||e.extend)),wt(e,new Rt([No(e.sel.primary(),t,n,i)],0),r)}function yl(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),a=0;a=t.ch:u.to>t.ch))){if(i&&(it(f,"beforeCursorEnter"),f.explicitlyCleared))if(a.markedSpans){--l;continue}else break;if(!f.atomic)continue;if(n){var P=f.find(r<0?1:-1),J=void 0;if((r<0?A:m)&&(P=Tl(e,P,-r,P&&P.line==t.line?a:null)),P&&P.line==t.line&&(J=ye(P,n))&&(r<0?J<0:J>0))return on(e,P,t,r,i)}var Y=f.find(r<0?-1:1);return(r<0?m:A)&&(Y=Tl(e,Y,r,Y.line==t.line?a:null)),Y?on(e,Y,t,r,i):null}}return t}function wi(e,t,n,r,i){var a=r||1,l=on(e,t,n,a,i)||!i&&on(e,t,n,a,!0)||on(e,t,n,-a,i)||!i&&on(e,t,n,-a,!0);return l||(e.cantEdit=!0,ne(e.first,0))}function Tl(e,t,n,r){return n<0&&t.ch==0?t.line>e.first?Re(e,ne(t.line-1)):null:n>0&&t.ch==(r||Ae(e,t.line)).text.length?t.line=0;--i)El(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else El(e,t)}}function El(e,t){if(!(t.text.length==1&&t.text[0]==""&&ye(t.from,t.to)==0)){var n=Do(e,t);ml(e,t,n,e.cm?e.cm.curOp.id:NaN),On(e,t,n,io(e,t));var r=[];_r(e,function(i,a){!a&&Se(r,i.history)==-1&&(Dl(i.history,t),r.push(i.history)),On(i,t,null,io(i,t))})}}function Si(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!(r&&!n)){for(var i=e.history,a,l=e.sel,u=t=="undo"?i.done:i.undone,f=t=="undo"?i.undone:i.done,m=0;m=0;--Y){var ie=J(Y);if(ie)return ie.v}}}}function zl(e,t){if(t!=0&&(e.first+=t,e.sel=new Rt(Be(e.sel.ranges,function(i){return new Ye(ne(i.anchor.line+t,i.anchor.ch),ne(i.head.line+t,i.head.ch))}),e.sel.primIndex),e.cm)){zt(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.linea&&(t={from:t.from,to:ne(a,Ae(e,a).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ir(e,t.from,t.to),n||(n=Do(e,t)),e.cm?Pf(e.cm,t,r):Io(e,t,r),ki(e,n,ke),e.cantEdit&&wi(e,ne(e.firstLine(),0))&&(e.cantEdit=!1)}}function Pf(e,t,n){var r=e.doc,i=e.display,a=t.from,l=t.to,u=!1,f=a.line;e.options.lineWrapping||(f=_(Zt(Ae(r,a.line))),r.iter(f,l.line+1,function(Y){if(Y==i.maxLine)return u=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ht(e),Io(r,t,n,Za(e)),e.options.lineWrapping||(r.iter(f,a.line+t.text.length,function(Y){var ie=li(Y);ie>i.maxLineLength&&(i.maxLine=Y,i.maxLineLength=ie,i.maxLineChanged=!0,u=!1)}),u&&(e.curOp.updateMaxLine=!0)),Lc(r,a.line),In(e,400);var m=t.text.length-(l.line-a.line)-1;t.full?zt(e):a.line==l.line&&t.text.length==1&&!dl(e.doc,t)?vr(e,a.line,"text"):zt(e,a.line,l.line+1,m);var A=Ft(e,"changes"),P=Ft(e,"change");if(P||A){var J={from:a,to:l,text:t.text,removed:t.removed,origin:t.origin};P&&ht(e,"change",e,J),A&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(J)}e.display.selForContextMenu=null}function ln(e,t,n,r,i){var a;r||(r=n),ye(r,n)<0&&(a=[r,n],n=a[0],r=a[1]),typeof t=="string"&&(t=e.splitLines(t)),an(e,{from:n,to:r,text:t,origin:i})}function Ml(e,t,n,r){n1||!(this.children[0]instanceof jn))){var u=[];this.collapse(u),this.children=[new jn(u)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var l=i.lines.length%25+25,u=l;u10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;re.display.maxLineLength&&(e.display.maxLine=m,e.display.maxLineLength=A,e.display.maxLineChanged=!0)}r!=null&&e&&this.collapsed&&zt(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&wl(e.doc)),e&&ht(e,"markerCleared",e,this,r,i),t&&Fr(e),this.parent&&this.parent.clear()}},kr.prototype.find=function(e,t){e==null&&this.type=="bookmark"&&(e=1);for(var n,r,i=0;i0||l==0&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=K("span",[a.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(Sa(e,t.line,t,n,a)||t.line!=n.line&&Sa(e,n.line,t,n,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ec()}a.addToHistory&&ml(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var u=t.line,f=e.cm,m;if(e.iter(u,n.line+1,function(P){f&&a.collapsed&&!f.options.lineWrapping&&Zt(P)==f.display.maxLine&&(m=!0),a.collapsed&&u!=t.line&&jt(P,0),Mc(P,new ni(a,u==t.line?t.ch:null,u==n.line?n.ch:null),e.cm&&e.cm.curOp),++u}),a.collapsed&&e.iter(t.line,n.line+1,function(P){mr(e,P)&&jt(P,0)}),a.clearOnEnter&&Fe(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(Cc(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Il,a.atomic=!0),f){if(m&&(f.curOp.updateMaxLine=!0),a.collapsed)zt(f,t.line,n.line+1);else if(a.className||a.startStyle||a.endStyle||a.css||a.attributes||a.title)for(var A=t.line;A<=n.line;A++)vr(f,A,"text");a.atomic&&wl(f.doc),ht(f,"markerAdded",f,a)}return a}var Bn=function(e,t){this.markers=e,this.primary=t;for(var n=0;n=0;f--)an(this,r[f]);u?_l(this,u):this.cm&&tn(this.cm)}),undo:mt(function(){Si(this,"undo")}),redo:mt(function(){Si(this,"redo")}),undoSelection:mt(function(){Si(this,"undo",!0)}),redoSelection:mt(function(){Si(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=Re(this,e),t=Re(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(a){var l=a.markedSpans;if(l)for(var u=0;u=f.to||f.from==null&&i!=e.line||f.from!=null&&i==t.line&&f.from>=t.ch)&&(!n||n(f.marker))&&r.push(f.marker.parent||f.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=a,++n}),Re(this,ne(n,t))},indexFromPos:function(e){e=Re(this,e);var t=e.ch;if(e.linet&&(t=e.from),e.to!=null&&e.to-1){t.state.draggingText(e),setTimeout(function(){return t.display.input.focus()},20);return}try{var A=e.dataTransfer.getData("Text");if(A){var P;if(t.state.draggingText&&!t.state.draggingText.copy&&(P=t.listSelections()),ki(t.doc,yr(n,n)),P)for(var J=0;J=0;u--)ln(e.doc,"",r[u].from,r[u].to,"+delete");tn(e)})}function Po(e,t,n){var r=se(e.text,t+n,n);return r<0||r>e.text.length?null:r}function jo(e,t,n){var r=Po(e,t.ch,n);return r==null?null:new ne(t.line,r,n<0?"after":"before")}function Ro(e,t,n,r,i){if(e){t.doc.direction=="rtl"&&(i=-i);var a=Pe(n,t.doc.direction);if(a){var l=i<0?ce(a):a[0],u=i<0==(l.level==1),f=u?"after":"before",m;if(l.level>0||t.doc.direction=="rtl"){var A=Qr(t,n);m=i<0?n.text.length-1:0;var P=tr(t,A,m).top;m=De(function(J){return tr(t,A,J).top==P},i<0==(l.level==1)?l.from:l.to-1,m),f=="before"&&(m=Po(n,m,1))}else m=i<0?l.to:l.from;return new ne(r,m,f)}}return new ne(r,i<0?n.text.length:0,i<0?"before":"after")}function Vf(e,t,n,r){var i=Pe(t,e.doc.direction);if(!i)return jo(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var a=Pt(i,n.ch,n.sticky),l=i[a];if(e.doc.direction=="ltr"&&l.level%2==0&&(r>0?l.to>n.ch:l.from=l.from&&J>=A.begin)){var Y=P?"before":"after";return new ne(n.line,J,Y)}}var ie=function(ve,_e,be){for(var Ce=function(Ve,vt){return vt?new ne(n.line,u(Ve,1),"before"):new ne(n.line,Ve,"after")};ve>=0&&ve0==(Ne.level!=1),$e=Ie?be.begin:u(be.end,-1);if(Ne.from<=$e&&$e0?A.end:u(A.begin,-1);return me!=null&&!(r>0&&me==t.text.length)&&(ue=ie(r>0?0:i.length-1,r,m(me)),ue)?ue:null}var $n={selectAll:Ll,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),ke)},killLine:function(e){return cn(e,function(t){if(t.empty()){var n=Ae(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new ne(i.line,i.ch+1),e.replaceRange(a.charAt(i.ch-1)+a.charAt(i.ch-2),ne(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Ae(e.doc,i.line-1).text;l&&(i=new ne(i.line,1),e.replaceRange(a.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),ne(i.line-1,l.length-1),i,"+transpose"))}}n.push(new Ye(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return Nt(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;re&&ye(t,this.pos)==0&&n==this.button};var Gn,Zn;function od(e,t){var n=+new Date;return Zn&&Zn.compare(n,e,t)?(Gn=Zn=null,"triple"):Gn&&Gn.compare(n,e,t)?(Zn=new Bo(n,e,t),Gn=null,"double"):(Gn=new Bo(n,e,t),Zn=null,"single")}function Yl(e){var t=this,n=t.display;if(!(ot(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=e.shiftKey,lr(n,e)){h||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100));return}if(!Wo(t,e)){var r=Mr(t,e),i=Ut(e),a=r?od(r,i):"single";pe(t).focus(),i==1&&t.state.selectingText&&t.state.selectingText(e),!(r&&ad(t,i,r,a,e))&&(i==1?r?sd(t,r,a,e):yn(e)==n.scroller&&kt(e):i==2?(r&&_i(t.doc,r),setTimeout(function(){return n.input.focus()},20)):i==3&&(F?t.display.input.onContextMenu(e):wo(t)))}}}function ad(e,t,n,r,i){var a="Click";return r=="double"?a="Double"+a:r=="triple"&&(a="Triple"+a),a=(t==1?"Left":t==2?"Middle":"Right")+a,Kn(e,Hl(a,i),i,function(l){if(typeof l=="string"&&(l=$n[l]),!l)return!1;var u=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),u=l(e,n)!=Ze}finally{e.state.suppressEdits=!1}return u})}function ld(e,t,n){var r=e.getOption("configureMouse"),i=r?r(e,t,n):{};if(i.unit==null){var a=Z?n.shiftKey&&n.metaKey:n.altKey;i.unit=a?"rectangle":t=="single"?"char":t=="double"?"word":"line"}return(i.extend==null||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),i.addNew==null&&(i.addNew=H?n.metaKey:n.ctrlKey),i.moveOnDrag==null&&(i.moveOnDrag=!(H?n.altKey:n.ctrlKey)),i}function sd(e,t,n,r){s?setTimeout(Ee(Qa,e),0):e.curOp.focus=B(de(e));var i=ld(e,n,r),a=e.doc.sel,l;e.options.dragDrop&&eo&&!e.isReadOnly()&&n=="single"&&(l=a.contains(t))>-1&&(ye((l=a.ranges[l]).from(),t)<0||t.xRel>0)&&(ye(l.to(),t)>0||t.xRel<0)?ud(e,r,t,i):cd(e,r,t,i)}function ud(e,t,n,r){var i=e.display,a=!1,l=gt(e,function(m){h&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:wo(e)),_t(i.wrapper.ownerDocument,"mouseup",l),_t(i.wrapper.ownerDocument,"mousemove",u),_t(i.scroller,"dragstart",f),_t(i.scroller,"drop",l),a||(kt(m),r.addNew||_i(e.doc,n,null,null,r.extend),h&&!T||s&&g==9?setTimeout(function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()},20):i.input.focus())}),u=function(m){a=a||Math.abs(t.clientX-m.clientX)+Math.abs(t.clientY-m.clientY)>=10},f=function(){return a=!0};h&&(i.scroller.draggable=!0),e.state.draggingText=l,l.copy=!r.moveOnDrag,Fe(i.wrapper.ownerDocument,"mouseup",l),Fe(i.wrapper.ownerDocument,"mousemove",u),Fe(i.scroller,"dragstart",f),Fe(i.scroller,"drop",l),e.state.delayingBlurEvent=!0,setTimeout(function(){return i.input.focus()},20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Ql(e,t,n){if(n=="char")return new Ye(t,t);if(n=="word")return e.findWordAt(t);if(n=="line")return new Ye(ne(t.line,0),Re(e.doc,ne(t.line+1,0)));var r=n(e,t);return new Ye(r.from,r.to)}function cd(e,t,n,r){s&&wo(e);var i=e.display,a=e.doc;kt(t);var l,u,f=a.sel,m=f.ranges;if(r.addNew&&!r.extend?(u=a.sel.contains(n),u>-1?l=m[u]:l=new Ye(n,n)):(l=a.sel.primary(),u=a.sel.primIndex),r.unit=="rectangle")r.addNew||(l=new Ye(n,n)),n=Mr(e,t,!0,!0),u=-1;else{var A=Ql(e,n,r.unit);r.extend?l=No(l,A.anchor,A.head,r.extend):l=A}r.addNew?u==-1?(u=m.length,wt(a,Yt(e,m.concat([l]),u),{scroll:!1,origin:"*mouse"})):m.length>1&&m[u].empty()&&r.unit=="char"&&!r.extend?(wt(a,Yt(e,m.slice(0,u).concat(m.slice(u+1)),0),{scroll:!1,origin:"*mouse"}),f=a.sel):Oo(a,u,l,Je):(u=0,wt(a,new Rt([l],0),Je),f=a.sel);var P=n;function J(be){if(ye(P,be)!=0)if(P=be,r.unit=="rectangle"){for(var Ce=[],Ne=e.options.tabSize,Ie=Oe(Ae(a,n.line).text,n.ch,Ne),$e=Oe(Ae(a,be.line).text,be.ch,Ne),Ve=Math.min(Ie,$e),vt=Math.max(Ie,$e),rt=Math.min(n.line,be.line),Ot=Math.min(e.lastLine(),Math.max(n.line,be.line));rt<=Ot;rt++){var At=Ae(a,rt).text,ut=Ge(At,Ve,Ne);Ve==vt?Ce.push(new Ye(ne(rt,ut),ne(rt,ut))):At.length>ut&&Ce.push(new Ye(ne(rt,ut),ne(rt,Ge(At,vt,Ne))))}Ce.length||Ce.push(new Ye(n,n)),wt(a,Yt(e,f.ranges.slice(0,u).concat(Ce),u),{origin:"*mouse",scroll:!1}),e.scrollIntoView(be)}else{var Dt=l,yt=Ql(e,be,r.unit),ft=Dt.anchor,ct;ye(yt.anchor,ft)>0?(ct=yt.head,ft=Zr(Dt.from(),yt.anchor)):(ct=yt.anchor,ft=Et(Dt.to(),yt.head));var lt=f.ranges.slice(0);lt[u]=fd(e,new Ye(Re(a,ft),ct)),wt(a,Yt(e,lt,u),Je)}}var Y=i.wrapper.getBoundingClientRect(),ie=0;function ue(be){var Ce=++ie,Ne=Mr(e,be,!0,r.unit=="rectangle");if(Ne)if(ye(Ne,P)!=0){e.curOp.focus=B(de(e)),J(Ne);var Ie=gi(i,a);(Ne.line>=Ie.to||Ne.lineY.bottom?20:0;$e&&setTimeout(gt(e,function(){ie==Ce&&(i.scroller.scrollTop+=$e,ue(be))}),50)}}function me(be){e.state.selectingText=!1,ie=1/0,be&&(kt(be),i.input.focus()),_t(i.wrapper.ownerDocument,"mousemove",ve),_t(i.wrapper.ownerDocument,"mouseup",_e),a.history.lastSelOrigin=null}var ve=gt(e,function(be){be.buttons===0||!Ut(be)?me(be):ue(be)}),_e=gt(e,me);e.state.selectingText=_e,Fe(i.wrapper.ownerDocument,"mousemove",ve),Fe(i.wrapper.ownerDocument,"mouseup",_e)}function fd(e,t){var n=t.anchor,r=t.head,i=Ae(e.doc,n.line);if(ye(n,r)==0&&n.sticky==r.sticky)return t;var a=Pe(i);if(!a)return t;var l=Pt(a,n.ch,n.sticky),u=a[l];if(u.from!=n.ch&&u.to!=n.ch)return t;var f=l+(u.from==n.ch==(u.level!=1)?0:1);if(f==0||f==a.length)return t;var m;if(r.line!=n.line)m=(r.line-n.line)*(e.doc.direction=="ltr"?1:-1)>0;else{var A=Pt(a,r.ch,r.sticky),P=A-l||(r.ch-n.ch)*(u.level==1?-1:1);A==f-1||A==f?m=P<0:m=P>0}var J=a[f+(m?-1:0)],Y=m==(J.level==1),ie=Y?J.from:J.to,ue=Y?"after":"before";return n.ch==ie&&n.sticky==ue?t:new Ye(new ne(n.line,ie,ue),r)}function Vl(e,t,n,r){var i,a;if(t.touches)i=t.touches[0].clientX,a=t.touches[0].clientY;else try{i=t.clientX,a=t.clientY}catch{return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&kt(t);var l=e.display,u=l.lineDiv.getBoundingClientRect();if(a>u.bottom||!Ft(e,n))return Ct(t);a-=u.top-l.viewOffset;for(var f=0;f=i){var A=O(e.doc,a),P=e.display.gutterSpecs[f];return it(e,n,e,A,P.className,t),Ct(t)}}}function Wo(e,t){return Vl(e,t,"gutterClick",!0)}function Jl(e,t){lr(e.display,t)||dd(e,t)||ot(e,t,"contextmenu")||F||e.display.input.onContextMenu(t)}function dd(e,t){return Ft(e,"gutterContextMenu")?Vl(e,t,"gutterContextMenu",!1):!1}function es(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),En(e)}var fn={toString:function(){return"CodeMirror.Init"}},ts={},Ei={};function pd(e){var t=e.optionHandlers;function n(r,i,a,l){e.defaults[r]=i,a&&(t[r]=l?function(u,f,m){m!=fn&&a(u,f,m)}:a)}e.defineOption=n,e.Init=fn,n("value","",function(r,i){return r.setValue(i)},!0),n("mode",null,function(r,i){r.doc.modeOption=i,qo(r)},!0),n("indentUnit",2,qo,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,function(r){Nn(r),En(r),zt(r)},!0),n("lineSeparator",null,function(r,i){if(r.doc.lineSep=i,!!i){var a=[],l=r.doc.first;r.doc.iter(function(f){for(var m=0;;){var A=f.text.indexOf(i,m);if(A==-1)break;m=A+i.length,a.push(ne(l,A))}l++});for(var u=a.length-1;u>=0;u--)ln(r.doc,i,a[u],ne(a[u].line,a[u].ch+i.length))}}),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(r,i,a){r.state.specialChars=new RegExp(i.source+(i.test(" ")?"":"| "),"g"),a!=fn&&r.refresh()}),n("specialCharPlaceholder",Hc,function(r){return r.refresh()},!0),n("electricChars",!0),n("inputStyle",M?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),n("spellcheck",!1,function(r,i){return r.getInputField().spellcheck=i},!0),n("autocorrect",!1,function(r,i){return r.getInputField().autocorrect=i},!0),n("autocapitalize",!1,function(r,i){return r.getInputField().autocapitalize=i},!0),n("rtlMoveVisually",!ee),n("wholeLineUpdateBefore",!0),n("theme","default",function(r){es(r),Fn(r)},!0),n("keyMap","default",function(r,i,a){var l=Li(i),u=a!=fn&&Li(a);u&&u.detach&&u.detach(r,l),l.attach&&l.attach(r,u||null)}),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,gd,!0),n("gutters",[],function(r,i){r.display.gutterSpecs=Ao(i,r.options.lineNumbers),Fn(r)},!0),n("fixedGutter",!0,function(r,i){r.display.gutters.style.left=i?yo(r.display)+"px":"0",r.refresh()},!0),n("coverGutterNextToScrollbar",!1,function(r){return rn(r)},!0),n("scrollbarStyle","native",function(r){nl(r),rn(r),r.display.scrollbars.setScrollTop(r.doc.scrollTop),r.display.scrollbars.setScrollLeft(r.doc.scrollLeft)},!0),n("lineNumbers",!1,function(r,i){r.display.gutterSpecs=Ao(r.options.gutters,i),Fn(r)},!0),n("firstLineNumber",1,Fn,!0),n("lineNumberFormatter",function(r){return r},Fn,!0),n("showCursorWhenSelecting",!1,zn,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,function(r,i){i=="nocursor"&&(en(r),r.display.input.blur()),r.display.input.readOnlyChanged(i)}),n("screenReaderLabel",null,function(r,i){i=i===""?null:i,r.display.input.screenReaderLabelChanged(i)}),n("disableInput",!1,function(r,i){i||r.display.input.reset()},!0),n("dragDrop",!0,hd),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zn,!0),n("singleCursorHeightPerLine",!0,zn,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,Nn,!0),n("addModeClass",!1,Nn,!0),n("pollInterval",100),n("undoDepth",200,function(r,i){return r.doc.history.undoDepth=i}),n("historyEventDelay",1250),n("viewportMargin",10,function(r){return r.refresh()},!0),n("maxHighlightLength",1e4,Nn,!0),n("moveInputWithCursor",!0,function(r,i){i||r.display.input.resetPosition()}),n("tabindex",null,function(r,i){return r.display.input.getField().tabIndex=i||""}),n("autofocus",null),n("direction","ltr",function(r,i){return r.doc.setDirection(i)},!0),n("phrases",null)}function hd(e,t,n){var r=n&&n!=fn;if(!t!=!r){var i=e.display.dragFunctions,a=t?Fe:_t;a(e.display.scroller,"dragstart",i.start),a(e.display.scroller,"dragenter",i.enter),a(e.display.scroller,"dragover",i.over),a(e.display.scroller,"dragleave",i.leave),a(e.display.scroller,"drop",i.drop)}}function gd(e){e.options.lineWrapping?(le(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Q(e.display.wrapper,"CodeMirror-wrap"),so(e)),xo(e),zt(e),En(e),setTimeout(function(){return rn(e)},100)}function tt(e,t){var n=this;if(!(this instanceof tt))return new tt(e,t);this.options=t=t?ge(t):{},ge(ts,t,!1);var r=t.value;typeof r=="string"?r=new Mt(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new tt.inputStyles[t.inputStyle](this),a=this.display=new Ef(e,r,i,t);a.wrapper.CodeMirror=this,es(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),nl(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new qe,keySeq:null,specialChars:null},t.autofocus&&!M&&a.input.focus(),s&&g<11&&setTimeout(function(){return n.display.input.reset(!0)},20),md(this),Gf(),Ir(this),this.curOp.forceUpdate=!0,pl(this,r),t.autofocus&&!M||this.hasFocus()?setTimeout(function(){n.hasFocus()&&!n.state.focused&&So(n)},20):en(this);for(var l in Ei)Ei.hasOwnProperty(l)&&Ei[l](this,t[l],fn);al(this),t.finishInit&&t.finishInit(this);for(var u=0;u20*20}Fe(t.scroller,"touchstart",function(f){if(!ot(e,f)&&!a(f)&&!Wo(e,f)){t.input.ensurePolled(),clearTimeout(n);var m=+new Date;t.activeTouch={start:m,moved:!1,prev:m-r.end<=300?r:null},f.touches.length==1&&(t.activeTouch.left=f.touches[0].pageX,t.activeTouch.top=f.touches[0].pageY)}}),Fe(t.scroller,"touchmove",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),Fe(t.scroller,"touchend",function(f){var m=t.activeTouch;if(m&&!lr(t,f)&&m.left!=null&&!m.moved&&new Date-m.start<300){var A=e.coordsChar(t.activeTouch,"page"),P;!m.prev||l(m,m.prev)?P=new Ye(A,A):!m.prev.prev||l(m,m.prev.prev)?P=e.findWordAt(A):P=new Ye(ne(A.line,0),Re(e.doc,ne(A.line+1,0))),e.setSelection(P.anchor,P.head),e.focus(),kt(f)}i()}),Fe(t.scroller,"touchcancel",i),Fe(t.scroller,"scroll",function(){t.scroller.clientHeight&&(An(e,t.scroller.scrollTop),Dr(e,t.scroller.scrollLeft,!0),it(e,"scroll",e))}),Fe(t.scroller,"mousewheel",function(f){return ul(e,f)}),Fe(t.scroller,"DOMMouseScroll",function(f){return ul(e,f)}),Fe(t.wrapper,"scroll",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(f){ot(e,f)||dr(f)},over:function(f){ot(e,f)||(Kf(e,f),dr(f))},start:function(f){return $f(e,f)},drop:gt(e,Uf),leave:function(f){ot(e,f)||Ol(e)}};var u=t.input.getField();Fe(u,"keyup",function(f){return Zl.call(e,f)}),Fe(u,"keydown",gt(e,Gl)),Fe(u,"keypress",gt(e,Xl)),Fe(u,"focus",function(f){return So(e,f)}),Fe(u,"blur",function(f){return en(e,f)})}var Uo=[];tt.defineInitHook=function(e){return Uo.push(e)};function Xn(e,t,n,r){var i=e.doc,a;n==null&&(n="add"),n=="smart"&&(i.mode.indent?a=wn(e,t).state:n="prev");var l=e.options.tabSize,u=Ae(i,t),f=Oe(u.text,null,l);u.stateAfter&&(u.stateAfter=null);var m=u.text.match(/^\s*/)[0],A;if(!r&&!/\S/.test(u.text))A=0,n="not";else if(n=="smart"&&(A=i.mode.indent(a,u.text.slice(m.length),u.text),A==Ze||A>150)){if(!r)return;n="prev"}n=="prev"?t>i.first?A=Oe(Ae(i,t-1).text,null,l):A=0:n=="add"?A=f+e.options.indentUnit:n=="subtract"?A=f-e.options.indentUnit:typeof n=="number"&&(A=f+n),A=Math.max(0,A);var P="",J=0;if(e.options.indentWithTabs)for(var Y=Math.floor(A/l);Y;--Y)J+=l,P+=" ";if(Jl,f=Bt(t),m=null;if(u&&r.ranges.length>1)if(Qt&&Qt.text.join(` +`)==t){if(r.ranges.length%Qt.text.length==0){m=[];for(var A=0;A=0;J--){var Y=r.ranges[J],ie=Y.from(),ue=Y.to();Y.empty()&&(n&&n>0?ie=ne(ie.line,ie.ch-n):e.state.overwrite&&!u?ue=ne(ue.line,Math.min(Ae(a,ue.line).text.length,ue.ch+ce(f).length)):u&&Qt&&Qt.lineWise&&Qt.text.join(` +`)==f.join(` +`)&&(ie=ue=ne(ie.line,0)));var me={from:ie,to:ue,text:m?m[J%m.length]:f,origin:i||(u?"paste":e.state.cutIncoming>l?"cut":"+input")};an(e.doc,me),ht(e,"inputRead",e,me)}t&&!u&&ns(e,t),tn(e),e.curOp.updateInput<2&&(e.curOp.updateInput=P),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function rs(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),!t.isReadOnly()&&!t.options.disableInput&&t.hasFocus()&&Nt(t,function(){return $o(t,n,0,null,"paste")}),!0}function ns(e,t){if(!(!e.options.electricChars||!e.options.smartIndent))for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var a=e.getModeAt(i.head),l=!1;if(a.electricChars){for(var u=0;u-1){l=Xn(e,i.head.line,"smart");break}}else a.electricInput&&a.electricInput.test(Ae(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Xn(e,i.head.line,"smart"));l&&ht(e,"electricInput",e,i.head.line)}}}function is(e){for(var t=[],n=[],r=0;ra&&(Xn(this,u.head.line,r,!0),a=u.head.line,l==this.doc.sel.primIndex&&tn(this));else{var f=u.from(),m=u.to(),A=Math.max(a,f.line);a=Math.min(this.lastLine(),m.line-(m.ch?0:1))+1;for(var P=A;P0&&Oo(this.doc,l,new Ye(f,J[l].to()),ke)}}}),getTokenAt:function(r,i){return ga(this,r,i)},getLineTokens:function(r,i){return ga(this,ne(r),i,!0)},getTokenTypeAt:function(r){r=Re(this.doc,r);var i=da(this,Ae(this.doc,r.line)),a=0,l=(i.length-1)/2,u=r.ch,f;if(u==0)f=i[2];else for(;;){var m=a+l>>1;if((m?i[m*2-1]:0)>=u)l=m;else if(i[m*2+1]f&&(r=f,l=!0),u=Ae(this.doc,r)}else u=r;return ci(this,u,{top:0,left:0},i||"page",a||l).top+(l?this.doc.height-ar(u):0)},defaultTextHeight:function(){return Vr(this.display)},defaultCharWidth:function(){return Jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(r,i,a,l,u){var f=this.display;r=Xt(this,Re(this.doc,r));var m=r.bottom,A=r.left;if(i.style.position="absolute",i.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(i),f.sizer.appendChild(i),l=="over")m=r.top;else if(l=="above"||l=="near"){var P=Math.max(f.wrapper.clientHeight,this.doc.height),J=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);(l=="above"||r.bottom+i.offsetHeight>P)&&r.top>i.offsetHeight?m=r.top-i.offsetHeight:r.bottom+i.offsetHeight<=P&&(m=r.bottom),A+i.offsetWidth>J&&(A=J-i.offsetWidth)}i.style.top=m+"px",i.style.left=i.style.right="",u=="right"?(A=f.sizer.clientWidth-i.offsetWidth,i.style.right="0px"):(u=="left"?A=0:u=="middle"&&(A=(f.sizer.clientWidth-i.offsetWidth)/2),i.style.left=A+"px"),a&&hf(this,{left:A,top:m,right:A+i.offsetWidth,bottom:m+i.offsetHeight})},triggerOnKeyDown:Tt(Gl),triggerOnKeyPress:Tt(Xl),triggerOnKeyUp:Zl,triggerOnMouseDown:Tt(Yl),execCommand:function(r){if($n.hasOwnProperty(r))return $n[r].call(null,this)},triggerElectric:Tt(function(r){ns(this,r)}),findPosH:function(r,i,a,l){var u=1;i<0&&(u=-1,i=-i);for(var f=Re(this.doc,r),m=0;m0&&A(a.charAt(l-1));)--l;for(;u.5||this.options.lineWrapping)&&xo(this),it(this,"refresh",this)}),swapDoc:Tt(function(r){var i=this.doc;return i.cm=null,this.state.selectingText&&this.state.selectingText(),pl(this,r),En(this),this.display.input.reset(),Mn(this,r.scrollLeft,r.scrollTop),this.curOp.forceScroll=!0,ht(this,"swapDoc",this,i),i}),phrase:function(r){var i=this.options.phrases;return i&&Object.prototype.hasOwnProperty.call(i,r)?i[r]:r},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Wt(e),e.registerHelper=function(r,i,a){n.hasOwnProperty(r)||(n[r]=e[r]={_global:[]}),n[r][i]=a},e.registerGlobalHelper=function(r,i,a,l){e.registerHelper(r,i,l),n[r]._global.push({pred:a,val:l})}}function Go(e,t,n,r,i){var a=t,l=n,u=Ae(e,t.line),f=i&&e.direction=="rtl"?-n:n;function m(){var _e=t.line+f;return _e=e.first+e.size?!1:(t=new ne(_e,t.ch,t.sticky),u=Ae(e,_e))}function A(_e){var be;if(r=="codepoint"){var Ce=u.text.charCodeAt(t.ch+(n>0?0:-1));if(isNaN(Ce))be=null;else{var Ne=n>0?Ce>=55296&&Ce<56320:Ce>=56320&&Ce<57343;be=new ne(t.line,Math.max(0,Math.min(u.text.length,t.ch+n*(Ne?2:1))),-n)}}else i?be=Vf(e.cm,u,t,n):be=jo(u,t,n);if(be==null)if(!_e&&m())t=Ro(i,e.cm,u,t.line,f);else return!1;else t=be;return!0}if(r=="char"||r=="codepoint")A();else if(r=="column")A(!0);else if(r=="word"||r=="group")for(var P=null,J=r=="group",Y=e.cm&&e.cm.getHelper(t,"wordChars"),ie=!0;!(n<0&&!A(!ie));ie=!1){var ue=u.text.charAt(t.ch)||` +`,me=Me(ue,Y)?"w":J&&ue==` +`?"n":!J||/\s/.test(ue)?null:"p";if(J&&!ie&&!me&&(me="s"),P&&P!=me){n<0&&(n=1,A(),t.sticky="after");break}if(me&&(P=me),n>0&&!A(!ie))break}var ve=wi(e,t,a,l,!0);return Xe(a,ve)&&(ve.hitSide=!0),ve}function as(e,t,n,r){var i=e.doc,a=t.left,l;if(r=="page"){var u=Math.min(e.display.wrapper.clientHeight,pe(e).innerHeight||i(e).documentElement.clientHeight),f=Math.max(u-.5*Vr(e.display),3);l=(n>0?t.bottom:t.top)+n*f}else r=="line"&&(l=n>0?t.bottom+3:t.top-3);for(var m;m=mo(e,a,l),!!m.outside;){if(n<0?l<=0:l>=i.height){m.hitSide=!0;break}l+=n*5}return m}var Qe=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new qe,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qe.prototype.init=function(e){var t=this,n=this,r=n.cm,i=n.div=e.lineDiv;i.contentEditable=!0,Ko(i,r.options.spellcheck,r.options.autocorrect,r.options.autocapitalize);function a(u){for(var f=u.target;f;f=f.parentNode){if(f==i)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(f.className))break}return!1}Fe(i,"paste",function(u){!a(u)||ot(r,u)||rs(u,r)||g<=11&&setTimeout(gt(r,function(){return t.updateFromDOM()}),20)}),Fe(i,"compositionstart",function(u){t.composing={data:u.data,done:!1}}),Fe(i,"compositionupdate",function(u){t.composing||(t.composing={data:u.data,done:!1})}),Fe(i,"compositionend",function(u){t.composing&&(u.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),Fe(i,"touchstart",function(){return n.forceCompositionEnd()}),Fe(i,"input",function(){t.composing||t.readFromDOMSoon()});function l(u){if(!(!a(u)||ot(r,u))){if(r.somethingSelected())zi({lineWise:!1,text:r.getSelections()}),u.type=="cut"&&r.replaceSelection("",null,"cut");else if(r.options.lineWiseCopyCut){var f=is(r);zi({lineWise:!0,text:f.text}),u.type=="cut"&&r.operation(function(){r.setSelections(f.ranges,0,ke),r.replaceSelection("",null,"cut")})}else return;if(u.clipboardData){u.clipboardData.clearData();var m=Qt.text.join(` +`);if(u.clipboardData.setData("Text",m),u.clipboardData.getData("Text")==m){u.preventDefault();return}}var A=os(),P=A.firstChild;Ko(P),r.display.lineSpace.insertBefore(A,r.display.lineSpace.firstChild),P.value=Qt.text.join(` +`);var J=B(ze(i));q(P),setTimeout(function(){r.display.lineSpace.removeChild(A),J.focus(),J==i&&n.showPrimarySelection()},50)}}Fe(i,"copy",l),Fe(i,"cut",l)},Qe.prototype.screenReaderLabelChanged=function(e){e?this.div.setAttribute("aria-label",e):this.div.removeAttribute("aria-label")},Qe.prototype.prepareSelection=function(){var e=Ya(this.cm,!1);return e.focus=B(ze(this.div))==this.div,e},Qe.prototype.showSelection=function(e,t){!e||!this.cm.display.view.length||((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Qe.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Qe.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line=t.display.viewFrom&&ls(t,r)||{node:u[0].measure.map[2],offset:0},m=i.linee.firstLine()&&(r=ne(r.line-1,Ae(e.doc,r.line-1).length)),i.ch==Ae(e.doc,i.line).text.length&&i.linet.viewTo-1)return!1;var a,l,u;r.line==t.viewFrom||(a=Ar(e,r.line))==0?(l=_(t.view[0].line),u=t.view[0].node):(l=_(t.view[a].line),u=t.view[a-1].node.nextSibling);var f=Ar(e,i.line),m,A;if(f==t.view.length-1?(m=t.viewTo-1,A=t.lineDiv.lastChild):(m=_(t.view[f+1].line)-1,A=t.view[f+1].node.previousSibling),!u)return!1;for(var P=e.doc.splitLines(yd(e,u,A,l,m)),J=ir(e.doc,ne(l,0),ne(m,Ae(e.doc,m).text.length));P.length>1&&J.length>1;)if(ce(P)==ce(J))P.pop(),J.pop(),m--;else if(P[0]==J[0])P.shift(),J.shift(),l++;else break;for(var Y=0,ie=0,ue=P[0],me=J[0],ve=Math.min(ue.length,me.length);Yr.ch&&_e.charCodeAt(_e.length-ie-1)==be.charCodeAt(be.length-ie-1);)Y--,ie++;P[P.length-1]=_e.slice(0,_e.length-ie).replace(/^\u200b+/,""),P[0]=P[0].slice(Y).replace(/\u200b+$/,"");var Ne=ne(l,Y),Ie=ne(m,J.length?ce(J).length-ie:0);if(P.length>1||P[0]||ye(Ne,Ie))return ln(e.doc,P,Ne,Ie,"+input"),!0},Qe.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qe.prototype.reset=function(){this.forceCompositionEnd()},Qe.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qe.prototype.readFromDOMSoon=function(){var e=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing)if(e.composing.done)e.composing=null;else return;e.updateFromDOM()},80))},Qe.prototype.updateFromDOM=function(){var e=this;(this.cm.isReadOnly()||!this.pollContent())&&Nt(this.cm,function(){return zt(e.cm)})},Qe.prototype.setUneditable=function(e){e.contentEditable="false"},Qe.prototype.onKeyPress=function(e){e.charCode==0||this.composing||(e.preventDefault(),this.cm.isReadOnly()||gt(this.cm,$o)(this.cm,String.fromCharCode(e.charCode==null?e.keyCode:e.charCode),0))},Qe.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(e!="nocursor")},Qe.prototype.onContextMenu=function(){},Qe.prototype.resetPosition=function(){},Qe.prototype.needsContentAttribute=!0;function ls(e,t){var n=po(e,t.line);if(!n||n.hidden)return null;var r=Ae(e.doc,t.line),i=Na(n,r,t.line),a=Pe(r,e.doc.direction),l="left";if(a){var u=Pt(a,t.ch);l=u%2?"right":"left"}var f=ja(i.map,t.ch,l);return f.offset=f.collapse=="right"?f.end:f.start,f}function bd(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function dn(e,t){return t&&(e.bad=!0),e}function yd(e,t,n,r,i){var a="",l=!1,u=e.doc.lineSeparator(),f=!1;function m(Y){return function(ie){return ie.id==Y}}function A(){l&&(a+=u,f&&(a+=u),l=f=!1)}function P(Y){Y&&(A(),a+=Y)}function J(Y){if(Y.nodeType==1){var ie=Y.getAttribute("cm-text");if(ie){P(ie);return}var ue=Y.getAttribute("cm-marker"),me;if(ue){var ve=e.findMarks(ne(r,0),ne(i+1,0),m(+ue));ve.length&&(me=ve[0].find(0))&&P(ir(e.doc,me.from,me.to).join(u));return}if(Y.getAttribute("contenteditable")=="false")return;var _e=/^(pre|div|p|li|table|br)$/i.test(Y.nodeName);if(!/^br$/i.test(Y.nodeName)&&Y.textContent.length==0)return;_e&&A();for(var be=0;be=9&&t.hasSelection&&(t.hasSelection=null),n.poll()}),Fe(i,"paste",function(l){ot(r,l)||rs(l,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())});function a(l){if(!ot(r,l)){if(r.somethingSelected())zi({lineWise:!1,text:r.getSelections()});else if(r.options.lineWiseCopyCut){var u=is(r);zi({lineWise:!0,text:u.text}),l.type=="cut"?r.setSelections(u.ranges,null,ke):(n.prevInput="",i.value=u.text.join(` +`),q(i))}else return;l.type=="cut"&&(r.state.cutIncoming=+new Date)}}Fe(i,"cut",a),Fe(i,"copy",a),Fe(e.scroller,"paste",function(l){if(!(lr(e,l)||ot(r,l))){if(!i.dispatchEvent){r.state.pasteIncoming=+new Date,n.focus();return}var u=new Event("paste");u.clipboardData=l.clipboardData,i.dispatchEvent(u)}}),Fe(e.lineSpace,"selectstart",function(l){lr(e,l)||kt(l)}),Fe(i,"compositionstart",function(){var l=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:l,range:r.markText(l,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Fe(i,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},st.prototype.createField=function(e){this.wrapper=os(),this.textarea=this.wrapper.firstChild;var t=this.cm.options;Ko(this.textarea,t.spellcheck,t.autocorrect,t.autocapitalize)},st.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},st.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Ya(e);if(e.options.moveInputWithCursor){var i=Xt(e,n.sel.primary().head,"div"),a=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-a.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-a.left))}return r},st.prototype.showSelection=function(e){var t=this.cm,n=t.display;V(n.cursorDiv,e.cursors),V(n.selectionDiv,e.selection),e.teTop!=null&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},st.prototype.reset=function(e){if(!(this.contextMenuPending||this.composing&&e)){var t=this.cm;if(this.resetting=!0,t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&q(this.textarea),s&&g>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",s&&g>=9&&(this.hasSelection=null));this.resetting=!1}},st.prototype.getField=function(){return this.textarea},st.prototype.supportsTouch=function(){return!1},st.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!M||B(ze(this.textarea))!=this.textarea))try{this.textarea.focus()}catch{}},st.prototype.blur=function(){this.textarea.blur()},st.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},st.prototype.receivedFocus=function(){this.slowPoll()},st.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},st.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0;function n(){var r=t.poll();!r&&!e?(e=!0,t.polling.set(60,n)):(t.pollingFast=!1,t.slowPoll())}t.polling.set(20,n)},st.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||this.resetting||!t.state.focused||hr(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(s&&g>=9&&this.hasSelection===i||H&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var a=i.charCodeAt(0);if(a==8203&&!r&&(r="\u200B"),a==8666)return this.reset(),this.cm.execCommand("undo")}for(var l=0,u=Math.min(r.length,i.length);l1e3||i.indexOf(` +`)>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},st.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},st.prototype.onKeyPress=function(){s&&g>=9&&(this.hasSelection=null),this.fastPoll()},st.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var a=Mr(n,e),l=r.scroller.scrollTop;if(!a||d)return;var u=n.options.resetSelectionOnContextMenu;u&&n.doc.sel.contains(a)==-1&>(n,wt)(n.doc,yr(a),ke);var f=i.style.cssText,m=t.wrapper.style.cssText,A=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText="position: static",i.style.cssText=`position: absolute; width: 30px; height: 30px; + top: `+(e.clientY-A.top-5)+"px; left: "+(e.clientX-A.left-5)+`px; + z-index: 1000; background: `+(s?"rgba(255, 255, 255, .05)":"transparent")+`; + outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var P;h&&(P=i.ownerDocument.defaultView.scrollY),r.input.focus(),h&&i.ownerDocument.defaultView.scrollTo(null,P),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=Y,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll);function J(){if(i.selectionStart!=null){var ue=n.somethingSelected(),me="\u200B"+(ue?i.value:"");i.value="\u21DA",i.value=me,t.prevInput=ue?"":"\u200B",i.selectionStart=1,i.selectionEnd=me.length,r.selForContextMenu=n.doc.sel}}function Y(){if(t.contextMenuPending==Y&&(t.contextMenuPending=!1,t.wrapper.style.cssText=m,i.style.cssText=f,s&&g<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=l),i.selectionStart!=null)){(!s||s&&g<9)&&J();var ue=0,me=function(){r.selForContextMenu==n.doc.sel&&i.selectionStart==0&&i.selectionEnd>0&&t.prevInput=="\u200B"?gt(n,Ll)(n):ue++<10?r.detectingSelectAll=setTimeout(me,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(me,200)}}if(s&&g>=9&&J(),F){dr(e);var ie=function(){_t(window,"mouseup",ie),setTimeout(Y,20)};Fe(window,"mouseup",ie)}else setTimeout(Y,50)},st.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=e=="nocursor",this.textarea.readOnly=!!e},st.prototype.setUneditable=function(){},st.prototype.needsContentAttribute=!1;function _d(e,t){if(t=t?ge(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),t.autofocus==null){var n=B(ze(e));t.autofocus=n==e||e.getAttribute("autofocus")!=null&&n==document.body}function r(){e.value=u.getValue()}var i;if(e.form&&(Fe(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var a=e.form;i=a.submit;try{var l=a.submit=function(){r(),a.submit=i,a.submit(),a.submit=l}}catch{}}t.finishInit=function(f){f.save=r,f.getTextArea=function(){return e},f.toTextArea=function(){f.toTextArea=isNaN,r(),e.parentNode.removeChild(f.getWrapperElement()),e.style.display="",e.form&&(_t(e.form,"submit",r),!t.leaveSubmitMethodAlone&&typeof e.form.submit=="function"&&(e.form.submit=i))}},e.style.display="none";var u=tt(function(f){return e.parentNode.insertBefore(f,e.nextSibling)},t);return u}function kd(e){e.off=_t,e.on=Fe,e.wheelEventPixels=zf,e.Doc=Mt,e.splitLines=Bt,e.countColumn=Oe,e.findColumn=Ge,e.isWordChar=we,e.Pass=Ze,e.signal=it,e.Line=Xr,e.changeEnd=xr,e.scrollbarModel=rl,e.Pos=ne,e.cmpPos=ye,e.modes=Wr,e.mimeModes=Kt,e.resolveMode=Ur,e.getMode=$r,e.modeExtensions=gr,e.extendMode=Kr,e.copyState=Vt,e.startState=Gr,e.innerMode=_n,e.commands=$n,e.keyMap=ur,e.keyName=Bl,e.isModifierKey=Rl,e.lookupKey=un,e.normalizeKeyMap=Qf,e.StringStream=at,e.SharedTextMarker=Bn,e.TextMarker=kr,e.LineWidget=Hn,e.e_preventDefault=kt,e.e_stopPropagation=Hr,e.e_stop=dr,e.addClass=le,e.contains=I,e.rmClass=Q,e.keyNames=wr}pd(tt),vd(tt);var wd="iter insert remove copy getEditor constructor".split(" ");for(var Ai in Mt.prototype)Mt.prototype.hasOwnProperty(Ai)&&Se(wd,Ai)<0&&(tt.prototype[Ai]=function(e){return function(){return e.apply(this.doc,arguments)}}(Mt.prototype[Ai]));return Wt(Mt),tt.inputStyles={textarea:st,contenteditable:Qe},tt.defineMode=function(e){!tt.defaults.mode&&e!="null"&&(tt.defaults.mode=e),Gt.apply(this,arguments)},tt.defineMIME=Cr,tt.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),tt.defineMIME("text/plain","null"),tt.defineExtension=function(e,t){tt.prototype[e]=t},tt.defineDocExtension=function(e,t){Mt.prototype[e]=t},tt.fromTextArea=_d,kd(tt),tt.version="5.65.16",tt})});var Yn=Ke((us,cs)=>{(function(o){typeof us=="object"&&typeof cs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.overlayMode=function(p,v,C){return{startState:function(){return{base:o.startState(p),overlay:o.startState(v),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(b){return{base:o.copyState(p,b.base),overlay:o.copyState(v,b.overlay),basePos:b.basePos,baseCur:null,overlayPos:b.overlayPos,overlayCur:null}},token:function(b,k){return(b!=k.streamSeen||Math.min(k.basePos,k.overlayPos){(function(o){typeof fs=="object"&&typeof ds=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";var p=/^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,v=/^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,C=/[*+-]\s/;o.commands.newlineAndIndentContinueMarkdownList=function(k){if(k.getOption("disableInput"))return o.Pass;for(var s=k.listSelections(),g=[],h=0;h\s*$/.test(E),M=!/>\s*$/.test(E);(R||M)&&k.replaceRange("",{line:S.line,ch:0},{line:S.line,ch:S.ch+1}),g[h]=` +`}else{var H=z[1],Z=z[5],ee=!(C.test(z[2])||z[2].indexOf(">")>=0),re=ee?parseInt(z[3],10)+1+z[4]:z[2].replace("x"," ");g[h]=` +`+H+re+Z,ee&&b(k,S)}}k.replaceSelections(g)};function b(k,s){var g=s.line,h=0,S=0,w=p.exec(k.getLine(g)),c=w[1];do{h+=1;var d=g+h,T=k.getLine(d),E=p.exec(T);if(E){var z=E[1],y=parseInt(w[3],10)+h-S,R=parseInt(E[3],10),M=R;if(c===z&&!isNaN(R))y===R&&(M=R+1),y>R&&(M=y+1),k.replaceRange(T.replace(p,z+M+E[4]+E[5]),{line:d,ch:0},{line:d,ch:T.length});else{if(c.length>z.length||c.length{(function(o){typeof hs=="object"&&typeof gs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){o.defineOption("placeholder","",function(g,h,S){var w=S&&S!=o.Init;if(h&&!w)g.on("blur",b),g.on("change",k),g.on("swapDoc",k),o.on(g.getInputField(),"compositionupdate",g.state.placeholderCompose=function(){C(g)}),k(g);else if(!h&&w){g.off("blur",b),g.off("change",k),g.off("swapDoc",k),o.off(g.getInputField(),"compositionupdate",g.state.placeholderCompose),p(g);var c=g.getWrapperElement();c.className=c.className.replace(" CodeMirror-empty","")}h&&!g.hasFocus()&&b(g)});function p(g){g.state.placeholder&&(g.state.placeholder.parentNode.removeChild(g.state.placeholder),g.state.placeholder=null)}function v(g){p(g);var h=g.state.placeholder=document.createElement("pre");h.style.cssText="height: 0; overflow: visible",h.style.direction=g.getOption("direction"),h.className="CodeMirror-placeholder CodeMirror-line-like";var S=g.getOption("placeholder");typeof S=="string"&&(S=document.createTextNode(S)),h.appendChild(S),g.display.lineSpace.insertBefore(h,g.display.lineSpace.firstChild)}function C(g){setTimeout(function(){var h=!1;if(g.lineCount()==1){var S=g.getInputField();h=S.nodeName=="TEXTAREA"?!g.getLine(0).length:!/[^\u200b]/.test(S.querySelector(".CodeMirror-line").textContent)}h?v(g):p(g)},20)}function b(g){s(g)&&v(g)}function k(g){var h=g.getWrapperElement(),S=s(g);h.className=h.className.replace(" CodeMirror-empty","")+(S?" CodeMirror-empty":""),S?v(g):p(g)}function s(g){return g.lineCount()===1&&g.getLine(0)===""}})});var ys=Ke((vs,bs)=>{(function(o){typeof vs=="object"&&typeof bs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineOption("styleSelectedText",!1,function(w,c,d){var T=d&&d!=o.Init;c&&!T?(w.state.markedSelection=[],w.state.markedSelectionStyle=typeof c=="string"?c:"CodeMirror-selectedtext",h(w),w.on("cursorActivity",p),w.on("change",v)):!c&&T&&(w.off("cursorActivity",p),w.off("change",v),g(w),w.state.markedSelection=w.state.markedSelectionStyle=null)});function p(w){w.state.markedSelection&&w.operation(function(){S(w)})}function v(w){w.state.markedSelection&&w.state.markedSelection.length&&w.operation(function(){g(w)})}var C=8,b=o.Pos,k=o.cmpPos;function s(w,c,d,T){if(k(c,d)!=0)for(var E=w.state.markedSelection,z=w.state.markedSelectionStyle,y=c.line;;){var R=y==c.line?c:b(y,0),M=y+C,H=M>=d.line,Z=H?d:b(M,0),ee=w.markText(R,Z,{className:z});if(T==null?E.push(ee):E.splice(T++,0,ee),H)break;y=M}}function g(w){for(var c=w.state.markedSelection,d=0;d1)return h(w);var c=w.getCursor("start"),d=w.getCursor("end"),T=w.state.markedSelection;if(!T.length)return s(w,c,d);var E=T[0].find(),z=T[T.length-1].find();if(!E||!z||d.line-c.line<=C||k(c,z.to)>=0||k(d,E.from)<=0)return h(w);for(;k(c,E.from)>0;)T.shift().clear(),E=T[0].find();for(k(c,E.from)<0&&(E.to.line-c.line0&&(d.line-z.from.line{(function(o){typeof xs=="object"&&typeof _s=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";var p=o.Pos;function v(y){var R=y.flags;return R??(y.ignoreCase?"i":"")+(y.global?"g":"")+(y.multiline?"m":"")}function C(y,R){for(var M=v(y),H=M,Z=0;Zre);N++){var F=y.getLine(ee++);H=H==null?F:H+` +`+F}Z=Z*2,R.lastIndex=M.ch;var D=R.exec(H);if(D){var Q=H.slice(0,D.index).split(` +`),j=D[0].split(` +`),V=M.line+Q.length-1,x=Q[Q.length-1].length;return{from:p(V,x),to:p(V+j.length-1,j.length==1?x+j[0].length:j[j.length-1].length),match:D}}}}function g(y,R,M){for(var H,Z=0;Z<=y.length;){R.lastIndex=Z;var ee=R.exec(y);if(!ee)break;var re=ee.index+ee[0].length;if(re>y.length-M)break;(!H||re>H.index+H[0].length)&&(H=ee),Z=ee.index+1}return H}function h(y,R,M){R=C(R,"g");for(var H=M.line,Z=M.ch,ee=y.firstLine();H>=ee;H--,Z=-1){var re=y.getLine(H),N=g(re,R,Z<0?0:re.length-Z);if(N)return{from:p(H,N.index),to:p(H,N.index+N[0].length),match:N}}}function S(y,R,M){if(!b(R))return h(y,R,M);R=C(R,"gm");for(var H,Z=1,ee=y.getLine(M.line).length-M.ch,re=M.line,N=y.firstLine();re>=N;){for(var F=0;F=N;F++){var D=y.getLine(re--);H=H==null?D:D+` +`+H}Z*=2;var Q=g(H,R,ee);if(Q){var j=H.slice(0,Q.index).split(` +`),V=Q[0].split(` +`),x=re+j.length,K=j[j.length-1].length;return{from:p(x,K),to:p(x+V.length-1,V.length==1?K+V[0].length:V[V.length-1].length),match:Q}}}}var w,c;String.prototype.normalize?(w=function(y){return y.normalize("NFD").toLowerCase()},c=function(y){return y.normalize("NFD")}):(w=function(y){return y.toLowerCase()},c=function(y){return y});function d(y,R,M,H){if(y.length==R.length)return M;for(var Z=0,ee=M+Math.max(0,y.length-R.length);;){if(Z==ee)return Z;var re=Z+ee>>1,N=H(y.slice(0,re)).length;if(N==M)return re;N>M?ee=re:Z=re+1}}function T(y,R,M,H){if(!R.length)return null;var Z=H?w:c,ee=Z(R).split(/\r|\n\r?/);e:for(var re=M.line,N=M.ch,F=y.lastLine()+1-ee.length;re<=F;re++,N=0){var D=y.getLine(re).slice(N),Q=Z(D);if(ee.length==1){var j=Q.indexOf(ee[0]);if(j==-1)continue e;var M=d(D,Q,j,Z)+N;return{from:p(re,d(D,Q,j,Z)+N),to:p(re,d(D,Q,j+ee[0].length,Z)+N)}}else{var V=Q.length-ee[0].length;if(Q.slice(V)!=ee[0])continue e;for(var x=1;x=F;re--,N=-1){var D=y.getLine(re);N>-1&&(D=D.slice(0,N));var Q=Z(D);if(ee.length==1){var j=Q.lastIndexOf(ee[0]);if(j==-1)continue e;return{from:p(re,d(D,Q,j,Z)),to:p(re,d(D,Q,j+ee[0].length,Z))}}else{var V=ee[ee.length-1];if(Q.slice(0,V.length)!=V)continue e;for(var x=1,M=re-ee.length+1;x(this.doc.getLine(R.line)||"").length&&(R.ch=0,R.line++)),o.cmpPos(R,this.doc.clipPos(R))!=0))return this.atOccurrence=!1;var M=this.matches(y,R);if(this.afterEmptyMatch=M&&o.cmpPos(M.from,M.to)==0,M)return this.pos=M,this.atOccurrence=!0,this.pos.match||!0;var H=p(y?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:H,to:H},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(y,R){if(this.atOccurrence){var M=o.splitLines(y);this.doc.replaceRange(M,this.pos.from,this.pos.to,R),this.pos.to=p(this.pos.from.line+M.length-1,M[M.length-1].length+(M.length==1?this.pos.from.ch:0))}}},o.defineExtension("getSearchCursor",function(y,R,M){return new z(this.doc,y,R,M)}),o.defineDocExtension("getSearchCursor",function(y,R,M){return new z(this,y,R,M)}),o.defineExtension("selectMatches",function(y,R){for(var M=[],H=this.getSearchCursor(y,this.getCursor("from"),R);H.findNext()&&!(o.cmpPos(H.to(),this.getCursor("to"))>0);)M.push({anchor:H.from(),head:H.to()});M.length&&this.setSelections(M,0)})})});var Vo=Ke((ws,Ss)=>{(function(o){typeof ws=="object"&&typeof Ss=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(I,B,le,xe,q,L){this.indented=I,this.column=B,this.type=le,this.info=xe,this.align=q,this.prev=L}function v(I,B,le,xe){var q=I.indented;return I.context&&I.context.type=="statement"&&le!="statement"&&(q=I.context.indented),I.context=new p(q,B,le,xe,null,I.context)}function C(I){var B=I.context.type;return(B==")"||B=="]"||B=="}")&&(I.indented=I.context.indented),I.context=I.context.prev}function b(I,B,le){if(B.prevToken=="variable"||B.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(I.string.slice(0,le))||B.typeAtEndOfLine&&I.column()==I.indentation())return!0}function k(I){for(;;){if(!I||I.type=="top")return!0;if(I.type=="}"&&I.prev.info!="namespace")return!1;I=I.prev}}o.defineMode("clike",function(I,B){var le=I.indentUnit,xe=B.statementIndentUnit||le,q=B.dontAlignCalls,L=B.keywords||{},de=B.types||{},ze=B.builtin||{},pe=B.blockKeywords||{},Ee=B.defKeywords||{},ge=B.atoms||{},Oe=B.hooks||{},qe=B.multiLineStrings,Se=B.indentStatements!==!1,je=B.indentSwitch!==!1,Ze=B.namespaceSeparator,ke=B.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,Je=B.numberStart||/[\d\.]/,He=B.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,Ge=B.isOperatorChar||/[+\-*&%=<>!?|\/]/,U=B.isIdentifierChar||/[\w\$_\xa1-\uffff]/,G=B.isReservedIdentifier||!1,ce,Be;function te(we,Me){var Le=we.next();if(Oe[Le]){var $=Oe[Le](we,Me);if($!==!1)return $}if(Le=='"'||Le=="'")return Me.tokenize=fe(Le),Me.tokenize(we,Me);if(Je.test(Le)){if(we.backUp(1),we.match(He))return"number";we.next()}if(ke.test(Le))return ce=Le,null;if(Le=="/"){if(we.eat("*"))return Me.tokenize=oe,oe(we,Me);if(we.eat("/"))return we.skipToEnd(),"comment"}if(Ge.test(Le)){for(;!we.match(/^\/[\/*]/,!1)&&we.eat(Ge););return"operator"}if(we.eatWhile(U),Ze)for(;we.match(Ze);)we.eatWhile(U);var W=we.current();return g(L,W)?(g(pe,W)&&(ce="newstatement"),g(Ee,W)&&(Be=!0),"keyword"):g(de,W)?"type":g(ze,W)||G&&G(W)?(g(pe,W)&&(ce="newstatement"),"builtin"):g(ge,W)?"atom":"variable"}function fe(we){return function(Me,Le){for(var $=!1,W,se=!1;(W=Me.next())!=null;){if(W==we&&!$){se=!0;break}$=!$&&W=="\\"}return(se||!($||qe))&&(Le.tokenize=null),"string"}}function oe(we,Me){for(var Le=!1,$;$=we.next();){if($=="/"&&Le){Me.tokenize=null;break}Le=$=="*"}return"comment"}function Ue(we,Me){B.typeFirstDefinitions&&we.eol()&&k(Me.context)&&(Me.typeAtEndOfLine=b(we,Me,we.pos))}return{startState:function(we){return{tokenize:null,context:new p((we||0)-le,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(we,Me){var Le=Me.context;if(we.sol()&&(Le.align==null&&(Le.align=!1),Me.indented=we.indentation(),Me.startOfLine=!0),we.eatSpace())return Ue(we,Me),null;ce=Be=null;var $=(Me.tokenize||te)(we,Me);if($=="comment"||$=="meta")return $;if(Le.align==null&&(Le.align=!0),ce==";"||ce==":"||ce==","&&we.match(/^\s*(?:\/\/.*)?$/,!1))for(;Me.context.type=="statement";)C(Me);else if(ce=="{")v(Me,we.column(),"}");else if(ce=="[")v(Me,we.column(),"]");else if(ce=="(")v(Me,we.column(),")");else if(ce=="}"){for(;Le.type=="statement";)Le=C(Me);for(Le.type=="}"&&(Le=C(Me));Le.type=="statement";)Le=C(Me)}else ce==Le.type?C(Me):Se&&((Le.type=="}"||Le.type=="top")&&ce!=";"||Le.type=="statement"&&ce=="newstatement")&&v(Me,we.column(),"statement",we.current());if($=="variable"&&(Me.prevToken=="def"||B.typeFirstDefinitions&&b(we,Me,we.start)&&k(Me.context)&&we.match(/^\s*\(/,!1))&&($="def"),Oe.token){var W=Oe.token(we,Me,$);W!==void 0&&($=W)}return $=="def"&&B.styleDefs===!1&&($="variable"),Me.startOfLine=!1,Me.prevToken=Be?"def":$||ce,Ue(we,Me),$},indent:function(we,Me){if(we.tokenize!=te&&we.tokenize!=null||we.typeAtEndOfLine&&k(we.context))return o.Pass;var Le=we.context,$=Me&&Me.charAt(0),W=$==Le.type;if(Le.type=="statement"&&$=="}"&&(Le=Le.prev),B.dontIndentStatements)for(;Le.type=="statement"&&B.dontIndentStatements.test(Le.info);)Le=Le.prev;if(Oe.indent){var se=Oe.indent(we,Le,Me,le);if(typeof se=="number")return se}var De=Le.prev&&Le.prev.info=="switch";if(B.allmanIndentation&&/[{(]/.test($)){for(;Le.type!="top"&&Le.type!="}";)Le=Le.prev;return Le.indented}return Le.type=="statement"?Le.indented+($=="{"?0:xe):Le.align&&(!q||Le.type!=")")?Le.column+(W?0:1):Le.type==")"&&!W?Le.indented+xe:Le.indented+(W?0:le)+(!W&&De&&!/^(?:case|default)\b/.test(Me)?le:0)},electricInput:je?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}});function s(I){for(var B={},le=I.split(" "),xe=0;xe!?|\/#:@]/,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,B){return I.match('""')?(B.tokenize=j,B.tokenize(I,B)):!1},"'":function(I){return I.match(/^(\\[^'\s]+|[^\\'])'/)?"string-2":(I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(I,B){var le=B.context;return le.type=="}"&&le.align&&I.eat(">")?(B.context=new p(le.indented,le.column,le.type,le.info,null,le.prev),"operator"):!1},"/":function(I,B){return I.eat("*")?(B.tokenize=V(1),B.tokenize(I,B)):!1}},modeProps:{closeBrackets:{pairs:'()[]{}""',triples:'"'}}});function x(I){return function(B,le){for(var xe=!1,q,L=!1;!B.eol();){if(!I&&!xe&&B.match('"')){L=!0;break}if(I&&B.match('"""')){L=!0;break}q=B.next(),!xe&&q=="$"&&B.match("{")&&B.skipTo("}"),xe=!xe&&q=="\\"&&!I}return(L||!I)&&(le.tokenize=null),"string"}}Q("text/x-kotlin",{name:"clike",keywords:s("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam value"),types:s("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:s("catch class do else finally for if where try while enum"),defKeywords:s("class val var object interface fun"),atoms:s("true false null this"),hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},"*":function(I,B){return B.prevToken=="."?"variable":"operator"},'"':function(I,B){return B.tokenize=x(I.match('""')),B.tokenize(I,B)},"/":function(I,B){return I.eat("*")?(B.tokenize=V(1),B.tokenize(I,B)):!1},indent:function(I,B,le,xe){var q=le&&le.charAt(0);if((I.prevToken=="}"||I.prevToken==")")&&le=="")return I.indented;if(I.prevToken=="operator"&&le!="}"&&I.context.type!="}"||I.prevToken=="variable"&&q=="."||(I.prevToken=="}"||I.prevToken==")")&&q==".")return xe*2+B.indented;if(B.align&&B.type=="}")return B.indented+(I.context.type==(le||"").charAt(0)?0:xe)}},modeProps:{closeBrackets:{triples:'"'}}}),Q(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:s("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:s("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:s("for while do if else struct"),builtin:s("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:s("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":M},modeProps:{fold:["brace","include"]}}),Q("text/x-nesc",{name:"clike",keywords:s(h+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:E,blockKeywords:s(y),atoms:s("null true false"),hooks:{"#":M},modeProps:{fold:["brace","include"]}}),Q("text/x-objectivec",{name:"clike",keywords:s(h+" "+w),types:z,builtin:s(c),blockKeywords:s(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:s(R+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:s("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Z,hooks:{"#":M,"*":H},modeProps:{fold:["brace","include"]}}),Q("text/x-objectivec++",{name:"clike",keywords:s(h+" "+w+" "+S),types:z,builtin:s(c),blockKeywords:s(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:s(R+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:s("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Z,hooks:{"#":M,"*":H,u:re,U:re,L:re,R:re,0:ee,1:ee,2:ee,3:ee,4:ee,5:ee,6:ee,7:ee,8:ee,9:ee,token:function(I,B,le){if(le=="variable"&&I.peek()=="("&&(B.prevToken==";"||B.prevToken==null||B.prevToken=="}")&&N(I.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),Q("text/x-squirrel",{name:"clike",keywords:s("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:E,blockKeywords:s("case catch class else for foreach if switch try while"),defKeywords:s("function local class"),typeFirstDefinitions:!0,atoms:s("true false null"),hooks:{"#":M},modeProps:{fold:["brace","include"]}});var K=null;function X(I){return function(B,le){for(var xe=!1,q,L=!1;!B.eol();){if(!xe&&B.match('"')&&(I=="single"||B.match('""'))){L=!0;break}if(!xe&&B.match("``")){K=X(I),L=!0;break}q=B.next(),xe=I=="single"&&!xe&&q=="\\"}return L&&(le.tokenize=null),"string"}}Q("text/x-ceylon",{name:"clike",keywords:s("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(I){var B=I.charAt(0);return B===B.toUpperCase()&&B!==B.toLowerCase()},blockKeywords:s("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:s("class dynamic function interface module object package value"),builtin:s("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:s("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,B){return B.tokenize=X(I.match('""')?"triple":"single"),B.tokenize(I,B)},"`":function(I,B){return!K||!I.match("`")?!1:(B.tokenize=K,K=null,B.tokenize(I,B))},"'":function(I){return I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(I,B,le){if((le=="variable"||le=="type")&&B.prevToken==".")return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})})});var Cs=Ke((Ts,Ls)=>{(function(o){typeof Ts=="object"&&typeof Ls=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("cmake",function(){var p=/({)?[a-zA-Z0-9_]+(})?/;function v(b,k){for(var s,g,h=!1;!b.eol()&&(s=b.next())!=k.pending;){if(s==="$"&&g!="\\"&&k.pending=='"'){h=!0;break}g=s}return h&&b.backUp(1),s==k.pending?k.continueString=!1:k.continueString=!0,"string"}function C(b,k){var s=b.next();return s==="$"?b.match(p)?"variable-2":"variable":k.continueString?(b.backUp(1),v(b,k)):b.match(/(\s+)?\w+\(/)||b.match(/(\s+)?\w+\ \(/)?(b.backUp(1),"def"):s=="#"?(b.skipToEnd(),"comment"):s=="'"||s=='"'?(k.pending=s,v(b,k)):s=="("||s==")"?"bracket":s.match(/[0-9]/)?"number":(b.eatWhile(/[\w-]/),null)}return{startState:function(){var b={};return b.inDefinition=!1,b.inInclude=!1,b.continueString=!1,b.pending=!1,b},token:function(b,k){return b.eatSpace()?null:C(b,k)}}}),o.defineMIME("text/x-cmake","cmake")})});var gn=Ke((Es,zs)=>{(function(o){typeof Es=="object"&&typeof zs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("css",function(F,D){var Q=D.inline;D.propertyKeywords||(D=o.resolveMode("text/css"));var j=F.indentUnit,V=D.tokenHooks,x=D.documentTypes||{},K=D.mediaTypes||{},X=D.mediaFeatures||{},I=D.mediaValueKeywords||{},B=D.propertyKeywords||{},le=D.nonStandardPropertyKeywords||{},xe=D.fontProperties||{},q=D.counterDescriptors||{},L=D.colorKeywords||{},de=D.valueKeywords||{},ze=D.allowNested,pe=D.lineComment,Ee=D.supportsAtComponent===!0,ge=F.highlightNonStandardPropertyKeywords!==!1,Oe,qe;function Se(te,fe){return Oe=fe,te}function je(te,fe){var oe=te.next();if(V[oe]){var Ue=V[oe](te,fe);if(Ue!==!1)return Ue}if(oe=="@")return te.eatWhile(/[\w\\\-]/),Se("def",te.current());if(oe=="="||(oe=="~"||oe=="|")&&te.eat("="))return Se(null,"compare");if(oe=='"'||oe=="'")return fe.tokenize=Ze(oe),fe.tokenize(te,fe);if(oe=="#")return te.eatWhile(/[\w\\\-]/),Se("atom","hash");if(oe=="!")return te.match(/^\s*\w*/),Se("keyword","important");if(/\d/.test(oe)||oe=="."&&te.eat(/\d/))return te.eatWhile(/[\w.%]/),Se("number","unit");if(oe==="-"){if(/[\d.]/.test(te.peek()))return te.eatWhile(/[\w.%]/),Se("number","unit");if(te.match(/^-[\w\\\-]*/))return te.eatWhile(/[\w\\\-]/),te.match(/^\s*:/,!1)?Se("variable-2","variable-definition"):Se("variable-2","variable");if(te.match(/^\w+-/))return Se("meta","meta")}else return/[,+>*\/]/.test(oe)?Se(null,"select-op"):oe=="."&&te.match(/^-?[_a-z][_a-z0-9-]*/i)?Se("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(oe)?Se(null,oe):te.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(te.current())&&(fe.tokenize=ke),Se("variable callee","variable")):/[\w\\\-]/.test(oe)?(te.eatWhile(/[\w\\\-]/),Se("property","word")):Se(null,null)}function Ze(te){return function(fe,oe){for(var Ue=!1,we;(we=fe.next())!=null;){if(we==te&&!Ue){te==")"&&fe.backUp(1);break}Ue=!Ue&&we=="\\"}return(we==te||!Ue&&te!=")")&&(oe.tokenize=null),Se("string","string")}}function ke(te,fe){return te.next(),te.match(/^\s*[\"\')]/,!1)?fe.tokenize=null:fe.tokenize=Ze(")"),Se(null,"(")}function Je(te,fe,oe){this.type=te,this.indent=fe,this.prev=oe}function He(te,fe,oe,Ue){return te.context=new Je(oe,fe.indentation()+(Ue===!1?0:j),te.context),oe}function Ge(te){return te.context.prev&&(te.context=te.context.prev),te.context.type}function U(te,fe,oe){return Be[oe.context.type](te,fe,oe)}function G(te,fe,oe,Ue){for(var we=Ue||1;we>0;we--)oe.context=oe.context.prev;return U(te,fe,oe)}function ce(te){var fe=te.current().toLowerCase();de.hasOwnProperty(fe)?qe="atom":L.hasOwnProperty(fe)?qe="keyword":qe="variable"}var Be={};return Be.top=function(te,fe,oe){if(te=="{")return He(oe,fe,"block");if(te=="}"&&oe.context.prev)return Ge(oe);if(Ee&&/@component/i.test(te))return He(oe,fe,"atComponentBlock");if(/^@(-moz-)?document$/i.test(te))return He(oe,fe,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(te))return He(oe,fe,"atBlock");if(/^@(font-face|counter-style)/i.test(te))return oe.stateArg=te,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(te))return"keyframes";if(te&&te.charAt(0)=="@")return He(oe,fe,"at");if(te=="hash")qe="builtin";else if(te=="word")qe="tag";else{if(te=="variable-definition")return"maybeprop";if(te=="interpolation")return He(oe,fe,"interpolation");if(te==":")return"pseudo";if(ze&&te=="(")return He(oe,fe,"parens")}return oe.context.type},Be.block=function(te,fe,oe){if(te=="word"){var Ue=fe.current().toLowerCase();return B.hasOwnProperty(Ue)?(qe="property","maybeprop"):le.hasOwnProperty(Ue)?(qe=ge?"string-2":"property","maybeprop"):ze?(qe=fe.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(qe+=" error","maybeprop")}else return te=="meta"?"block":!ze&&(te=="hash"||te=="qualifier")?(qe="error","block"):Be.top(te,fe,oe)},Be.maybeprop=function(te,fe,oe){return te==":"?He(oe,fe,"prop"):U(te,fe,oe)},Be.prop=function(te,fe,oe){if(te==";")return Ge(oe);if(te=="{"&&ze)return He(oe,fe,"propBlock");if(te=="}"||te=="{")return G(te,fe,oe);if(te=="(")return He(oe,fe,"parens");if(te=="hash"&&!/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(fe.current()))qe+=" error";else if(te=="word")ce(fe);else if(te=="interpolation")return He(oe,fe,"interpolation");return"prop"},Be.propBlock=function(te,fe,oe){return te=="}"?Ge(oe):te=="word"?(qe="property","maybeprop"):oe.context.type},Be.parens=function(te,fe,oe){return te=="{"||te=="}"?G(te,fe,oe):te==")"?Ge(oe):te=="("?He(oe,fe,"parens"):te=="interpolation"?He(oe,fe,"interpolation"):(te=="word"&&ce(fe),"parens")},Be.pseudo=function(te,fe,oe){return te=="meta"?"pseudo":te=="word"?(qe="variable-3",oe.context.type):U(te,fe,oe)},Be.documentTypes=function(te,fe,oe){return te=="word"&&x.hasOwnProperty(fe.current())?(qe="tag",oe.context.type):Be.atBlock(te,fe,oe)},Be.atBlock=function(te,fe,oe){if(te=="(")return He(oe,fe,"atBlock_parens");if(te=="}"||te==";")return G(te,fe,oe);if(te=="{")return Ge(oe)&&He(oe,fe,ze?"block":"top");if(te=="interpolation")return He(oe,fe,"interpolation");if(te=="word"){var Ue=fe.current().toLowerCase();Ue=="only"||Ue=="not"||Ue=="and"||Ue=="or"?qe="keyword":K.hasOwnProperty(Ue)?qe="attribute":X.hasOwnProperty(Ue)?qe="property":I.hasOwnProperty(Ue)?qe="keyword":B.hasOwnProperty(Ue)?qe="property":le.hasOwnProperty(Ue)?qe=ge?"string-2":"property":de.hasOwnProperty(Ue)?qe="atom":L.hasOwnProperty(Ue)?qe="keyword":qe="error"}return oe.context.type},Be.atComponentBlock=function(te,fe,oe){return te=="}"?G(te,fe,oe):te=="{"?Ge(oe)&&He(oe,fe,ze?"block":"top",!1):(te=="word"&&(qe="error"),oe.context.type)},Be.atBlock_parens=function(te,fe,oe){return te==")"?Ge(oe):te=="{"||te=="}"?G(te,fe,oe,2):Be.atBlock(te,fe,oe)},Be.restricted_atBlock_before=function(te,fe,oe){return te=="{"?He(oe,fe,"restricted_atBlock"):te=="word"&&oe.stateArg=="@counter-style"?(qe="variable","restricted_atBlock_before"):U(te,fe,oe)},Be.restricted_atBlock=function(te,fe,oe){return te=="}"?(oe.stateArg=null,Ge(oe)):te=="word"?(oe.stateArg=="@font-face"&&!xe.hasOwnProperty(fe.current().toLowerCase())||oe.stateArg=="@counter-style"&&!q.hasOwnProperty(fe.current().toLowerCase())?qe="error":qe="property","maybeprop"):"restricted_atBlock"},Be.keyframes=function(te,fe,oe){return te=="word"?(qe="variable","keyframes"):te=="{"?He(oe,fe,"top"):U(te,fe,oe)},Be.at=function(te,fe,oe){return te==";"?Ge(oe):te=="{"||te=="}"?G(te,fe,oe):(te=="word"?qe="tag":te=="hash"&&(qe="builtin"),"at")},Be.interpolation=function(te,fe,oe){return te=="}"?Ge(oe):te=="{"||te==";"?G(te,fe,oe):(te=="word"?qe="variable":te!="variable"&&te!="("&&te!=")"&&(qe="error"),"interpolation")},{startState:function(te){return{tokenize:null,state:Q?"block":"top",stateArg:null,context:new Je(Q?"block":"top",te||0,null)}},token:function(te,fe){if(!fe.tokenize&&te.eatSpace())return null;var oe=(fe.tokenize||je)(te,fe);return oe&&typeof oe=="object"&&(Oe=oe[1],oe=oe[0]),qe=oe,Oe!="comment"&&(fe.state=Be[fe.state](Oe,te,fe)),qe},indent:function(te,fe){var oe=te.context,Ue=fe&&fe.charAt(0),we=oe.indent;return oe.type=="prop"&&(Ue=="}"||Ue==")")&&(oe=oe.prev),oe.prev&&(Ue=="}"&&(oe.type=="block"||oe.type=="top"||oe.type=="interpolation"||oe.type=="restricted_atBlock")?(oe=oe.prev,we=oe.indent):(Ue==")"&&(oe.type=="parens"||oe.type=="atBlock_parens")||Ue=="{"&&(oe.type=="at"||oe.type=="atBlock"))&&(we=Math.max(0,oe.indent-j))),we},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:pe,fold:"brace"}});function p(F){for(var D={},Q=0;Q{(function(o){typeof Ms=="object"&&typeof As=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("diff",function(){var p={"+":"positive","-":"negative","@":"meta"};return{token:function(v){var C=v.string.search(/[\t ]+?$/);if(!v.sol()||C===0)return v.skipToEnd(),("error "+(p[v.string.charAt(0)]||"")).replace(/ $/,"");var b=p[v.peek()]||v.skipToEnd();return C===-1?v.skipToEnd():v.pos=C,b}}}),o.defineMIME("text/x-diff","diff")})});var mn=Ke((qs,Is)=>{(function(o){typeof qs=="object"&&typeof Is=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";var p={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},v={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};o.defineMode("xml",function(C,b){var k=C.indentUnit,s={},g=b.htmlMode?p:v;for(var h in g)s[h]=g[h];for(var h in b)s[h]=b[h];var S,w;function c(x,K){function X(le){return K.tokenize=le,le(x,K)}var I=x.next();if(I=="<")return x.eat("!")?x.eat("[")?x.match("CDATA[")?X(E("atom","]]>")):null:x.match("--")?X(E("comment","-->")):x.match("DOCTYPE",!0,!0)?(x.eatWhile(/[\w\._\-]/),X(z(1))):null:x.eat("?")?(x.eatWhile(/[\w\._\-]/),K.tokenize=E("meta","?>"),"meta"):(S=x.eat("/")?"closeTag":"openTag",K.tokenize=d,"tag bracket");if(I=="&"){var B;return x.eat("#")?x.eat("x")?B=x.eatWhile(/[a-fA-F\d]/)&&x.eat(";"):B=x.eatWhile(/[\d]/)&&x.eat(";"):B=x.eatWhile(/[\w\.\-:]/)&&x.eat(";"),B?"atom":"error"}else return x.eatWhile(/[^&<]/),null}c.isInText=!0;function d(x,K){var X=x.next();if(X==">"||X=="/"&&x.eat(">"))return K.tokenize=c,S=X==">"?"endTag":"selfcloseTag","tag bracket";if(X=="=")return S="equals",null;if(X=="<"){K.tokenize=c,K.state=Z,K.tagName=K.tagStart=null;var I=K.tokenize(x,K);return I?I+" tag error":"tag error"}else return/[\'\"]/.test(X)?(K.tokenize=T(X),K.stringStartCol=x.column(),K.tokenize(x,K)):(x.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function T(x){var K=function(X,I){for(;!X.eol();)if(X.next()==x){I.tokenize=d;break}return"string"};return K.isInAttribute=!0,K}function E(x,K){return function(X,I){for(;!X.eol();){if(X.match(K)){I.tokenize=c;break}X.next()}return x}}function z(x){return function(K,X){for(var I;(I=K.next())!=null;){if(I=="<")return X.tokenize=z(x+1),X.tokenize(K,X);if(I==">")if(x==1){X.tokenize=c;break}else return X.tokenize=z(x-1),X.tokenize(K,X)}return"meta"}}function y(x){return x&&x.toLowerCase()}function R(x,K,X){this.prev=x.context,this.tagName=K||"",this.indent=x.indented,this.startOfLine=X,(s.doNotIndent.hasOwnProperty(K)||x.context&&x.context.noIndent)&&(this.noIndent=!0)}function M(x){x.context&&(x.context=x.context.prev)}function H(x,K){for(var X;;){if(!x.context||(X=x.context.tagName,!s.contextGrabbers.hasOwnProperty(y(X))||!s.contextGrabbers[y(X)].hasOwnProperty(y(K))))return;M(x)}}function Z(x,K,X){return x=="openTag"?(X.tagStart=K.column(),ee):x=="closeTag"?re:Z}function ee(x,K,X){return x=="word"?(X.tagName=K.current(),w="tag",D):s.allowMissingTagName&&x=="endTag"?(w="tag bracket",D(x,K,X)):(w="error",ee)}function re(x,K,X){if(x=="word"){var I=K.current();return X.context&&X.context.tagName!=I&&s.implicitlyClosed.hasOwnProperty(y(X.context.tagName))&&M(X),X.context&&X.context.tagName==I||s.matchClosing===!1?(w="tag",N):(w="tag error",F)}else return s.allowMissingTagName&&x=="endTag"?(w="tag bracket",N(x,K,X)):(w="error",F)}function N(x,K,X){return x!="endTag"?(w="error",N):(M(X),Z)}function F(x,K,X){return w="error",N(x,K,X)}function D(x,K,X){if(x=="word")return w="attribute",Q;if(x=="endTag"||x=="selfcloseTag"){var I=X.tagName,B=X.tagStart;return X.tagName=X.tagStart=null,x=="selfcloseTag"||s.autoSelfClosers.hasOwnProperty(y(I))?H(X,I):(H(X,I),X.context=new R(X,I,B==X.indented)),Z}return w="error",D}function Q(x,K,X){return x=="equals"?j:(s.allowMissing||(w="error"),D(x,K,X))}function j(x,K,X){return x=="string"?V:x=="word"&&s.allowUnquoted?(w="string",D):(w="error",D(x,K,X))}function V(x,K,X){return x=="string"?V:D(x,K,X)}return{startState:function(x){var K={tokenize:c,state:Z,indented:x||0,tagName:null,tagStart:null,context:null};return x!=null&&(K.baseIndent=x),K},token:function(x,K){if(!K.tagName&&x.sol()&&(K.indented=x.indentation()),x.eatSpace())return null;S=null;var X=K.tokenize(x,K);return(X||S)&&X!="comment"&&(w=null,K.state=K.state(S||X,x,K),w&&(X=w=="error"?X+" error":w)),X},indent:function(x,K,X){var I=x.context;if(x.tokenize.isInAttribute)return x.tagStart==x.indented?x.stringStartCol+1:x.indented+k;if(I&&I.noIndent)return o.Pass;if(x.tokenize!=d&&x.tokenize!=c)return X?X.match(/^(\s*)/)[0].length:0;if(x.tagName)return s.multilineTagIndentPastTag!==!1?x.tagStart+x.tagName.length+2:x.tagStart+k*(s.multilineTagIndentFactor||1);if(s.alignCDATA&&/$/,blockCommentStart:"",configuration:s.htmlMode?"html":"xml",helperType:s.htmlMode?"html":"xml",skipAttribute:function(x){x.state==j&&(x.state=D)},xmlCurrentTag:function(x){return x.tagName?{name:x.tagName,close:x.type=="closeTag"}:null},xmlCurrentContext:function(x){for(var K=[],X=x.context;X;X=X.prev)K.push(X.tagName);return K.reverse()}}}),o.defineMIME("text/xml","xml"),o.defineMIME("application/xml","xml"),o.mimeModes.hasOwnProperty("text/html")||o.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var vn=Ke((Fs,Ns)=>{(function(o){typeof Fs=="object"&&typeof Ns=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("javascript",function(p,v){var C=p.indentUnit,b=v.statementIndent,k=v.jsonld,s=v.json||k,g=v.trackScope!==!1,h=v.typescript,S=v.wordCharacters||/[\w$\xa1-\uffff]/,w=function(){function _(pt){return{type:pt,style:"keyword"}}var O=_("keyword a"),ae=_("keyword b"),he=_("keyword c"),ne=_("keyword d"),ye=_("operator"),Xe={type:"atom",style:"atom"};return{if:_("if"),while:O,with:O,else:ae,do:ae,try:ae,finally:ae,return:ne,break:ne,continue:ne,new:_("new"),delete:he,void:he,throw:he,debugger:_("debugger"),var:_("var"),const:_("var"),let:_("var"),function:_("function"),catch:_("catch"),for:_("for"),switch:_("switch"),case:_("case"),default:_("default"),in:ye,typeof:ye,instanceof:ye,true:Xe,false:Xe,null:Xe,undefined:Xe,NaN:Xe,Infinity:Xe,this:_("this"),class:_("class"),super:_("atom"),yield:he,export:_("export"),import:_("import"),extends:he,await:he}}(),c=/[+\-*&%=<>!?|~^@]/,d=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function T(_){for(var O=!1,ae,he=!1;(ae=_.next())!=null;){if(!O){if(ae=="/"&&!he)return;ae=="["?he=!0:he&&ae=="]"&&(he=!1)}O=!O&&ae=="\\"}}var E,z;function y(_,O,ae){return E=_,z=ae,O}function R(_,O){var ae=_.next();if(ae=='"'||ae=="'")return O.tokenize=M(ae),O.tokenize(_,O);if(ae=="."&&_.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return y("number","number");if(ae=="."&&_.match(".."))return y("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(ae))return y(ae);if(ae=="="&&_.eat(">"))return y("=>","operator");if(ae=="0"&&_.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return y("number","number");if(/\d/.test(ae))return _.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),y("number","number");if(ae=="/")return _.eat("*")?(O.tokenize=H,H(_,O)):_.eat("/")?(_.skipToEnd(),y("comment","comment")):jt(_,O,1)?(T(_),_.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),y("regexp","string-2")):(_.eat("="),y("operator","operator",_.current()));if(ae=="`")return O.tokenize=Z,Z(_,O);if(ae=="#"&&_.peek()=="!")return _.skipToEnd(),y("meta","meta");if(ae=="#"&&_.eatWhile(S))return y("variable","property");if(ae=="<"&&_.match("!--")||ae=="-"&&_.match("->")&&!/\S/.test(_.string.slice(0,_.start)))return _.skipToEnd(),y("comment","comment");if(c.test(ae))return(ae!=">"||!O.lexical||O.lexical.type!=">")&&(_.eat("=")?(ae=="!"||ae=="=")&&_.eat("="):/[<>*+\-|&?]/.test(ae)&&(_.eat(ae),ae==">"&&_.eat(ae))),ae=="?"&&_.eat(".")?y("."):y("operator","operator",_.current());if(S.test(ae)){_.eatWhile(S);var he=_.current();if(O.lastType!="."){if(w.propertyIsEnumerable(he)){var ne=w[he];return y(ne.type,ne.style,he)}if(he=="async"&&_.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return y("async","keyword",he)}return y("variable","variable",he)}}function M(_){return function(O,ae){var he=!1,ne;if(k&&O.peek()=="@"&&O.match(d))return ae.tokenize=R,y("jsonld-keyword","meta");for(;(ne=O.next())!=null&&!(ne==_&&!he);)he=!he&&ne=="\\";return he||(ae.tokenize=R),y("string","string")}}function H(_,O){for(var ae=!1,he;he=_.next();){if(he=="/"&&ae){O.tokenize=R;break}ae=he=="*"}return y("comment","comment")}function Z(_,O){for(var ae=!1,he;(he=_.next())!=null;){if(!ae&&(he=="`"||he=="$"&&_.eat("{"))){O.tokenize=R;break}ae=!ae&&he=="\\"}return y("quasi","string-2",_.current())}var ee="([{}])";function re(_,O){O.fatArrowAt&&(O.fatArrowAt=null);var ae=_.string.indexOf("=>",_.start);if(!(ae<0)){if(h){var he=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(_.string.slice(_.start,ae));he&&(ae=he.index)}for(var ne=0,ye=!1,Xe=ae-1;Xe>=0;--Xe){var pt=_.string.charAt(Xe),Et=ee.indexOf(pt);if(Et>=0&&Et<3){if(!ne){++Xe;break}if(--ne==0){pt=="("&&(ye=!0);break}}else if(Et>=3&&Et<6)++ne;else if(S.test(pt))ye=!0;else if(/["'\/`]/.test(pt))for(;;--Xe){if(Xe==0)return;var Zr=_.string.charAt(Xe-1);if(Zr==pt&&_.string.charAt(Xe-2)!="\\"){Xe--;break}}else if(ye&&!ne){++Xe;break}}ye&&!ne&&(O.fatArrowAt=Xe)}}var N={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function F(_,O,ae,he,ne,ye){this.indented=_,this.column=O,this.type=ae,this.prev=ne,this.info=ye,he!=null&&(this.align=he)}function D(_,O){if(!g)return!1;for(var ae=_.localVars;ae;ae=ae.next)if(ae.name==O)return!0;for(var he=_.context;he;he=he.prev)for(var ae=he.vars;ae;ae=ae.next)if(ae.name==O)return!0}function Q(_,O,ae,he,ne){var ye=_.cc;for(j.state=_,j.stream=ne,j.marked=null,j.cc=ye,j.style=O,_.lexical.hasOwnProperty("align")||(_.lexical.align=!0);;){var Xe=ye.length?ye.pop():s?Se:Oe;if(Xe(ae,he)){for(;ye.length&&ye[ye.length-1].lex;)ye.pop()();return j.marked?j.marked:ae=="variable"&&D(_,he)?"variable-2":O}}}var j={state:null,column:null,marked:null,cc:null};function V(){for(var _=arguments.length-1;_>=0;_--)j.cc.push(arguments[_])}function x(){return V.apply(null,arguments),!0}function K(_,O){for(var ae=O;ae;ae=ae.next)if(ae.name==_)return!0;return!1}function X(_){var O=j.state;if(j.marked="def",!!g){if(O.context){if(O.lexical.info=="var"&&O.context&&O.context.block){var ae=I(_,O.context);if(ae!=null){O.context=ae;return}}else if(!K(_,O.localVars)){O.localVars=new xe(_,O.localVars);return}}v.globalVars&&!K(_,O.globalVars)&&(O.globalVars=new xe(_,O.globalVars))}}function I(_,O){if(O)if(O.block){var ae=I(_,O.prev);return ae?ae==O.prev?O:new le(ae,O.vars,!0):null}else return K(_,O.vars)?O:new le(O.prev,new xe(_,O.vars),!1);else return null}function B(_){return _=="public"||_=="private"||_=="protected"||_=="abstract"||_=="readonly"}function le(_,O,ae){this.prev=_,this.vars=O,this.block=ae}function xe(_,O){this.name=_,this.next=O}var q=new xe("this",new xe("arguments",null));function L(){j.state.context=new le(j.state.context,j.state.localVars,!1),j.state.localVars=q}function de(){j.state.context=new le(j.state.context,j.state.localVars,!0),j.state.localVars=null}L.lex=de.lex=!0;function ze(){j.state.localVars=j.state.context.vars,j.state.context=j.state.context.prev}ze.lex=!0;function pe(_,O){var ae=function(){var he=j.state,ne=he.indented;if(he.lexical.type=="stat")ne=he.lexical.indented;else for(var ye=he.lexical;ye&&ye.type==")"&&ye.align;ye=ye.prev)ne=ye.indented;he.lexical=new F(ne,j.stream.column(),_,null,he.lexical,O)};return ae.lex=!0,ae}function Ee(){var _=j.state;_.lexical.prev&&(_.lexical.type==")"&&(_.indented=_.lexical.indented),_.lexical=_.lexical.prev)}Ee.lex=!0;function ge(_){function O(ae){return ae==_?x():_==";"||ae=="}"||ae==")"||ae=="]"?V():x(O)}return O}function Oe(_,O){return _=="var"?x(pe("vardef",O),Hr,ge(";"),Ee):_=="keyword a"?x(pe("form"),Ze,Oe,Ee):_=="keyword b"?x(pe("form"),Oe,Ee):_=="keyword d"?j.stream.match(/^\s*$/,!1)?x():x(pe("stat"),Je,ge(";"),Ee):_=="debugger"?x(ge(";")):_=="{"?x(pe("}"),de,De,Ee,ze):_==";"?x():_=="if"?(j.state.lexical.info=="else"&&j.state.cc[j.state.cc.length-1]==Ee&&j.state.cc.pop()(),x(pe("form"),Ze,Oe,Ee,Br)):_=="function"?x(Bt):_=="for"?x(pe("form"),de,ei,Oe,ze,Ee):_=="class"||h&&O=="interface"?(j.marked="keyword",x(pe("form",_=="class"?_:O),Wr,Ee)):_=="variable"?h&&O=="declare"?(j.marked="keyword",x(Oe)):h&&(O=="module"||O=="enum"||O=="type")&&j.stream.match(/^\s*\w/,!1)?(j.marked="keyword",O=="enum"?x(Ae):O=="type"?x(ti,ge("operator"),Pe,ge(";")):x(pe("form"),Ct,ge("{"),pe("}"),De,Ee,Ee)):h&&O=="namespace"?(j.marked="keyword",x(pe("form"),Se,Oe,Ee)):h&&O=="abstract"?(j.marked="keyword",x(Oe)):x(pe("stat"),Ue):_=="switch"?x(pe("form"),Ze,ge("{"),pe("}","switch"),de,De,Ee,Ee,ze):_=="case"?x(Se,ge(":")):_=="default"?x(ge(":")):_=="catch"?x(pe("form"),L,qe,Oe,Ee,ze):_=="export"?x(pe("stat"),Ur,Ee):_=="import"?x(pe("stat"),gr,Ee):_=="async"?x(Oe):O=="@"?x(Se,Oe):V(pe("stat"),Se,ge(";"),Ee)}function qe(_){if(_=="(")return x($t,ge(")"))}function Se(_,O){return ke(_,O,!1)}function je(_,O){return ke(_,O,!0)}function Ze(_){return _!="("?V():x(pe(")"),Je,ge(")"),Ee)}function ke(_,O,ae){if(j.state.fatArrowAt==j.stream.start){var he=ae?Be:ce;if(_=="(")return x(L,pe(")"),W($t,")"),Ee,ge("=>"),he,ze);if(_=="variable")return V(L,Ct,ge("=>"),he,ze)}var ne=ae?Ge:He;return N.hasOwnProperty(_)?x(ne):_=="function"?x(Bt,ne):_=="class"||h&&O=="interface"?(j.marked="keyword",x(pe("form"),to,Ee)):_=="keyword c"||_=="async"?x(ae?je:Se):_=="("?x(pe(")"),Je,ge(")"),Ee,ne):_=="operator"||_=="spread"?x(ae?je:Se):_=="["?x(pe("]"),at,Ee,ne):_=="{"?se(Me,"}",null,ne):_=="quasi"?V(U,ne):_=="new"?x(te(ae)):x()}function Je(_){return _.match(/[;\}\)\],]/)?V():V(Se)}function He(_,O){return _==","?x(Je):Ge(_,O,!1)}function Ge(_,O,ae){var he=ae==!1?He:Ge,ne=ae==!1?Se:je;if(_=="=>")return x(L,ae?Be:ce,ze);if(_=="operator")return/\+\+|--/.test(O)||h&&O=="!"?x(he):h&&O=="<"&&j.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?x(pe(">"),W(Pe,">"),Ee,he):O=="?"?x(Se,ge(":"),ne):x(ne);if(_=="quasi")return V(U,he);if(_!=";"){if(_=="(")return se(je,")","call",he);if(_==".")return x(we,he);if(_=="[")return x(pe("]"),Je,ge("]"),Ee,he);if(h&&O=="as")return j.marked="keyword",x(Pe,he);if(_=="regexp")return j.state.lastType=j.marked="operator",j.stream.backUp(j.stream.pos-j.stream.start-1),x(ne)}}function U(_,O){return _!="quasi"?V():O.slice(O.length-2)!="${"?x(U):x(Je,G)}function G(_){if(_=="}")return j.marked="string-2",j.state.tokenize=Z,x(U)}function ce(_){return re(j.stream,j.state),V(_=="{"?Oe:Se)}function Be(_){return re(j.stream,j.state),V(_=="{"?Oe:je)}function te(_){return function(O){return O=="."?x(_?oe:fe):O=="variable"&&h?x(Ft,_?Ge:He):V(_?je:Se)}}function fe(_,O){if(O=="target")return j.marked="keyword",x(He)}function oe(_,O){if(O=="target")return j.marked="keyword",x(Ge)}function Ue(_){return _==":"?x(Ee,Oe):V(He,ge(";"),Ee)}function we(_){if(_=="variable")return j.marked="property",x()}function Me(_,O){if(_=="async")return j.marked="property",x(Me);if(_=="variable"||j.style=="keyword"){if(j.marked="property",O=="get"||O=="set")return x(Le);var ae;return h&&j.state.fatArrowAt==j.stream.start&&(ae=j.stream.match(/^\s*:\s*/,!1))&&(j.state.fatArrowAt=j.stream.pos+ae[0].length),x($)}else{if(_=="number"||_=="string")return j.marked=k?"property":j.style+" property",x($);if(_=="jsonld-keyword")return x($);if(h&&B(O))return j.marked="keyword",x(Me);if(_=="[")return x(Se,nt,ge("]"),$);if(_=="spread")return x(je,$);if(O=="*")return j.marked="keyword",x(Me);if(_==":")return V($)}}function Le(_){return _!="variable"?V($):(j.marked="property",x(Bt))}function $(_){if(_==":")return x(je);if(_=="(")return V(Bt)}function W(_,O,ae){function he(ne,ye){if(ae?ae.indexOf(ne)>-1:ne==","){var Xe=j.state.lexical;return Xe.info=="call"&&(Xe.pos=(Xe.pos||0)+1),x(function(pt,Et){return pt==O||Et==O?V():V(_)},he)}return ne==O||ye==O?x():ae&&ae.indexOf(";")>-1?V(_):x(ge(O))}return function(ne,ye){return ne==O||ye==O?x():V(_,he)}}function se(_,O,ae){for(var he=3;he"),Pe);if(_=="quasi")return V(_t,Ht)}function xt(_){if(_=="=>")return x(Pe)}function Fe(_){return _.match(/[\}\)\]]/)?x():_==","||_==";"?x(Fe):V(nr,Fe)}function nr(_,O){if(_=="variable"||j.style=="keyword")return j.marked="property",x(nr);if(O=="?"||_=="number"||_=="string")return x(nr);if(_==":")return x(Pe);if(_=="[")return x(ge("variable"),dt,ge("]"),nr);if(_=="(")return V(hr,nr);if(!_.match(/[;\}\)\],]/))return x()}function _t(_,O){return _!="quasi"?V():O.slice(O.length-2)!="${"?x(_t):x(Pe,it)}function it(_){if(_=="}")return j.marked="string-2",j.state.tokenize=Z,x(_t)}function ot(_,O){return _=="variable"&&j.stream.match(/^\s*[?:]/,!1)||O=="?"?x(ot):_==":"?x(Pe):_=="spread"?x(ot):V(Pe)}function Ht(_,O){if(O=="<")return x(pe(">"),W(Pe,">"),Ee,Ht);if(O=="|"||_=="."||O=="&")return x(Pe);if(_=="[")return x(Pe,ge("]"),Ht);if(O=="extends"||O=="implements")return j.marked="keyword",x(Pe);if(O=="?")return x(Pe,ge(":"),Pe)}function Ft(_,O){if(O=="<")return x(pe(">"),W(Pe,">"),Ee,Ht)}function Wt(){return V(Pe,kt)}function kt(_,O){if(O=="=")return x(Pe)}function Hr(_,O){return O=="enum"?(j.marked="keyword",x(Ae)):V(Ct,nt,Ut,eo)}function Ct(_,O){if(h&&B(O))return j.marked="keyword",x(Ct);if(_=="variable")return X(O),x();if(_=="spread")return x(Ct);if(_=="[")return se(yn,"]");if(_=="{")return se(dr,"}")}function dr(_,O){return _=="variable"&&!j.stream.match(/^\s*:/,!1)?(X(O),x(Ut)):(_=="variable"&&(j.marked="property"),_=="spread"?x(Ct):_=="}"?V():_=="["?x(Se,ge("]"),ge(":"),dr):x(ge(":"),Ct,Ut))}function yn(){return V(Ct,Ut)}function Ut(_,O){if(O=="=")return x(je)}function eo(_){if(_==",")return x(Hr)}function Br(_,O){if(_=="keyword b"&&O=="else")return x(pe("form","else"),Oe,Ee)}function ei(_,O){if(O=="await")return x(ei);if(_=="(")return x(pe(")"),xn,Ee)}function xn(_){return _=="var"?x(Hr,pr):_=="variable"?x(pr):V(pr)}function pr(_,O){return _==")"?x():_==";"?x(pr):O=="in"||O=="of"?(j.marked="keyword",x(Se,pr)):V(Se,pr)}function Bt(_,O){if(O=="*")return j.marked="keyword",x(Bt);if(_=="variable")return X(O),x(Bt);if(_=="(")return x(L,pe(")"),W($t,")"),Ee,Pt,Oe,ze);if(h&&O=="<")return x(pe(">"),W(Wt,">"),Ee,Bt)}function hr(_,O){if(O=="*")return j.marked="keyword",x(hr);if(_=="variable")return X(O),x(hr);if(_=="(")return x(L,pe(")"),W($t,")"),Ee,Pt,ze);if(h&&O=="<")return x(pe(">"),W(Wt,">"),Ee,hr)}function ti(_,O){if(_=="keyword"||_=="variable")return j.marked="type",x(ti);if(O=="<")return x(pe(">"),W(Wt,">"),Ee)}function $t(_,O){return O=="@"&&x(Se,$t),_=="spread"?x($t):h&&B(O)?(j.marked="keyword",x($t)):h&&_=="this"?x(nt,Ut):V(Ct,nt,Ut)}function to(_,O){return _=="variable"?Wr(_,O):Kt(_,O)}function Wr(_,O){if(_=="variable")return X(O),x(Kt)}function Kt(_,O){if(O=="<")return x(pe(">"),W(Wt,">"),Ee,Kt);if(O=="extends"||O=="implements"||h&&_==",")return O=="implements"&&(j.marked="keyword"),x(h?Pe:Se,Kt);if(_=="{")return x(pe("}"),Gt,Ee)}function Gt(_,O){if(_=="async"||_=="variable"&&(O=="static"||O=="get"||O=="set"||h&&B(O))&&j.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return j.marked="keyword",x(Gt);if(_=="variable"||j.style=="keyword")return j.marked="property",x(Cr,Gt);if(_=="number"||_=="string")return x(Cr,Gt);if(_=="[")return x(Se,nt,ge("]"),Cr,Gt);if(O=="*")return j.marked="keyword",x(Gt);if(h&&_=="(")return V(hr,Gt);if(_==";"||_==",")return x(Gt);if(_=="}")return x();if(O=="@")return x(Se,Gt)}function Cr(_,O){if(O=="!"||O=="?")return x(Cr);if(_==":")return x(Pe,Ut);if(O=="=")return x(je);var ae=j.state.lexical.prev,he=ae&&ae.info=="interface";return V(he?hr:Bt)}function Ur(_,O){return O=="*"?(j.marked="keyword",x(Gr,ge(";"))):O=="default"?(j.marked="keyword",x(Se,ge(";"))):_=="{"?x(W($r,"}"),Gr,ge(";")):V(Oe)}function $r(_,O){if(O=="as")return j.marked="keyword",x(ge("variable"));if(_=="variable")return V(je,$r)}function gr(_){return _=="string"?x():_=="("?V(Se):_=="."?V(He):V(Kr,Vt,Gr)}function Kr(_,O){return _=="{"?se(Kr,"}"):(_=="variable"&&X(O),O=="*"&&(j.marked="keyword"),x(_n))}function Vt(_){if(_==",")return x(Kr,Vt)}function _n(_,O){if(O=="as")return j.marked="keyword",x(Kr)}function Gr(_,O){if(O=="from")return j.marked="keyword",x(Se)}function at(_){return _=="]"?x():V(W(je,"]"))}function Ae(){return V(pe("form"),Ct,ge("{"),pe("}"),W(ir,"}"),Ee,Ee)}function ir(){return V(Ct,Ut)}function kn(_,O){return _.lastType=="operator"||_.lastType==","||c.test(O.charAt(0))||/[,.]/.test(O.charAt(0))}function jt(_,O,ae){return O.tokenize==R&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(O.lastType)||O.lastType=="quasi"&&/\{\s*$/.test(_.string.slice(0,_.pos-(ae||0)))}return{startState:function(_){var O={tokenize:R,lastType:"sof",cc:[],lexical:new F((_||0)-C,0,"block",!1),localVars:v.localVars,context:v.localVars&&new le(null,null,!1),indented:_||0};return v.globalVars&&typeof v.globalVars=="object"&&(O.globalVars=v.globalVars),O},token:function(_,O){if(_.sol()&&(O.lexical.hasOwnProperty("align")||(O.lexical.align=!1),O.indented=_.indentation(),re(_,O)),O.tokenize!=H&&_.eatSpace())return null;var ae=O.tokenize(_,O);return E=="comment"?ae:(O.lastType=E=="operator"&&(z=="++"||z=="--")?"incdec":E,Q(O,ae,E,z,_))},indent:function(_,O){if(_.tokenize==H||_.tokenize==Z)return o.Pass;if(_.tokenize!=R)return 0;var ae=O&&O.charAt(0),he=_.lexical,ne;if(!/^\s*else\b/.test(O))for(var ye=_.cc.length-1;ye>=0;--ye){var Xe=_.cc[ye];if(Xe==Ee)he=he.prev;else if(Xe!=Br&&Xe!=ze)break}for(;(he.type=="stat"||he.type=="form")&&(ae=="}"||(ne=_.cc[_.cc.length-1])&&(ne==He||ne==Ge)&&!/^[,\.=+\-*:?[\(]/.test(O));)he=he.prev;b&&he.type==")"&&he.prev.type=="stat"&&(he=he.prev);var pt=he.type,Et=ae==pt;return pt=="vardef"?he.indented+(_.lastType=="operator"||_.lastType==","?he.info.length+1:0):pt=="form"&&ae=="{"?he.indented:pt=="form"?he.indented+C:pt=="stat"?he.indented+(kn(_,O)?b||C:0):he.info=="switch"&&!Et&&v.doubleIndentSwitch!=!1?he.indented+(/^(?:case|default)\b/.test(O)?C:2*C):he.align?he.column+(Et?0:1):he.indented+(Et?0:C)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:k,jsonMode:s,expressionAllowed:jt,skipExpression:function(_){Q(_,"atom","atom","true",new o.StringStream("",2,null))}}}),o.registerHelper("wordChars","javascript",/[\w$]/),o.defineMIME("text/javascript","javascript"),o.defineMIME("text/ecmascript","javascript"),o.defineMIME("application/javascript","javascript"),o.defineMIME("application/x-javascript","javascript"),o.defineMIME("application/ecmascript","javascript"),o.defineMIME("application/json",{name:"javascript",json:!0}),o.defineMIME("application/x-json",{name:"javascript",json:!0}),o.defineMIME("application/manifest+json",{name:"javascript",json:!0}),o.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),o.defineMIME("text/typescript",{name:"javascript",typescript:!0}),o.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var Qn=Ke((Os,Ps)=>{(function(o){typeof Os=="object"&&typeof Ps=="object"?o(We(),mn(),vn(),gn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],o):o(CodeMirror)})(function(o){"use strict";var p={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function v(S,w,c){var d=S.current(),T=d.search(w);return T>-1?S.backUp(d.length-T):d.match(/<\/?$/)&&(S.backUp(d.length),S.match(w,!1)||S.match(d)),c}var C={};function b(S){var w=C[S];return w||(C[S]=new RegExp("\\s+"+S+`\\s*=\\s*('|")?([^'"]+)('|")?\\s*`))}function k(S,w){var c=S.match(b(w));return c?/^\s*(.*?)\s*$/.exec(c[2])[1]:""}function s(S,w){return new RegExp((w?"^":"")+"","i")}function g(S,w){for(var c in S)for(var d=w[c]||(w[c]=[]),T=S[c],E=T.length-1;E>=0;E--)d.unshift(T[E])}function h(S,w){for(var c=0;c=0;z--)d.script.unshift(["type",E[z].matches,E[z].mode]);function y(R,M){var H=c.token(R,M.htmlState),Z=/\btag\b/.test(H),ee;if(Z&&!/[<>\s\/]/.test(R.current())&&(ee=M.htmlState.tagName&&M.htmlState.tagName.toLowerCase())&&d.hasOwnProperty(ee))M.inTag=ee+" ";else if(M.inTag&&Z&&/>$/.test(R.current())){var re=/^([\S]+) (.*)/.exec(M.inTag);M.inTag=null;var N=R.current()==">"&&h(d[re[1]],re[2]),F=o.getMode(S,N),D=s(re[1],!0),Q=s(re[1],!1);M.token=function(j,V){return j.match(D,!1)?(V.token=y,V.localState=V.localMode=null,null):v(j,Q,V.localMode.token(j,V.localState))},M.localMode=F,M.localState=o.startState(F,c.indent(M.htmlState,"",""))}else M.inTag&&(M.inTag+=R.current(),R.eol()&&(M.inTag+=" "));return H}return{startState:function(){var R=o.startState(c);return{token:y,inTag:null,localMode:null,localState:null,htmlState:R}},copyState:function(R){var M;return R.localState&&(M=o.copyState(R.localMode,R.localState)),{token:R.token,inTag:R.inTag,localMode:R.localMode,localState:M,htmlState:o.copyState(c,R.htmlState)}},token:function(R,M){return M.token(R,M)},indent:function(R,M,H){return!R.localMode||/^\s*<\//.test(M)?c.indent(R.htmlState,M,H):R.localMode.indent?R.localMode.indent(R.localState,M,H):o.Pass},innerMode:function(R){return{state:R.localState||R.htmlState,mode:R.localMode||c}}}},"xml","javascript","css"),o.defineMIME("text/html","htmlmixed")})});var Hs=Ke((js,Rs)=>{(function(o){typeof js=="object"&&typeof Rs=="object"?o(We(),Qn(),Yn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../../addon/mode/overlay"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("django:inner",function(){var p=["block","endblock","for","endfor","true","false","filter","endfilter","loop","none","self","super","if","elif","endif","as","else","import","with","endwith","without","context","ifequal","endifequal","ifnotequal","endifnotequal","extends","include","load","comment","endcomment","empty","url","static","trans","blocktrans","endblocktrans","now","regroup","lorem","ifchanged","endifchanged","firstof","debug","cycle","csrf_token","autoescape","endautoescape","spaceless","endspaceless","ssi","templatetag","verbatim","endverbatim","widthratio"],v=["add","addslashes","capfirst","center","cut","date","default","default_if_none","dictsort","dictsortreversed","divisibleby","escape","escapejs","filesizeformat","first","floatformat","force_escape","get_digit","iriencode","join","last","length","length_is","linebreaks","linebreaksbr","linenumbers","ljust","lower","make_list","phone2numeric","pluralize","pprint","random","removetags","rjust","safe","safeseq","slice","slugify","stringformat","striptags","time","timesince","timeuntil","title","truncatechars","truncatechars_html","truncatewords","truncatewords_html","unordered_list","upper","urlencode","urlize","urlizetrunc","wordcount","wordwrap","yesno"],C=["==","!=","<",">","<=",">="],b=["in","not","or","and"];p=new RegExp("^\\b("+p.join("|")+")\\b"),v=new RegExp("^\\b("+v.join("|")+")\\b"),C=new RegExp("^\\b("+C.join("|")+")\\b"),b=new RegExp("^\\b("+b.join("|")+")\\b");function k(c,d){if(c.match("{{"))return d.tokenize=g,"tag";if(c.match("{%"))return d.tokenize=h,"tag";if(c.match("{#"))return d.tokenize=S,"comment";for(;c.next()!=null&&!c.match(/\{[{%#]/,!1););return null}function s(c,d){return function(T,E){if(!E.escapeNext&&T.eat(c))E.tokenize=d;else{E.escapeNext&&(E.escapeNext=!1);var z=T.next();z=="\\"&&(E.escapeNext=!0)}return"string"}}function g(c,d){if(d.waitDot){if(d.waitDot=!1,c.peek()!=".")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("."))return d.waitProperty=!0,"null";throw Error("Unexpected error while waiting for property.")}if(d.waitPipe){if(d.waitPipe=!1,c.peek()!="|")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("|"))return d.waitFilter=!0,"null";throw Error("Unexpected error while waiting for filter.")}return d.waitProperty&&(d.waitProperty=!1,c.match(/\b(\w+)\b/))?(d.waitDot=!0,d.waitPipe=!0,"property"):d.waitFilter&&(d.waitFilter=!1,c.match(v))?"variable-2":c.eatSpace()?(d.waitProperty=!1,"null"):c.match(/\b\d+(\.\d+)?\b/)?"number":c.match("'")?(d.tokenize=s("'",d.tokenize),"string"):c.match('"')?(d.tokenize=s('"',d.tokenize),"string"):c.match(/\b(\w+)\b/)&&!d.foundVariable?(d.waitDot=!0,d.waitPipe=!0,"variable"):c.match("}}")?(d.waitProperty=null,d.waitFilter=null,d.waitDot=null,d.waitPipe=null,d.tokenize=k,"tag"):(c.next(),"null")}function h(c,d){if(d.waitDot){if(d.waitDot=!1,c.peek()!=".")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("."))return d.waitProperty=!0,"null";throw Error("Unexpected error while waiting for property.")}if(d.waitPipe){if(d.waitPipe=!1,c.peek()!="|")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("|"))return d.waitFilter=!0,"null";throw Error("Unexpected error while waiting for filter.")}if(d.waitProperty&&(d.waitProperty=!1,c.match(/\b(\w+)\b/)))return d.waitDot=!0,d.waitPipe=!0,"property";if(d.waitFilter&&(d.waitFilter=!1,c.match(v)))return"variable-2";if(c.eatSpace())return d.waitProperty=!1,"null";if(c.match(/\b\d+(\.\d+)?\b/))return"number";if(c.match("'"))return d.tokenize=s("'",d.tokenize),"string";if(c.match('"'))return d.tokenize=s('"',d.tokenize),"string";if(c.match(C))return"operator";if(c.match(b))return"keyword";var T=c.match(p);return T?(T[0]=="comment"&&(d.blockCommentTag=!0),"keyword"):c.match(/\b(\w+)\b/)?(d.waitDot=!0,d.waitPipe=!0,"variable"):c.match("%}")?(d.waitProperty=null,d.waitFilter=null,d.waitDot=null,d.waitPipe=null,d.blockCommentTag?(d.blockCommentTag=!1,d.tokenize=w):d.tokenize=k,"tag"):(c.next(),"null")}function S(c,d){return c.match(/^.*?#\}/)?d.tokenize=k:c.skipToEnd(),"comment"}function w(c,d){return c.match(/\{%\s*endcomment\s*%\}/,!1)?(d.tokenize=h,c.match("{%"),"tag"):(c.next(),"comment")}return{startState:function(){return{tokenize:k}},token:function(c,d){return d.tokenize(c,d)},blockCommentStart:"{% comment %}",blockCommentEnd:"{% endcomment %}"}}),o.defineMode("django",function(p){var v=o.getMode(p,"text/html"),C=o.getMode(p,"django:inner");return o.overlayMode(v,C)}),o.defineMIME("text/x-django","django")})});var Di=Ke((Bs,Ws)=>{(function(o){typeof Bs=="object"&&typeof Ws=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineSimpleMode=function(w,c){o.defineMode(w,function(d){return o.simpleMode(d,c)})},o.simpleMode=function(w,c){p(c,"start");var d={},T=c.meta||{},E=!1;for(var z in c)if(z!=T&&c.hasOwnProperty(z))for(var y=d[z]=[],R=c[z],M=0;M2&&H.token&&typeof H.token!="string"){for(var re=2;re-1)return o.Pass;var z=d.indent.length-1,y=w[d.state];e:for(;;){for(var R=0;R{(function(o){typeof Us=="object"&&typeof $s=="object"?o(We(),Di()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],o):o(CodeMirror)})(function(o){"use strict";var p="from",v=new RegExp("^(\\s*)\\b("+p+")\\b","i"),C=["run","cmd","entrypoint","shell"],b=new RegExp("^(\\s*)("+C.join("|")+")(\\s+\\[)","i"),k="expose",s=new RegExp("^(\\s*)("+k+")(\\s+)","i"),g=["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"],h=[p,k].concat(C).concat(g),S="("+h.join("|")+")",w=new RegExp("^(\\s*)"+S+"(\\s*)(#.*)?$","i"),c=new RegExp("^(\\s*)"+S+"(\\s+)","i");o.defineSimpleMode("dockerfile",{start:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:v,token:[null,"keyword"],sol:!0,next:"from"},{regex:w,token:[null,"keyword",null,"error"],sol:!0},{regex:b,token:[null,"keyword",null],sol:!0,next:"array"},{regex:s,token:[null,"keyword",null],sol:!0,next:"expose"},{regex:c,token:[null,"keyword",null],sol:!0,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:!0}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:!0}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],meta:{lineComment:"#"}}),o.defineMIME("text/x-dockerfile","dockerfile")})});var Xs=Ke((Gs,Zs)=>{(function(o){typeof Gs=="object"&&typeof Zs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy","cbl"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var p=0;p-1&&C.substring(s+1,C.length);if(g)return o.findModeByExtension(g)},o.findModeByName=function(C){C=C.toLowerCase();for(var b=0;b{(function(o){typeof Ys=="object"&&typeof Qs=="object"?o(We(),mn(),Xs()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../meta"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("markdown",function(p,v){var C=o.getMode(p,"text/html"),b=C.name=="null";function k(q){if(o.findModeByName){var L=o.findModeByName(q);L&&(q=L.mime||L.mimes[0])}var de=o.getMode(p,q);return de.name=="null"?null:de}v.highlightFormatting===void 0&&(v.highlightFormatting=!1),v.maxBlockquoteDepth===void 0&&(v.maxBlockquoteDepth=0),v.taskLists===void 0&&(v.taskLists=!1),v.strikethrough===void 0&&(v.strikethrough=!1),v.emoji===void 0&&(v.emoji=!1),v.fencedCodeBlockHighlighting===void 0&&(v.fencedCodeBlockHighlighting=!0),v.fencedCodeBlockDefaultMode===void 0&&(v.fencedCodeBlockDefaultMode="text/plain"),v.xml===void 0&&(v.xml=!0),v.tokenTypeOverrides===void 0&&(v.tokenTypeOverrides={});var s={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var g in s)s.hasOwnProperty(g)&&v.tokenTypeOverrides[g]&&(s[g]=v.tokenTypeOverrides[g]);var h=/^([*\-_])(?:\s*\1){2,}\s*$/,S=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,w=/^\[(x| )\](?=\s)/i,c=v.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,d=/^ {0,3}(?:\={1,}|-{2,})\s*$/,T=/^[^#!\[\]*_\\<>` "'(~:]+/,E=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,z=/^\s*\[[^\]]+?\]:.*$/,y=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,R=" ";function M(q,L,de){return L.f=L.inline=de,de(q,L)}function H(q,L,de){return L.f=L.block=de,de(q,L)}function Z(q){return!q||!/\S/.test(q.string)}function ee(q){if(q.linkTitle=!1,q.linkHref=!1,q.linkText=!1,q.em=!1,q.strong=!1,q.strikethrough=!1,q.quote=0,q.indentedCode=!1,q.f==N){var L=b;if(!L){var de=o.innerMode(C,q.htmlState);L=de.mode.name=="xml"&&de.state.tagStart===null&&!de.state.context&&de.state.tokenize.isInText}L&&(q.f=j,q.block=re,q.htmlState=null)}return q.trailingSpace=0,q.trailingSpaceNewLine=!1,q.prevLine=q.thisLine,q.thisLine={stream:null},null}function re(q,L){var de=q.column()===L.indentation,ze=Z(L.prevLine.stream),pe=L.indentedCode,Ee=L.prevLine.hr,ge=L.list!==!1,Oe=(L.listStack[L.listStack.length-1]||0)+3;L.indentedCode=!1;var qe=L.indentation;if(L.indentationDiff===null&&(L.indentationDiff=L.indentation,ge)){for(L.list=null;qe=4&&(pe||L.prevLine.fencedCodeEnd||L.prevLine.header||ze))return q.skipToEnd(),L.indentedCode=!0,s.code;if(q.eatSpace())return null;if(de&&L.indentation<=Oe&&(Ze=q.match(c))&&Ze[1].length<=6)return L.quote=0,L.header=Ze[1].length,L.thisLine.header=!0,v.highlightFormatting&&(L.formatting="header"),L.f=L.inline,D(L);if(L.indentation<=Oe&&q.eat(">"))return L.quote=de?1:L.quote+1,v.highlightFormatting&&(L.formatting="quote"),q.eatSpace(),D(L);if(!je&&!L.setext&&de&&L.indentation<=Oe&&(Ze=q.match(S))){var ke=Ze[1]?"ol":"ul";return L.indentation=qe+q.current().length,L.list=!0,L.quote=0,L.listStack.push(L.indentation),L.em=!1,L.strong=!1,L.code=!1,L.strikethrough=!1,v.taskLists&&q.match(w,!1)&&(L.taskList=!0),L.f=L.inline,v.highlightFormatting&&(L.formatting=["list","list-"+ke]),D(L)}else{if(de&&L.indentation<=Oe&&(Ze=q.match(E,!0)))return L.quote=0,L.fencedEndRE=new RegExp(Ze[1]+"+ *$"),L.localMode=v.fencedCodeBlockHighlighting&&k(Ze[2]||v.fencedCodeBlockDefaultMode),L.localMode&&(L.localState=o.startState(L.localMode)),L.f=L.block=F,v.highlightFormatting&&(L.formatting="code-block"),L.code=-1,D(L);if(L.setext||(!Se||!ge)&&!L.quote&&L.list===!1&&!L.code&&!je&&!z.test(q.string)&&(Ze=q.lookAhead(1))&&(Ze=Ze.match(d)))return L.setext?(L.header=L.setext,L.setext=0,q.skipToEnd(),v.highlightFormatting&&(L.formatting="header")):(L.header=Ze[0].charAt(0)=="="?1:2,L.setext=L.header),L.thisLine.header=!0,L.f=L.inline,D(L);if(je)return q.skipToEnd(),L.hr=!0,L.thisLine.hr=!0,s.hr;if(q.peek()==="[")return M(q,L,I)}return M(q,L,L.inline)}function N(q,L){var de=C.token(q,L.htmlState);if(!b){var ze=o.innerMode(C,L.htmlState);(ze.mode.name=="xml"&&ze.state.tagStart===null&&!ze.state.context&&ze.state.tokenize.isInText||L.md_inside&&q.current().indexOf(">")>-1)&&(L.f=j,L.block=re,L.htmlState=null)}return de}function F(q,L){var de=L.listStack[L.listStack.length-1]||0,ze=L.indentation=q.quote?L.push(s.formatting+"-"+q.formatting[de]+"-"+q.quote):L.push("error"))}if(q.taskOpen)return L.push("meta"),L.length?L.join(" "):null;if(q.taskClosed)return L.push("property"),L.length?L.join(" "):null;if(q.linkHref?L.push(s.linkHref,"url"):(q.strong&&L.push(s.strong),q.em&&L.push(s.em),q.strikethrough&&L.push(s.strikethrough),q.emoji&&L.push(s.emoji),q.linkText&&L.push(s.linkText),q.code&&L.push(s.code),q.image&&L.push(s.image),q.imageAltText&&L.push(s.imageAltText,"link"),q.imageMarker&&L.push(s.imageMarker)),q.header&&L.push(s.header,s.header+"-"+q.header),q.quote&&(L.push(s.quote),!v.maxBlockquoteDepth||v.maxBlockquoteDepth>=q.quote?L.push(s.quote+"-"+q.quote):L.push(s.quote+"-"+v.maxBlockquoteDepth)),q.list!==!1){var ze=(q.listStack.length-1)%3;ze?ze===1?L.push(s.list2):L.push(s.list3):L.push(s.list1)}return q.trailingSpaceNewLine?L.push("trailing-space-new-line"):q.trailingSpace&&L.push("trailing-space-"+(q.trailingSpace%2?"a":"b")),L.length?L.join(" "):null}function Q(q,L){if(q.match(T,!0))return D(L)}function j(q,L){var de=L.text(q,L);if(typeof de<"u")return de;if(L.list)return L.list=null,D(L);if(L.taskList){var ze=q.match(w,!0)[1]===" ";return ze?L.taskOpen=!0:L.taskClosed=!0,v.highlightFormatting&&(L.formatting="task"),L.taskList=!1,D(L)}if(L.taskOpen=!1,L.taskClosed=!1,L.header&&q.match(/^#+$/,!0))return v.highlightFormatting&&(L.formatting="header"),D(L);var pe=q.next();if(L.linkTitle){L.linkTitle=!1;var Ee=pe;pe==="("&&(Ee=")"),Ee=(Ee+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1");var ge="^\\s*(?:[^"+Ee+"\\\\]+|\\\\\\\\|\\\\.)"+Ee;if(q.match(new RegExp(ge),!0))return s.linkHref}if(pe==="`"){var Oe=L.formatting;v.highlightFormatting&&(L.formatting="code"),q.eatWhile("`");var qe=q.current().length;if(L.code==0&&(!L.quote||qe==1))return L.code=qe,D(L);if(qe==L.code){var Se=D(L);return L.code=0,Se}else return L.formatting=Oe,D(L)}else if(L.code)return D(L);if(pe==="\\"&&(q.next(),v.highlightFormatting)){var je=D(L),Ze=s.formatting+"-escape";return je?je+" "+Ze:Ze}if(pe==="!"&&q.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return L.imageMarker=!0,L.image=!0,v.highlightFormatting&&(L.formatting="image"),D(L);if(pe==="["&&L.imageMarker&&q.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return L.imageMarker=!1,L.imageAltText=!0,v.highlightFormatting&&(L.formatting="image"),D(L);if(pe==="]"&&L.imageAltText){v.highlightFormatting&&(L.formatting="image");var je=D(L);return L.imageAltText=!1,L.image=!1,L.inline=L.f=x,je}if(pe==="["&&!L.image)return L.linkText&&q.match(/^.*?\]/)||(L.linkText=!0,v.highlightFormatting&&(L.formatting="link")),D(L);if(pe==="]"&&L.linkText){v.highlightFormatting&&(L.formatting="link");var je=D(L);return L.linkText=!1,L.inline=L.f=q.match(/\(.*?\)| ?\[.*?\]/,!1)?x:j,je}if(pe==="<"&&q.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){L.f=L.inline=V,v.highlightFormatting&&(L.formatting="link");var je=D(L);return je?je+=" ":je="",je+s.linkInline}if(pe==="<"&&q.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){L.f=L.inline=V,v.highlightFormatting&&(L.formatting="link");var je=D(L);return je?je+=" ":je="",je+s.linkEmail}if(v.xml&&pe==="<"&&q.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var ke=q.string.indexOf(">",q.pos);if(ke!=-1){var Je=q.string.substring(q.start,ke);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(Je)&&(L.md_inside=!0)}return q.backUp(1),L.htmlState=o.startState(C),H(q,L,N)}if(v.xml&&pe==="<"&&q.match(/^\/\w*?>/))return L.md_inside=!1,"tag";if(pe==="*"||pe==="_"){for(var He=1,Ge=q.pos==1?" ":q.string.charAt(q.pos-2);He<3&&q.eat(pe);)He++;var U=q.peek()||" ",G=!/\s/.test(U)&&(!y.test(U)||/\s/.test(Ge)||y.test(Ge)),ce=!/\s/.test(Ge)&&(!y.test(Ge)||/\s/.test(U)||y.test(U)),Be=null,te=null;if(He%2&&(!L.em&&G&&(pe==="*"||!ce||y.test(Ge))?Be=!0:L.em==pe&&ce&&(pe==="*"||!G||y.test(U))&&(Be=!1)),He>1&&(!L.strong&&G&&(pe==="*"||!ce||y.test(Ge))?te=!0:L.strong==pe&&ce&&(pe==="*"||!G||y.test(U))&&(te=!1)),te!=null||Be!=null){v.highlightFormatting&&(L.formatting=Be==null?"strong":te==null?"em":"strong em"),Be===!0&&(L.em=pe),te===!0&&(L.strong=pe);var Se=D(L);return Be===!1&&(L.em=!1),te===!1&&(L.strong=!1),Se}}else if(pe===" "&&(q.eat("*")||q.eat("_"))){if(q.peek()===" ")return D(L);q.backUp(1)}if(v.strikethrough){if(pe==="~"&&q.eatWhile(pe)){if(L.strikethrough){v.highlightFormatting&&(L.formatting="strikethrough");var Se=D(L);return L.strikethrough=!1,Se}else if(q.match(/^[^\s]/,!1))return L.strikethrough=!0,v.highlightFormatting&&(L.formatting="strikethrough"),D(L)}else if(pe===" "&&q.match("~~",!0)){if(q.peek()===" ")return D(L);q.backUp(2)}}if(v.emoji&&pe===":"&&q.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){L.emoji=!0,v.highlightFormatting&&(L.formatting="emoji");var fe=D(L);return L.emoji=!1,fe}return pe===" "&&(q.match(/^ +$/,!1)?L.trailingSpace++:L.trailingSpace&&(L.trailingSpaceNewLine=!0)),D(L)}function V(q,L){var de=q.next();if(de===">"){L.f=L.inline=j,v.highlightFormatting&&(L.formatting="link");var ze=D(L);return ze?ze+=" ":ze="",ze+s.linkInline}return q.match(/^[^>]+/,!0),s.linkInline}function x(q,L){if(q.eatSpace())return null;var de=q.next();return de==="("||de==="["?(L.f=L.inline=X(de==="("?")":"]"),v.highlightFormatting&&(L.formatting="link-string"),L.linkHref=!0,D(L)):"error"}var K={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function X(q){return function(L,de){var ze=L.next();if(ze===q){de.f=de.inline=j,v.highlightFormatting&&(de.formatting="link-string");var pe=D(de);return de.linkHref=!1,pe}return L.match(K[q]),de.linkHref=!0,D(de)}}function I(q,L){return q.match(/^([^\]\\]|\\.)*\]:/,!1)?(L.f=B,q.next(),v.highlightFormatting&&(L.formatting="link"),L.linkText=!0,D(L)):M(q,L,j)}function B(q,L){if(q.match("]:",!0)){L.f=L.inline=le,v.highlightFormatting&&(L.formatting="link");var de=D(L);return L.linkText=!1,de}return q.match(/^([^\]\\]|\\.)+/,!0),s.linkText}function le(q,L){return q.eatSpace()?null:(q.match(/^[^\s]+/,!0),q.peek()===void 0?L.linkTitle=!0:q.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),L.f=L.inline=j,s.linkHref+" url")}var xe={startState:function(){return{f:re,prevLine:{stream:null},thisLine:{stream:null},block:re,htmlState:null,indentation:0,inline:j,text:Q,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(q){return{f:q.f,prevLine:q.prevLine,thisLine:q.thisLine,block:q.block,htmlState:q.htmlState&&o.copyState(C,q.htmlState),indentation:q.indentation,localMode:q.localMode,localState:q.localMode?o.copyState(q.localMode,q.localState):null,inline:q.inline,text:q.text,formatting:!1,linkText:q.linkText,linkTitle:q.linkTitle,linkHref:q.linkHref,code:q.code,em:q.em,strong:q.strong,strikethrough:q.strikethrough,emoji:q.emoji,header:q.header,setext:q.setext,hr:q.hr,taskList:q.taskList,list:q.list,listStack:q.listStack.slice(0),quote:q.quote,indentedCode:q.indentedCode,trailingSpace:q.trailingSpace,trailingSpaceNewLine:q.trailingSpaceNewLine,md_inside:q.md_inside,fencedEndRE:q.fencedEndRE}},token:function(q,L){if(L.formatting=!1,q!=L.thisLine.stream){if(L.header=0,L.hr=!1,q.match(/^\s*$/,!0))return ee(L),null;if(L.prevLine=L.thisLine,L.thisLine={stream:q},L.taskList=!1,L.trailingSpace=0,L.trailingSpaceNewLine=!1,!L.localState&&(L.f=L.block,L.f!=N)){var de=q.match(/^\s*/,!0)[0].replace(/\t/g,R).length;if(L.indentation=de,L.indentationDiff=null,de>0)return null}}return L.f(q,L)},innerMode:function(q){return q.block==N?{state:q.htmlState,mode:C}:q.localState?{state:q.localState,mode:q.localMode}:{state:q,mode:xe}},indent:function(q,L,de){return q.block==N&&C.indent?C.indent(q.htmlState,L,de):q.localState&&q.localMode.indent?q.localMode.indent(q.localState,L,de):o.Pass},blankLine:ee,getType:D,blockCommentStart:"",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return xe},"xml"),o.defineMIME("text/markdown","markdown"),o.defineMIME("text/x-markdown","markdown")})});var eu=Ke((Vs,Js)=>{(function(o){typeof Vs=="object"&&typeof Js=="object"?o(We(),Jo(),Yn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../markdown/markdown","../../addon/mode/overlay"],o):o(CodeMirror)})(function(o){"use strict";var p=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;o.defineMode("gfm",function(v,C){var b=0;function k(S){return S.code=!1,null}var s={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(S){return{code:S.code,codeBlock:S.codeBlock,ateSpace:S.ateSpace}},token:function(S,w){if(w.combineTokens=null,w.codeBlock)return S.match(/^```+/)?(w.codeBlock=!1,null):(S.skipToEnd(),null);if(S.sol()&&(w.code=!1),S.sol()&&S.match(/^```+/))return S.skipToEnd(),w.codeBlock=!0,null;if(S.peek()==="`"){S.next();var c=S.pos;S.eatWhile("`");var d=1+S.pos-c;return w.code?d===b&&(w.code=!1):(b=d,w.code=!0),null}else if(w.code)return S.next(),null;if(S.eatSpace())return w.ateSpace=!0,null;if((S.sol()||w.ateSpace)&&(w.ateSpace=!1,C.gitHubSpice!==!1)){if(S.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return w.combineTokens=!0,"link";if(S.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return w.combineTokens=!0,"link"}return S.match(p)&&S.string.slice(S.start-2,S.start)!="]("&&(S.start==0||/\W/.test(S.string.charAt(S.start-1)))?(w.combineTokens=!0,"link"):(S.next(),null)},blankLine:k},g={taskLists:!0,strikethrough:!0,emoji:!0};for(var h in C)g[h]=C[h];return g.name="markdown",o.overlayMode(o.getMode(v,g),s)},"markdown"),o.defineMIME("text/x-gfm","gfm")})});var nu=Ke((tu,ru)=>{(function(o){typeof tu=="object"&&typeof ru=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("go",function(p){var v=p.indentUnit,C={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},b={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},k=/[+\-*&^%:=<>!|\/]/,s;function g(T,E){var z=T.next();if(z=='"'||z=="'"||z=="`")return E.tokenize=h(z),E.tokenize(T,E);if(/[\d\.]/.test(z))return z=="."?T.match(/^[0-9_]+([eE][\-+]?[0-9_]+)?/):z=="0"?T.match(/^[xX][0-9a-fA-F_]+/)||T.match(/^[0-7_]+/):T.match(/^[0-9_]*\.?[0-9_]*([eE][\-+]?[0-9_]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(z))return s=z,null;if(z=="/"){if(T.eat("*"))return E.tokenize=S,S(T,E);if(T.eat("/"))return T.skipToEnd(),"comment"}if(k.test(z))return T.eatWhile(k),"operator";T.eatWhile(/[\w\$_\xa1-\uffff]/);var y=T.current();return C.propertyIsEnumerable(y)?((y=="case"||y=="default")&&(s="case"),"keyword"):b.propertyIsEnumerable(y)?"atom":"variable"}function h(T){return function(E,z){for(var y=!1,R,M=!1;(R=E.next())!=null;){if(R==T&&!y){M=!0;break}y=!y&&T!="`"&&R=="\\"}return(M||!(y||T=="`"))&&(z.tokenize=g),"string"}}function S(T,E){for(var z=!1,y;y=T.next();){if(y=="/"&&z){E.tokenize=g;break}z=y=="*"}return"comment"}function w(T,E,z,y,R){this.indented=T,this.column=E,this.type=z,this.align=y,this.prev=R}function c(T,E,z){return T.context=new w(T.indented,E,z,null,T.context)}function d(T){if(T.context.prev){var E=T.context.type;return(E==")"||E=="]"||E=="}")&&(T.indented=T.context.indented),T.context=T.context.prev}}return{startState:function(T){return{tokenize:null,context:new w((T||0)-v,0,"top",!1),indented:0,startOfLine:!0}},token:function(T,E){var z=E.context;if(T.sol()&&(z.align==null&&(z.align=!1),E.indented=T.indentation(),E.startOfLine=!0,z.type=="case"&&(z.type="}")),T.eatSpace())return null;s=null;var y=(E.tokenize||g)(T,E);return y=="comment"||(z.align==null&&(z.align=!0),s=="{"?c(E,T.column(),"}"):s=="["?c(E,T.column(),"]"):s=="("?c(E,T.column(),")"):s=="case"?z.type="case":(s=="}"&&z.type=="}"||s==z.type)&&d(E),E.startOfLine=!1),y},indent:function(T,E){if(T.tokenize!=g&&T.tokenize!=null)return o.Pass;var z=T.context,y=E&&E.charAt(0);if(z.type=="case"&&/^(?:case|default)\b/.test(E))return T.context.type="}",z.indented;var R=y==z.type;return z.align?z.column+(R?0:1):z.indented+(R?0:v)},electricChars:"{}):",closeBrackets:"()[]{}''\"\"``",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}}),o.defineMIME("text/x-go","go")})});var au=Ke((iu,ou)=>{(function(o){typeof iu=="object"&&typeof ou=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("http",function(){function p(S,w){return S.skipToEnd(),w.cur=g,"error"}function v(S,w){return S.match(/^HTTP\/\d\.\d/)?(w.cur=C,"keyword"):S.match(/^[A-Z]+/)&&/[ \t]/.test(S.peek())?(w.cur=k,"keyword"):p(S,w)}function C(S,w){var c=S.match(/^\d+/);if(!c)return p(S,w);w.cur=b;var d=Number(c[0]);return d>=100&&d<200?"positive informational":d>=200&&d<300?"positive success":d>=300&&d<400?"positive redirect":d>=400&&d<500?"negative client-error":d>=500&&d<600?"negative server-error":"error"}function b(S,w){return S.skipToEnd(),w.cur=g,null}function k(S,w){return S.eatWhile(/\S/),w.cur=s,"string-2"}function s(S,w){return S.match(/^HTTP\/\d\.\d$/)?(w.cur=g,"keyword"):p(S,w)}function g(S){return S.sol()&&!S.eat(/[ \t]/)?S.match(/^.*?:/)?"atom":(S.skipToEnd(),"error"):(S.skipToEnd(),"string")}function h(S){return S.skipToEnd(),null}return{token:function(S,w){var c=w.cur;return c!=g&&c!=h&&S.eatSpace()?null:c(S,w)},blankLine:function(S){S.cur=h},startState:function(){return{cur:v}}}}),o.defineMIME("message/http","http")})});var uu=Ke((lu,su)=>{(function(o){typeof lu=="object"&&typeof su=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("jinja2",function(){var p=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","do","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","set","raw","endraw","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","call","endcall","macro","endmacro","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","without","context","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","pluralize","autoescape","endautoescape"],v=/^[+\-*&%=<>!?|~^]/,C=/^[:\[\(\{]/,b=["true","false"],k=/^(\d[+\-\*\/])?\d+(\.\d+)?/;p=new RegExp("(("+p.join(")|(")+"))\\b"),b=new RegExp("(("+b.join(")|(")+"))\\b");function s(g,h){var S=g.peek();if(h.incomment)return g.skipTo("#}")?(g.eatWhile(/\#|}/),h.incomment=!1):g.skipToEnd(),"comment";if(h.intag){if(h.operator){if(h.operator=!1,g.match(b))return"atom";if(g.match(k))return"number"}if(h.sign){if(h.sign=!1,g.match(b))return"atom";if(g.match(k))return"number"}if(h.instring)return S==h.instring&&(h.instring=!1),g.next(),"string";if(S=="'"||S=='"')return h.instring=S,g.next(),"string";if(h.inbraces>0&&S==")")g.next(),h.inbraces--;else if(S=="(")g.next(),h.inbraces++;else if(h.inbrackets>0&&S=="]")g.next(),h.inbrackets--;else if(S=="[")g.next(),h.inbrackets++;else{if(!h.lineTag&&(g.match(h.intag+"}")||g.eat("-")&&g.match(h.intag+"}")))return h.intag=!1,"tag";if(g.match(v))return h.operator=!0,"operator";if(g.match(C))h.sign=!0;else{if(g.column()==1&&h.lineTag&&g.match(p))return"keyword";if(g.eat(" ")||g.sol()){if(g.match(p))return"keyword";if(g.match(b))return"atom";if(g.match(k))return"number";g.sol()&&g.next()}else g.next()}}return"variable"}else if(g.eat("{")){if(g.eat("#"))return h.incomment=!0,g.skipTo("#}")?(g.eatWhile(/\#|}/),h.incomment=!1):g.skipToEnd(),"comment";if(S=g.eat(/\{|%/))return h.intag=S,h.inbraces=0,h.inbrackets=0,S=="{"&&(h.intag="}"),g.eat("-"),"tag"}else if(g.eat("#")){if(g.peek()=="#")return g.skipToEnd(),"comment";if(!g.eol())return h.intag=!0,h.lineTag=!0,h.inbraces=0,h.inbrackets=0,"tag"}g.next()}return{startState:function(){return{tokenize:s,inbrackets:0,inbraces:0}},token:function(g,h){var S=h.tokenize(g,h);return g.eol()&&h.lineTag&&!h.instring&&h.inbraces==0&&h.inbrackets==0&&(h.intag=!1,h.lineTag=!1),S},blockCommentStart:"{#",blockCommentEnd:"#}",lineComment:"##"}}),o.defineMIME("text/jinja2","jinja2")})});var du=Ke((cu,fu)=>{(function(o){typeof cu=="object"&&typeof fu=="object"?o(We(),mn(),vn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],o):o(CodeMirror)})(function(o){"use strict";function p(C,b,k,s){this.state=C,this.mode=b,this.depth=k,this.prev=s}function v(C){return new p(o.copyState(C.mode,C.state),C.mode,C.depth,C.prev&&v(C.prev))}o.defineMode("jsx",function(C,b){var k=o.getMode(C,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),s=o.getMode(C,b&&b.base||"javascript");function g(c){var d=c.tagName;c.tagName=null;var T=k.indent(c,"","");return c.tagName=d,T}function h(c,d){return d.context.mode==k?S(c,d,d.context):w(c,d,d.context)}function S(c,d,T){if(T.depth==2)return c.match(/^.*?\*\//)?T.depth=1:c.skipToEnd(),"comment";if(c.peek()=="{"){k.skipAttribute(T.state);var E=g(T.state),z=T.state.context;if(z&&c.match(/^[^>]*>\s*$/,!1)){for(;z.prev&&!z.startOfLine;)z=z.prev;z.startOfLine?E-=C.indentUnit:T.prev.state.lexical&&(E=T.prev.state.lexical.indented)}else T.depth==1&&(E+=C.indentUnit);return d.context=new p(o.startState(s,E),s,0,d.context),null}if(T.depth==1){if(c.peek()=="<")return k.skipAttribute(T.state),d.context=new p(o.startState(k,g(T.state)),k,0,d.context),null;if(c.match("//"))return c.skipToEnd(),"comment";if(c.match("/*"))return T.depth=2,h(c,d)}var y=k.token(c,T.state),R=c.current(),M;return/\btag\b/.test(y)?/>$/.test(R)?T.state.context?T.depth=0:d.context=d.context.prev:/^-1&&c.backUp(R.length-M),y}function w(c,d,T){if(c.peek()=="<"&&!c.match(/^<([^<>]|<[^>]*>)+,\s*>/,!1)&&s.expressionAllowed(c,T.state))return d.context=new p(o.startState(k,s.indent(T.state,"","")),k,0,d.context),s.skipExpression(T.state),null;var E=s.token(c,T.state);if(!E&&T.depth!=null){var z=c.current();z=="{"?T.depth++:z=="}"&&--T.depth==0&&(d.context=d.context.prev)}return E}return{startState:function(){return{context:new p(o.startState(s),s)}},copyState:function(c){return{context:v(c.context)}},token:h,indent:function(c,d,T){return c.context.mode.indent(c.context.state,d,T)},innerMode:function(c){return c.context}}},"xml","javascript"),o.defineMIME("text/jsx","jsx"),o.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var gu=Ke((pu,hu)=>{(function(o){typeof pu=="object"&&typeof hu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("nginx",function(p){function v(T){for(var E={},z=T.split(" "),y=0;y*\/]/.test(y)?h(null,"select-op"):/[;{}:\[\]]/.test(y)?h(null,y):(T.eatWhile(/[\w\\\-]/),h("variable","variable"))}function w(T,E){for(var z=!1,y;(y=T.next())!=null;){if(z&&y=="/"){E.tokenize=S;break}z=y=="*"}return h("comment","comment")}function c(T,E){for(var z=0,y;(y=T.next())!=null;){if(z>=2&&y==">"){E.tokenize=S;break}z=y=="-"?z+1:0}return h("comment","comment")}function d(T){return function(E,z){for(var y=!1,R;(R=E.next())!=null&&!(R==T&&!y);)y=!y&&R=="\\";return y||(z.tokenize=S),h("string","string")}}return{startState:function(T){return{tokenize:S,baseIndent:T||0,stack:[]}},token:function(T,E){if(T.eatSpace())return null;g=null;var z=E.tokenize(T,E),y=E.stack[E.stack.length-1];return g=="hash"&&y=="rule"?z="atom":z=="variable"&&(y=="rule"?z="number":(!y||y=="@media{")&&(z="tag")),y=="rule"&&/^[\{\};]$/.test(g)&&E.stack.pop(),g=="{"?y=="@media"?E.stack[E.stack.length-1]="@media{":E.stack.push("{"):g=="}"?E.stack.pop():g=="@media"?E.stack.push("@media"):y=="{"&&g!="comment"&&E.stack.push("rule"),z},indent:function(T,E){var z=T.stack.length;return/^\}/.test(E)&&(z-=T.stack[T.stack.length-1]=="rule"?2:1),T.baseIndent+z*s},electricChars:"}"}}),o.defineMIME("text/x-nginx-conf","nginx")})});var bu=Ke((mu,vu)=>{(function(o){typeof mu=="object"&&typeof vu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("pascal",function(){function p(S){for(var w={},c=S.split(" "),d=0;d!?|\/]/;function k(S,w){var c=S.next();if(c=="#"&&w.startOfLine)return S.skipToEnd(),"meta";if(c=='"'||c=="'")return w.tokenize=s(c),w.tokenize(S,w);if(c=="("&&S.eat("*"))return w.tokenize=g,g(S,w);if(c=="{")return w.tokenize=h,h(S,w);if(/[\[\]\(\),;\:\.]/.test(c))return null;if(/\d/.test(c))return S.eatWhile(/[\w\.]/),"number";if(c=="/"&&S.eat("/"))return S.skipToEnd(),"comment";if(b.test(c))return S.eatWhile(b),"operator";S.eatWhile(/[\w\$_]/);var d=S.current();return v.propertyIsEnumerable(d)?"keyword":C.propertyIsEnumerable(d)?"atom":"variable"}function s(S){return function(w,c){for(var d=!1,T,E=!1;(T=w.next())!=null;){if(T==S&&!d){E=!0;break}d=!d&&T=="\\"}return(E||!d)&&(c.tokenize=null),"string"}}function g(S,w){for(var c=!1,d;d=S.next();){if(d==")"&&c){w.tokenize=null;break}c=d=="*"}return"comment"}function h(S,w){for(var c;c=S.next();)if(c=="}"){w.tokenize=null;break}return"comment"}return{startState:function(){return{tokenize:null}},token:function(S,w){if(S.eatSpace())return null;var c=(w.tokenize||k)(S,w);return c=="comment"||c=="meta",c},electricChars:"{}"}}),o.defineMIME("text/x-pascal","pascal")})});var _u=Ke((yu,xu)=>{(function(o){typeof yu=="object"&&typeof xu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("perl",function(){var k={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},s="string-2",g=/[goseximacplud]/;function h(c,d,T,E,z){return d.chain=null,d.style=null,d.tail=null,d.tokenize=function(y,R){for(var M=!1,H,Z=0;H=y.next();){if(H===T[Z]&&!M)return T[++Z]!==void 0?(R.chain=T[Z],R.style=E,R.tail=z):z&&y.eatWhile(z),R.tokenize=w,E;M=!M&&H=="\\"}return E},d.tokenize(c,d)}function S(c,d,T){return d.tokenize=function(E,z){return E.string==T&&(z.tokenize=w),E.skipToEnd(),"string"},d.tokenize(c,d)}function w(c,d){if(c.eatSpace())return null;if(d.chain)return h(c,d,d.chain,d.style,d.tail);if(c.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(c.match(/^<<(?=[_a-zA-Z])/))return c.eatWhile(/\w/),S(c,d,c.current().substr(2));if(c.sol()&&c.match(/^\=item(?!\w)/))return S(c,d,"=cut");var T=c.next();if(T=='"'||T=="'"){if(v(c,3)=="<<"+T){var E=c.pos;c.eatWhile(/\w/);var z=c.current().substr(1);if(z&&c.eat(T))return S(c,d,z);c.pos=E}return h(c,d,[T],"string")}if(T=="q"){var y=p(c,-2);if(!(y&&/\w/.test(y))){if(y=p(c,0),y=="x"){if(y=p(c,1),y=="(")return b(c,2),h(c,d,[")"],s,g);if(y=="[")return b(c,2),h(c,d,["]"],s,g);if(y=="{")return b(c,2),h(c,d,["}"],s,g);if(y=="<")return b(c,2),h(c,d,[">"],s,g);if(/[\^'"!~\/]/.test(y))return b(c,1),h(c,d,[c.eat(y)],s,g)}else if(y=="q"){if(y=p(c,1),y=="(")return b(c,2),h(c,d,[")"],"string");if(y=="[")return b(c,2),h(c,d,["]"],"string");if(y=="{")return b(c,2),h(c,d,["}"],"string");if(y=="<")return b(c,2),h(c,d,[">"],"string");if(/[\^'"!~\/]/.test(y))return b(c,1),h(c,d,[c.eat(y)],"string")}else if(y=="w"){if(y=p(c,1),y=="(")return b(c,2),h(c,d,[")"],"bracket");if(y=="[")return b(c,2),h(c,d,["]"],"bracket");if(y=="{")return b(c,2),h(c,d,["}"],"bracket");if(y=="<")return b(c,2),h(c,d,[">"],"bracket");if(/[\^'"!~\/]/.test(y))return b(c,1),h(c,d,[c.eat(y)],"bracket")}else if(y=="r"){if(y=p(c,1),y=="(")return b(c,2),h(c,d,[")"],s,g);if(y=="[")return b(c,2),h(c,d,["]"],s,g);if(y=="{")return b(c,2),h(c,d,["}"],s,g);if(y=="<")return b(c,2),h(c,d,[">"],s,g);if(/[\^'"!~\/]/.test(y))return b(c,1),h(c,d,[c.eat(y)],s,g)}else if(/[\^'"!~\/(\[{<]/.test(y)){if(y=="(")return b(c,1),h(c,d,[")"],"string");if(y=="[")return b(c,1),h(c,d,["]"],"string");if(y=="{")return b(c,1),h(c,d,["}"],"string");if(y=="<")return b(c,1),h(c,d,[">"],"string");if(/[\^'"!~\/]/.test(y))return h(c,d,[c.eat(y)],"string")}}}if(T=="m"){var y=p(c,-2);if(!(y&&/\w/.test(y))&&(y=c.eat(/[(\[{<\^'"!~\/]/),y)){if(/[\^'"!~\/]/.test(y))return h(c,d,[y],s,g);if(y=="(")return h(c,d,[")"],s,g);if(y=="[")return h(c,d,["]"],s,g);if(y=="{")return h(c,d,["}"],s,g);if(y=="<")return h(c,d,[">"],s,g)}}if(T=="s"){var y=/[\/>\]})\w]/.test(p(c,-2));if(!y&&(y=c.eat(/[(\[{<\^'"!~\/]/),y))return y=="["?h(c,d,["]","]"],s,g):y=="{"?h(c,d,["}","}"],s,g):y=="<"?h(c,d,[">",">"],s,g):y=="("?h(c,d,[")",")"],s,g):h(c,d,[y,y],s,g)}if(T=="y"){var y=/[\/>\]})\w]/.test(p(c,-2));if(!y&&(y=c.eat(/[(\[{<\^'"!~\/]/),y))return y=="["?h(c,d,["]","]"],s,g):y=="{"?h(c,d,["}","}"],s,g):y=="<"?h(c,d,[">",">"],s,g):y=="("?h(c,d,[")",")"],s,g):h(c,d,[y,y],s,g)}if(T=="t"){var y=/[\/>\]})\w]/.test(p(c,-2));if(!y&&(y=c.eat("r"),y&&(y=c.eat(/[(\[{<\^'"!~\/]/),y)))return y=="["?h(c,d,["]","]"],s,g):y=="{"?h(c,d,["}","}"],s,g):y=="<"?h(c,d,[">",">"],s,g):y=="("?h(c,d,[")",")"],s,g):h(c,d,[y,y],s,g)}if(T=="`")return h(c,d,[T],"variable-2");if(T=="/")return/~\s*$/.test(v(c))?h(c,d,[T],s,g):"operator";if(T=="$"){var E=c.pos;if(c.eatWhile(/\d/)||c.eat("{")&&c.eatWhile(/\d/)&&c.eat("}"))return"variable-2";c.pos=E}if(/[$@%]/.test(T)){var E=c.pos;if(c.eat("^")&&c.eat(/[A-Z]/)||!/[@$%&]/.test(p(c,-2))&&c.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var y=c.current();if(k[y])return"variable-2"}c.pos=E}if(/[$@%&]/.test(T)&&(c.eatWhile(/[\w$]/)||c.eat("{")&&c.eatWhile(/[\w$]/)&&c.eat("}"))){var y=c.current();return k[y]?"variable-2":"variable"}if(T=="#"&&p(c,-2)!="$")return c.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(T)){var E=c.pos;if(c.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),k[c.current()])return"operator";c.pos=E}if(T=="_"&&c.pos==1){if(C(c,6)=="_END__")return h(c,d,["\0"],"comment");if(C(c,7)=="_DATA__")return h(c,d,["\0"],"variable-2");if(C(c,7)=="_C__")return h(c,d,["\0"],"string")}if(/\w/.test(T)){var E=c.pos;if(p(c,-2)=="{"&&(p(c,0)=="}"||c.eatWhile(/\w/)&&p(c,0)=="}"))return"string";c.pos=E}if(/[A-Z]/.test(T)){var R=p(c,-2),E=c.pos;if(c.eatWhile(/[A-Z_]/),/[\da-z]/.test(p(c,0)))c.pos=E;else{var y=k[c.current()];return y?(y[1]&&(y=y[0]),R!=":"?y==1?"keyword":y==2?"def":y==3?"atom":y==4?"operator":y==5?"variable-2":"meta":"meta"):"meta"}}if(/[a-zA-Z_]/.test(T)){var R=p(c,-2);c.eatWhile(/\w/);var y=k[c.current()];return y?(y[1]&&(y=y[0]),R!=":"?y==1?"keyword":y==2?"def":y==3?"atom":y==4?"operator":y==5?"variable-2":"meta":"meta"):"meta"}return null}return{startState:function(){return{tokenize:w,chain:null,style:null,tail:null}},token:function(c,d){return(d.tokenize||w)(c,d)},lineComment:"#"}}),o.registerHelper("wordChars","perl",/[\w$]/),o.defineMIME("text/x-perl","perl");function p(k,s){return k.string.charAt(k.pos+(s||0))}function v(k,s){if(s){var g=k.pos-s;return k.string.substr(g>=0?g:0,s)}else return k.string.substr(0,k.pos-1)}function C(k,s){var g=k.string.length,h=g-k.pos+1;return k.string.substr(k.pos,s&&s=(h=k.string.length-1)?k.pos=h:k.pos=g}})});var Su=Ke((ku,wu)=>{(function(o){typeof ku=="object"&&typeof wu=="object"?o(We(),Qn(),Vo()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],o):o(CodeMirror)})(function(o){"use strict";function p(S){for(var w={},c=S.split(" "),d=0;d\w/,!1)&&(w.tokenize=v([[["->",null]],[[/[\w]+/,"variable"]]],c,d)),"variable-2";for(var T=!1;!S.eol()&&(T||d===!1||!S.match("{$",!1)&&!S.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!T&&S.match(c)){w.tokenize=null,w.tokStack.pop(),w.tokStack.pop();break}T=S.next()=="\\"&&!T}return"string"}var k="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile enum extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally readonly match",s="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",g="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage memory_get_peak_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";o.registerHelper("hintWords","php",[k,s,g].join(" ").split(" ")),o.registerHelper("wordChars","php",/[\w$]/);var h={name:"clike",helperType:"php",keywords:p(k),blockKeywords:p("catch do else elseif for foreach if switch try while finally"),defKeywords:p("class enum function interface namespace trait"),atoms:p(s),builtin:p(g),multiLineStrings:!0,hooks:{$:function(S){return S.eatWhile(/[\w\$_]/),"variable-2"},"<":function(S,w){var c;if(c=S.match(/^<<\s*/)){var d=S.eat(/['"]/);S.eatWhile(/[\w\.]/);var T=S.current().slice(c[0].length+(d?2:1));if(d&&S.eat(d),T)return(w.tokStack||(w.tokStack=[])).push(T,0),w.tokenize=C(T,d!="'"),"string"}return!1},"#":function(S){for(;!S.eol()&&!S.match("?>",!1);)S.next();return"comment"},"/":function(S){if(S.eat("/")){for(;!S.eol()&&!S.match("?>",!1);)S.next();return"comment"}return!1},'"':function(S,w){return(w.tokStack||(w.tokStack=[])).push('"',0),w.tokenize=C('"'),"string"},"{":function(S,w){return w.tokStack&&w.tokStack.length&&w.tokStack[w.tokStack.length-1]++,!1},"}":function(S,w){return w.tokStack&&w.tokStack.length>0&&!--w.tokStack[w.tokStack.length-1]&&(w.tokenize=C(w.tokStack[w.tokStack.length-2])),!1}}};o.defineMode("php",function(S,w){var c=o.getMode(S,w&&w.htmlMode||"text/html"),d=o.getMode(S,h);function T(E,z){var y=z.curMode==d;if(E.sol()&&z.pending&&z.pending!='"'&&z.pending!="'"&&(z.pending=null),y)return y&&z.php.tokenize==null&&E.match("?>")?(z.curMode=c,z.curState=z.html,z.php.context.prev||(z.php=null),"meta"):d.token(E,z.curState);if(E.match(/^<\?\w*/))return z.curMode=d,z.php||(z.php=o.startState(d,c.indent(z.html,"",""))),z.curState=z.php,"meta";if(z.pending=='"'||z.pending=="'"){for(;!E.eol()&&E.next()!=z.pending;);var R="string"}else if(z.pending&&E.pos/.test(M)?z.pending=Z[0]:z.pending={end:E.pos,style:R},E.backUp(M.length-H)),R}return{startState:function(){var E=o.startState(c),z=w.startOpen?o.startState(d):null;return{html:E,php:z,curMode:w.startOpen?d:c,curState:w.startOpen?z:E,pending:null}},copyState:function(E){var z=E.html,y=o.copyState(c,z),R=E.php,M=R&&o.copyState(d,R),H;return E.curMode==c?H=y:H=M,{html:y,php:M,curMode:E.curMode,curState:H,pending:E.pending}},token:T,indent:function(E,z,y){return E.curMode!=d&&/^\s*<\//.test(z)||E.curMode==d&&/^\?>/.test(z)?c.indent(E.html,z,y):E.curMode.indent(E.curState,z,y)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(E){return{state:E.curState,mode:E.curMode}}}},"htmlmixed","clike"),o.defineMIME("application/x-httpd-php","php"),o.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),o.defineMIME("text/x-php",h)})});var Cu=Ke((Tu,Lu)=>{(function(o){typeof Tu=="object"&&typeof Lu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(s){return new RegExp("^(("+s.join(")|(")+"))\\b","i")}var v=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],C=p(v);o.registerHelper("hintWords","protobuf",v);var b=new RegExp("^[_A-Za-z\xA1-\uFFFF][_A-Za-z0-9\xA1-\uFFFF]*");function k(s){return s.eatSpace()?null:s.match("//")?(s.skipToEnd(),"comment"):s.match(/^[0-9\.+-]/,!1)&&(s.match(/^[+-]?0x[0-9a-fA-F]+/)||s.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||s.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":s.match(/^"([^"]|(""))*"/)||s.match(/^'([^']|(''))*'/)?"string":s.match(C)?"keyword":s.match(b)?"variable":(s.next(),null)}o.defineMode("protobuf",function(){return{token:k,fold:"brace"}}),o.defineMIME("text/x-protobuf","protobuf")})});var Mu=Ke((Eu,zu)=>{(function(o){typeof Eu=="object"&&typeof zu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(g){return new RegExp("^(("+g.join(")|(")+"))\\b")}var v=p(["and","or","not","is"]),C=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],b=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];o.registerHelper("hintWords","python",C.concat(b).concat(["exec","print"]));function k(g){return g.scopes[g.scopes.length-1]}o.defineMode("python",function(g,h){for(var S="error",w=h.delimiters||h.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,c=[h.singleOperators,h.doubleOperators,h.doubleDelimiters,h.tripleDelimiters,h.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],d=0;dB?D(X):le0&&j(K,X)&&(xe+=" "+S),xe}}return re(K,X)}function re(K,X,I){if(K.eatSpace())return null;if(!I&&K.match(/^#.*/))return"comment";if(K.match(/^[0-9\.]/,!1)){var B=!1;if(K.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(B=!0),K.match(/^[\d_]+\.\d*/)&&(B=!0),K.match(/^\.\d+/)&&(B=!0),B)return K.eat(/J/i),"number";var le=!1;if(K.match(/^0x[0-9a-f_]+/i)&&(le=!0),K.match(/^0b[01_]+/i)&&(le=!0),K.match(/^0o[0-7_]+/i)&&(le=!0),K.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(K.eat(/J/i),le=!0),K.match(/^0(?![\dx])/i)&&(le=!0),le)return K.eat(/L/i),"number"}if(K.match(M)){var xe=K.current().toLowerCase().indexOf("f")!==-1;return xe?(X.tokenize=N(K.current(),X.tokenize),X.tokenize(K,X)):(X.tokenize=F(K.current(),X.tokenize),X.tokenize(K,X))}for(var q=0;q=0;)K=K.substr(1);var I=K.length==1,B="string";function le(q){return function(L,de){var ze=re(L,de,!0);return ze=="punctuation"&&(L.current()=="{"?de.tokenize=le(q+1):L.current()=="}"&&(q>1?de.tokenize=le(q-1):de.tokenize=xe)),ze}}function xe(q,L){for(;!q.eol();)if(q.eatWhile(/[^'"\{\}\\]/),q.eat("\\")){if(q.next(),I&&q.eol())return B}else{if(q.match(K))return L.tokenize=X,B;if(q.match("{{"))return B;if(q.match("{",!1))return L.tokenize=le(0),q.current()?B:L.tokenize(q,L);if(q.match("}}"))return B;if(q.match("}"))return S;q.eat(/['"]/)}if(I){if(h.singleLineStringErrors)return S;L.tokenize=X}return B}return xe.isString=!0,xe}function F(K,X){for(;"rubf".indexOf(K.charAt(0).toLowerCase())>=0;)K=K.substr(1);var I=K.length==1,B="string";function le(xe,q){for(;!xe.eol();)if(xe.eatWhile(/[^'"\\]/),xe.eat("\\")){if(xe.next(),I&&xe.eol())return B}else{if(xe.match(K))return q.tokenize=X,B;xe.eat(/['"]/)}if(I){if(h.singleLineStringErrors)return S;q.tokenize=X}return B}return le.isString=!0,le}function D(K){for(;k(K).type!="py";)K.scopes.pop();K.scopes.push({offset:k(K).offset+g.indentUnit,type:"py",align:null})}function Q(K,X,I){var B=K.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:K.column()+1;X.scopes.push({offset:X.indent+T,type:I,align:B})}function j(K,X){for(var I=K.indentation();X.scopes.length>1&&k(X).offset>I;){if(k(X).type!="py")return!0;X.scopes.pop()}return k(X).offset!=I}function V(K,X){K.sol()&&(X.beginningOfLine=!0,X.dedent=!1);var I=X.tokenize(K,X),B=K.current();if(X.beginningOfLine&&B=="@")return K.match(R,!1)?"meta":y?"operator":S;if(/\S/.test(B)&&(X.beginningOfLine=!1),(I=="variable"||I=="builtin")&&X.lastToken=="meta"&&(I="meta"),(B=="pass"||B=="return")&&(X.dedent=!0),B=="lambda"&&(X.lambda=!0),B==":"&&!X.lambda&&k(X).type=="py"&&K.match(/^\s*(?:#|$)/,!1)&&D(X),B.length==1&&!/string|comment/.test(I)){var le="[({".indexOf(B);if(le!=-1&&Q(K,X,"])}".slice(le,le+1)),le="])}".indexOf(B),le!=-1)if(k(X).type==B)X.indent=X.scopes.pop().offset-T;else return S}return X.dedent&&K.eol()&&k(X).type=="py"&&X.scopes.length>1&&X.scopes.pop(),I}var x={startState:function(K){return{tokenize:ee,scopes:[{offset:K||0,type:"py",align:null}],indent:K||0,lastToken:null,lambda:!1,dedent:0}},token:function(K,X){var I=X.errorToken;I&&(X.errorToken=!1);var B=V(K,X);return B&&B!="comment"&&(X.lastToken=B=="keyword"||B=="punctuation"?K.current():B),B=="punctuation"&&(B=null),K.eol()&&X.lambda&&(X.lambda=!1),I?B+" "+S:B},indent:function(K,X){if(K.tokenize!=ee)return K.tokenize.isString?o.Pass:0;var I=k(K),B=I.type==X.charAt(0)||I.type=="py"&&!K.dedent&&/^(else:|elif |except |finally:)/.test(X);return I.align!=null?I.align-(B?1:0):I.offset-(B?T:0)},electricInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,closeBrackets:{triples:`'"`},lineComment:"#",fold:"indent"};return x}),o.defineMIME("text/x-python","python");var s=function(g){return g.split(" ")};o.defineMIME("text/x-cython",{name:"python",extra_keywords:s("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")})})});var qu=Ke((Au,Du)=>{(function(o){typeof Au=="object"&&typeof Du=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(h){for(var S={},w=0,c=h.length;w]/)?(M.eat(/[\<\>]/),"atom"):M.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":M.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(M.eatWhile(/[\w$\xa1-\uffff]/),M.eat(/[\?\!\=]/),"atom"):"operator";if(Z=="@"&&M.match(/^@?[a-zA-Z_\xa1-\uffff]/))return M.eat("@"),M.eatWhile(/[\w\xa1-\uffff]/),"variable-2";if(Z=="$")return M.eat(/[a-zA-Z_]/)?M.eatWhile(/[\w]/):M.eat(/\d/)?M.eat(/\d/):M.next(),"variable-3";if(/[a-zA-Z_\xa1-\uffff]/.test(Z))return M.eatWhile(/[\w\xa1-\uffff]/),M.eat(/[\?\!]/),M.eat(":")?"atom":"ident";if(Z=="|"&&(H.varList||H.lastTok=="{"||H.lastTok=="do"))return S="|",null;if(/[\(\)\[\]{}\\;]/.test(Z))return S=Z,null;if(Z=="-"&&M.eat(">"))return"arrow";if(/[=+\-\/*:\.^%<>~|]/.test(Z)){var D=M.eatWhile(/[=+\-\/*:\.^%<>~|]/);return Z=="."&&!D&&(S="."),"operator"}else return null}}}function d(M){for(var H=M.pos,Z=0,ee,re=!1,N=!1;(ee=M.next())!=null;)if(N)N=!1;else{if("[{(".indexOf(ee)>-1)Z++;else if("]})".indexOf(ee)>-1){if(Z--,Z<0)break}else if(ee=="/"&&Z==0){re=!0;break}N=ee=="\\"}return M.backUp(M.pos-H),re}function T(M){return M||(M=1),function(H,Z){if(H.peek()=="}"){if(M==1)return Z.tokenize.pop(),Z.tokenize[Z.tokenize.length-1](H,Z);Z.tokenize[Z.tokenize.length-1]=T(M-1)}else H.peek()=="{"&&(Z.tokenize[Z.tokenize.length-1]=T(M+1));return c(H,Z)}}function E(){var M=!1;return function(H,Z){return M?(Z.tokenize.pop(),Z.tokenize[Z.tokenize.length-1](H,Z)):(M=!0,c(H,Z))}}function z(M,H,Z,ee){return function(re,N){var F=!1,D;for(N.context.type==="read-quoted-paused"&&(N.context=N.context.prev,re.eat("}"));(D=re.next())!=null;){if(D==M&&(ee||!F)){N.tokenize.pop();break}if(Z&&D=="#"&&!F){if(re.eat("{")){M=="}"&&(N.context={prev:N.context,type:"read-quoted-paused"}),N.tokenize.push(T());break}else if(/[@\$]/.test(re.peek())){N.tokenize.push(E());break}}F=!F&&D=="\\"}return H}}function y(M,H){return function(Z,ee){return H&&Z.eatSpace(),Z.match(M)?ee.tokenize.pop():Z.skipToEnd(),"string"}}function R(M,H){return M.sol()&&M.match("=end")&&M.eol()&&H.tokenize.pop(),M.skipToEnd(),"comment"}return{startState:function(){return{tokenize:[c],indented:0,context:{type:"top",indented:-h.indentUnit},continuedLine:!1,lastTok:null,varList:!1}},token:function(M,H){S=null,M.sol()&&(H.indented=M.indentation());var Z=H.tokenize[H.tokenize.length-1](M,H),ee,re=S;if(Z=="ident"){var N=M.current();Z=H.lastTok=="."?"property":C.propertyIsEnumerable(M.current())?"keyword":/^[A-Z]/.test(N)?"tag":H.lastTok=="def"||H.lastTok=="class"||H.varList?"def":"variable",Z=="keyword"&&(re=N,b.propertyIsEnumerable(N)?ee="indent":k.propertyIsEnumerable(N)?ee="dedent":((N=="if"||N=="unless")&&M.column()==M.indentation()||N=="do"&&H.context.indented{(function(o){typeof Iu=="object"&&typeof Fu=="object"?o(We(),Di()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],o):o(CodeMirror)})(function(o){"use strict";o.defineSimpleMode("rust",{start:[{regex:/b?"/,token:"string",next:"string"},{regex:/b?r"/,token:"string",next:"string_raw"},{regex:/b?r#+"/,token:"string",next:"string_raw_hash"},{regex:/'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/,token:"string-2"},{regex:/b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/,token:"string-2"},{regex:/(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,token:"number"},{regex:/(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,token:"keyword"},{regex:/\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/,token:"atom"},{regex:/\b(?:true|false|Some|None|Ok|Err)\b/,token:"builtin"},{regex:/\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/#!?\[.*\]/,token:"meta"},{regex:/\/\/.*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"variable-3"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],meta:{dontIndentStates:["comment"],electricInput:/^\s*\}$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}}),o.defineMIME("text/x-rustsrc","rust"),o.defineMIME("text/rust","rust")})});var ea=Ke((Ou,Pu)=>{(function(o){typeof Ou=="object"&&typeof Pu=="object"?o(We(),gn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../css/css"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("sass",function(p){var v=o.mimeModes["text/css"],C=v.propertyKeywords||{},b=v.colorKeywords||{},k=v.valueKeywords||{},s=v.fontProperties||{};function g(N){return new RegExp("^"+N.join("|"))}var h=["true","false","null","auto"],S=new RegExp("^"+h.join("|")),w=["\\(","\\)","=",">","<","==",">=","<=","\\+","-","\\!=","/","\\*","%","and","or","not",";","\\{","\\}",":"],c=g(w),d=/^::?[a-zA-Z_][\w\-]*/,T;function E(N){return!N.peek()||N.match(/\s+$/,!1)}function z(N,F){var D=N.peek();return D===")"?(N.next(),F.tokenizer=ee,"operator"):D==="("?(N.next(),N.eatSpace(),"operator"):D==="'"||D==='"'?(F.tokenizer=R(N.next()),"string"):(F.tokenizer=R(")",!1),"string")}function y(N,F){return function(D,Q){return D.sol()&&D.indentation()<=N?(Q.tokenizer=ee,ee(D,Q)):(F&&D.skipTo("*/")?(D.next(),D.next(),Q.tokenizer=ee):D.skipToEnd(),"comment")}}function R(N,F){F==null&&(F=!0);function D(Q,j){var V=Q.next(),x=Q.peek(),K=Q.string.charAt(Q.pos-2),X=V!=="\\"&&x===N||V===N&&K!=="\\";return X?(V!==N&&F&&Q.next(),E(Q)&&(j.cursorHalf=0),j.tokenizer=ee,"string"):V==="#"&&x==="{"?(j.tokenizer=M(D),Q.next(),"operator"):"string"}return D}function M(N){return function(F,D){return F.peek()==="}"?(F.next(),D.tokenizer=N,"operator"):ee(F,D)}}function H(N){if(N.indentCount==0){N.indentCount++;var F=N.scopes[0].offset,D=F+p.indentUnit;N.scopes.unshift({offset:D})}}function Z(N){N.scopes.length!=1&&N.scopes.shift()}function ee(N,F){var D=N.peek();if(N.match("/*"))return F.tokenizer=y(N.indentation(),!0),F.tokenizer(N,F);if(N.match("//"))return F.tokenizer=y(N.indentation(),!1),F.tokenizer(N,F);if(N.match("#{"))return F.tokenizer=M(ee),"operator";if(D==='"'||D==="'")return N.next(),F.tokenizer=R(D),"string";if(F.cursorHalf){if(D==="#"&&(N.next(),N.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/))||N.match(/^-?[0-9\.]+/))return E(N)&&(F.cursorHalf=0),"number";if(N.match(/^(px|em|in)\b/))return E(N)&&(F.cursorHalf=0),"unit";if(N.match(S))return E(N)&&(F.cursorHalf=0),"keyword";if(N.match(/^url/)&&N.peek()==="(")return F.tokenizer=z,E(N)&&(F.cursorHalf=0),"atom";if(D==="$")return N.next(),N.eatWhile(/[\w-]/),E(N)&&(F.cursorHalf=0),"variable-2";if(D==="!")return N.next(),F.cursorHalf=0,N.match(/^[\w]+/)?"keyword":"operator";if(N.match(c))return E(N)&&(F.cursorHalf=0),"operator";if(N.eatWhile(/[\w-]/))return E(N)&&(F.cursorHalf=0),T=N.current().toLowerCase(),k.hasOwnProperty(T)?"atom":b.hasOwnProperty(T)?"keyword":C.hasOwnProperty(T)?(F.prevProp=N.current().toLowerCase(),"property"):"tag";if(E(N))return F.cursorHalf=0,null}else{if(D==="-"&&N.match(/^-\w+-/))return"meta";if(D==="."){if(N.next(),N.match(/^[\w-]+/))return H(F),"qualifier";if(N.peek()==="#")return H(F),"tag"}if(D==="#"){if(N.next(),N.match(/^[\w-]+/))return H(F),"builtin";if(N.peek()==="#")return H(F),"tag"}if(D==="$")return N.next(),N.eatWhile(/[\w-]/),"variable-2";if(N.match(/^-?[0-9\.]+/))return"number";if(N.match(/^(px|em|in)\b/))return"unit";if(N.match(S))return"keyword";if(N.match(/^url/)&&N.peek()==="(")return F.tokenizer=z,"atom";if(D==="="&&N.match(/^=[\w-]+/))return H(F),"meta";if(D==="+"&&N.match(/^\+[\w-]+/))return"variable-3";if(D==="@"&&N.match("@extend")&&(N.match(/\s*[\w]/)||Z(F)),N.match(/^@(else if|if|media|else|for|each|while|mixin|function)/))return H(F),"def";if(D==="@")return N.next(),N.eatWhile(/[\w-]/),"def";if(N.eatWhile(/[\w-]/))if(N.match(/ *: *[\w-\+\$#!\("']/,!1)){T=N.current().toLowerCase();var Q=F.prevProp+"-"+T;return C.hasOwnProperty(Q)?"property":C.hasOwnProperty(T)?(F.prevProp=T,"property"):s.hasOwnProperty(T)?"property":"tag"}else return N.match(/ *:/,!1)?(H(F),F.cursorHalf=1,F.prevProp=N.current().toLowerCase(),"property"):(N.match(/ *,/,!1)||H(F),"tag");if(D===":")return N.match(d)?"variable-3":(N.next(),F.cursorHalf=1,"operator")}return N.match(c)?"operator":(N.next(),null)}function re(N,F){N.sol()&&(F.indentCount=0);var D=F.tokenizer(N,F),Q=N.current();if((Q==="@return"||Q==="}")&&Z(F),D!==null){for(var j=N.pos-Q.length,V=j+p.indentUnit*F.indentCount,x=[],K=0;K{(function(o){typeof ju=="object"&&typeof Ru=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("shell",function(){var p={};function v(d,T){for(var E=0;E1&&d.eat("$");var E=d.next();return/['"({]/.test(E)?(T.tokens[0]=g(E,E=="("?"quote":E=="{"?"def":"string"),c(d,T)):(/\d/.test(E)||d.eatWhile(/\w/),T.tokens.shift(),"def")};function w(d){return function(T,E){return T.sol()&&T.string==d&&E.tokens.shift(),T.skipToEnd(),"string-2"}}function c(d,T){return(T.tokens[0]||s)(d,T)}return{startState:function(){return{tokens:[]}},token:function(d,T){return c(d,T)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}}),o.defineMIME("text/x-sh","shell"),o.defineMIME("application/x-sh","shell")})});var Uu=Ke((Bu,Wu)=>{(function(o){typeof Bu=="object"&&typeof Wu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("sql",function(h,S){var w=S.client||{},c=S.atoms||{false:!0,true:!0,null:!0},d=S.builtin||s(g),T=S.keywords||s(k),E=S.operatorChars||/^[*+\-%<>!=&|~^\/]/,z=S.support||{},y=S.hooks||{},R=S.dateSQL||{date:!0,time:!0,timestamp:!0},M=S.backslashStringEscapes!==!1,H=S.brackets||/^[\{}\(\)\[\]]/,Z=S.punctuation||/^[;.,:]/;function ee(Q,j){var V=Q.next();if(y[V]){var x=y[V](Q,j);if(x!==!1)return x}if(z.hexNumber&&(V=="0"&&Q.match(/^[xX][0-9a-fA-F]+/)||(V=="x"||V=="X")&&Q.match(/^'[0-9a-fA-F]*'/)))return"number";if(z.binaryNumber&&((V=="b"||V=="B")&&Q.match(/^'[01]*'/)||V=="0"&&Q.match(/^b[01]+/)))return"number";if(V.charCodeAt(0)>47&&V.charCodeAt(0)<58)return Q.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),z.decimallessFloat&&Q.match(/^\.(?!\.)/),"number";if(V=="?"&&(Q.eatSpace()||Q.eol()||Q.eat(";")))return"variable-3";if(V=="'"||V=='"'&&z.doubleQuote)return j.tokenize=re(V),j.tokenize(Q,j);if((z.nCharCast&&(V=="n"||V=="N")||z.charsetCast&&V=="_"&&Q.match(/[a-z][a-z0-9]*/i))&&(Q.peek()=="'"||Q.peek()=='"'))return"keyword";if(z.escapeConstant&&(V=="e"||V=="E")&&(Q.peek()=="'"||Q.peek()=='"'&&z.doubleQuote))return j.tokenize=function(X,I){return(I.tokenize=re(X.next(),!0))(X,I)},"keyword";if(z.commentSlashSlash&&V=="/"&&Q.eat("/"))return Q.skipToEnd(),"comment";if(z.commentHash&&V=="#"||V=="-"&&Q.eat("-")&&(!z.commentSpaceRequired||Q.eat(" ")))return Q.skipToEnd(),"comment";if(V=="/"&&Q.eat("*"))return j.tokenize=N(1),j.tokenize(Q,j);if(V=="."){if(z.zerolessFloat&&Q.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(Q.match(/^\.+/))return null;if(Q.match(/^[\w\d_$#]+/))return"variable-2"}else{if(E.test(V))return Q.eatWhile(E),"operator";if(H.test(V))return"bracket";if(Z.test(V))return Q.eatWhile(Z),"punctuation";if(V=="{"&&(Q.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||Q.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";Q.eatWhile(/^[_\w\d]/);var K=Q.current().toLowerCase();return R.hasOwnProperty(K)&&(Q.match(/^( )+'[^']*'/)||Q.match(/^( )+"[^"]*"/))?"number":c.hasOwnProperty(K)?"atom":d.hasOwnProperty(K)?"type":T.hasOwnProperty(K)?"keyword":w.hasOwnProperty(K)?"builtin":null}}function re(Q,j){return function(V,x){for(var K=!1,X;(X=V.next())!=null;){if(X==Q&&!K){x.tokenize=ee;break}K=(M||j)&&!K&&X=="\\"}return"string"}}function N(Q){return function(j,V){var x=j.match(/^.*?(\/\*|\*\/)/);return x?x[1]=="/*"?V.tokenize=N(Q+1):Q>1?V.tokenize=N(Q-1):V.tokenize=ee:j.skipToEnd(),"comment"}}function F(Q,j,V){j.context={prev:j.context,indent:Q.indentation(),col:Q.column(),type:V}}function D(Q){Q.indent=Q.context.indent,Q.context=Q.context.prev}return{startState:function(){return{tokenize:ee,context:null}},token:function(Q,j){if(Q.sol()&&j.context&&j.context.align==null&&(j.context.align=!1),j.tokenize==ee&&Q.eatSpace())return null;var V=j.tokenize(Q,j);if(V=="comment")return V;j.context&&j.context.align==null&&(j.context.align=!0);var x=Q.current();return x=="("?F(Q,j,")"):x=="["?F(Q,j,"]"):j.context&&j.context.type==x&&D(j),V},indent:function(Q,j){var V=Q.context;if(!V)return o.Pass;var x=j.charAt(0)==V.type;return V.align?V.col+(x?0:1):V.indent+(x?0:h.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:z.commentSlashSlash?"//":z.commentHash?"#":"--",closeBrackets:"()[]{}''\"\"``",config:S}});function p(h){for(var S;(S=h.next())!=null;)if(S=="`"&&!h.eat("`"))return"variable-2";return h.backUp(h.current().length-1),h.eatWhile(/\w/)?"variable-2":null}function v(h){for(var S;(S=h.next())!=null;)if(S=='"'&&!h.eat('"'))return"variable-2";return h.backUp(h.current().length-1),h.eatWhile(/\w/)?"variable-2":null}function C(h){return h.eat("@")&&(h.match("session."),h.match("local."),h.match("global.")),h.eat("'")?(h.match(/^.*'/),"variable-2"):h.eat('"')?(h.match(/^.*"/),"variable-2"):h.eat("`")?(h.match(/^.*`/),"variable-2"):h.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function b(h){return h.eat("N")?"atom":h.match(/^[a-zA-Z.#!?]/)?"variable-2":null}var k="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function s(h){for(var S={},w=h.split(" "),c=0;c!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:s("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":C}}),o.defineMIME("text/x-mysql",{name:"sql",client:s("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:s(k+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:s("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":C,"`":p,"\\":b}}),o.defineMIME("text/x-mariadb",{name:"sql",client:s("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:s(k+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:s("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":C,"`":p,"\\":b}}),o.defineMIME("text/x-sqlite",{name:"sql",client:s("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:s(k+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:s("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:s("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:s("date time timestamp datetime"),support:s("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":C,":":C,"?":C,$:C,'"':v,"`":p}}),o.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:s("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:s("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:s("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:s("commentSlashSlash decimallessFloat"),hooks:{}}),o.defineMIME("text/x-plsql",{name:"sql",client:s("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:s("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:s("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:s("date time timestamp"),support:s("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),o.defineMIME("text/x-hive",{name:"sql",keywords:s("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:s("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:s("date timestamp"),support:s("doubleQuote binaryNumber hexNumber")}),o.defineMIME("text/x-pgsql",{name:"sql",client:s("source"),keywords:s(k+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:s("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time zone timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:s("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),o.defineMIME("text/x-gql",{name:"sql",keywords:s("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:s("false true"),builtin:s("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),o.defineMIME("text/x-gpsql",{name:"sql",client:s("source"),keywords:s("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:s("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),o.defineMIME("text/x-sparksql",{name:"sql",keywords:s("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:s("abs acos acosh add_months aggregate and any approx_count_distinct approx_percentile array array_contains array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_repeat array_sort array_union arrays_overlap arrays_zip ascii asin asinh assert_true atan atan2 atanh avg base64 between bigint bin binary bit_and bit_count bit_get bit_length bit_or bit_xor bool_and bool_or boolean bround btrim cardinality case cast cbrt ceil ceiling char char_length character_length chr coalesce collect_list collect_set concat concat_ws conv corr cos cosh cot count count_if count_min_sketch covar_pop covar_samp crc32 cume_dist current_catalog current_database current_date current_timestamp current_timezone current_user date date_add date_format date_from_unix_date date_part date_sub date_trunc datediff day dayofmonth dayofweek dayofyear decimal decode degrees delimited dense_rank div double e element_at elt encode every exists exp explode explode_outer expm1 extract factorial filter find_in_set first first_value flatten float floor forall format_number format_string from_csv from_json from_unixtime from_utc_timestamp get_json_object getbit greatest grouping grouping_id hash hex hour hypot if ifnull in initcap inline inline_outer input_file_block_length input_file_block_start input_file_name inputformat instr int isnan isnotnull isnull java_method json_array_length json_object_keys json_tuple kurtosis lag last last_day last_value lcase lead least left length levenshtein like ln locate log log10 log1p log2 lower lpad ltrim make_date make_dt_interval make_interval make_timestamp make_ym_interval map map_concat map_entries map_filter map_from_arrays map_from_entries map_keys map_values map_zip_with max max_by md5 mean min min_by minute mod monotonically_increasing_id month months_between named_struct nanvl negative next_day not now nth_value ntile nullif nvl nvl2 octet_length or outputformat overlay parse_url percent_rank percentile percentile_approx pi pmod posexplode posexplode_outer position positive pow power printf quarter radians raise_error rand randn random rank rcfile reflect regexp regexp_extract regexp_extract_all regexp_like regexp_replace repeat replace reverse right rint rlike round row_number rpad rtrim schema_of_csv schema_of_json second sentences sequence sequencefile serde session_window sha sha1 sha2 shiftleft shiftright shiftrightunsigned shuffle sign signum sin sinh size skewness slice smallint some sort_array soundex space spark_partition_id split sqrt stack std stddev stddev_pop stddev_samp str_to_map string struct substr substring substring_index sum tan tanh textfile timestamp timestamp_micros timestamp_millis timestamp_seconds tinyint to_csv to_date to_json to_timestamp to_unix_timestamp to_utc_timestamp transform transform_keys transform_values translate trim trunc try_add try_divide typeof ucase unbase64 unhex uniontype unix_date unix_micros unix_millis unix_seconds unix_timestamp upper uuid var_pop var_samp variance version weekday weekofyear when width_bucket window xpath xpath_boolean xpath_double xpath_float xpath_int xpath_long xpath_number xpath_short xpath_string xxhash64 year zip_with"),atoms:s("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:s("date time timestamp"),support:s("doubleQuote zerolessFloat")}),o.defineMIME("text/x-esper",{name:"sql",client:s("source"),keywords:s("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:s("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:s("time"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber")}),o.defineMIME("text/x-trino",{name:"sql",keywords:s("abs absent acos add admin after all all_match alter analyze and any any_match approx_distinct approx_most_frequent approx_percentile approx_set arbitrary array_agg array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_sort array_union arrays_overlap as asc asin at at_timezone atan atan2 authorization avg bar bernoulli beta_cdf between bing_tile bing_tile_at bing_tile_coordinates bing_tile_polygon bing_tile_quadkey bing_tile_zoom_level bing_tiles_around bit_count bitwise_and bitwise_and_agg bitwise_left_shift bitwise_not bitwise_or bitwise_or_agg bitwise_right_shift bitwise_right_shift_arithmetic bitwise_xor bool_and bool_or both by call cardinality cascade case cast catalogs cbrt ceil ceiling char2hexint checksum chr classify coalesce codepoint column columns combinations comment commit committed concat concat_ws conditional constraint contains contains_sequence convex_hull_agg copartition corr cos cosh cosine_similarity count count_if covar_pop covar_samp crc32 create cross cube cume_dist current current_catalog current_date current_groups current_path current_role current_schema current_time current_timestamp current_timezone current_user data date_add date_diff date_format date_parse date_trunc day day_of_month day_of_week day_of_year deallocate default define definer degrees delete dense_rank deny desc describe descriptor distinct distributed dow doy drop e element_at else empty empty_approx_set encoding end error escape evaluate_classifier_predictions every except excluding execute exists exp explain extract false features fetch filter final first first_value flatten floor following for format format_datetime format_number from from_base from_base32 from_base64 from_base64url from_big_endian_32 from_big_endian_64 from_encoded_polyline from_geojson_geometry from_hex from_ieee754_32 from_ieee754_64 from_iso8601_date from_iso8601_timestamp from_iso8601_timestamp_nanos from_unixtime from_unixtime_nanos from_utf8 full functions geometric_mean geometry_from_hadoop_shape geometry_invalid_reason geometry_nearest_points geometry_to_bing_tiles geometry_union geometry_union_agg grant granted grants graphviz great_circle_distance greatest group grouping groups hamming_distance hash_counts having histogram hmac_md5 hmac_sha1 hmac_sha256 hmac_sha512 hour human_readable_seconds if ignore in including index infinity initial inner input insert intersect intersection_cardinality into inverse_beta_cdf inverse_normal_cdf invoker io is is_finite is_infinite is_json_scalar is_nan isolation jaccard_index join json_array json_array_contains json_array_get json_array_length json_exists json_extract json_extract_scalar json_format json_object json_parse json_query json_size json_value keep key keys kurtosis lag last last_day_of_month last_value lateral lead leading learn_classifier learn_libsvm_classifier learn_libsvm_regressor learn_regressor least left length level levenshtein_distance like limit line_interpolate_point line_interpolate_points line_locate_point listagg ln local localtime localtimestamp log log10 log2 logical lower lpad ltrim luhn_check make_set_digest map_agg map_concat map_entries map_filter map_from_entries map_keys map_union map_values map_zip_with match match_recognize matched matches materialized max max_by md5 measures merge merge_set_digest millisecond min min_by minute mod month multimap_agg multimap_from_entries murmur3 nan natural next nfc nfd nfkc nfkd ngrams no none none_match normal_cdf normalize not now nth_value ntile null nullif nulls numeric_histogram object objectid_timestamp of offset omit on one only option or order ordinality outer output over overflow parse_data_size parse_datetime parse_duration partition partitions passing past path pattern per percent_rank permute pi position pow power preceding prepare privileges properties prune qdigest_agg quarter quotes radians rand random range rank read recursive reduce reduce_agg refresh regexp_count regexp_extract regexp_extract_all regexp_like regexp_position regexp_replace regexp_split regr_intercept regr_slope regress rename render repeat repeatable replace reset respect restrict returning reverse revoke rgb right role roles rollback rollup round row_number rows rpad rtrim running scalar schema schemas second security seek select sequence serializable session set sets sha1 sha256 sha512 show shuffle sign simplify_geometry sin skewness skip slice some soundex spatial_partitioning spatial_partitions split split_part split_to_map split_to_multimap spooky_hash_v2_32 spooky_hash_v2_64 sqrt st_area st_asbinary st_astext st_boundary st_buffer st_centroid st_contains st_convexhull st_coorddim st_crosses st_difference st_dimension st_disjoint st_distance st_endpoint st_envelope st_envelopeaspts st_equals st_exteriorring st_geometries st_geometryfromtext st_geometryn st_geometrytype st_geomfrombinary st_interiorringn st_interiorrings st_intersection st_intersects st_isclosed st_isempty st_isring st_issimple st_isvalid st_length st_linefromtext st_linestring st_multipoint st_numgeometries st_numinteriorring st_numpoints st_overlaps st_point st_pointn st_points st_polygon st_relate st_startpoint st_symdifference st_touches st_union st_within st_x st_xmax st_xmin st_y st_ymax st_ymin start starts_with stats stddev stddev_pop stddev_samp string strpos subset substr substring sum system table tables tablesample tan tanh tdigest_agg text then ties timestamp_objectid timezone_hour timezone_minute to to_base to_base32 to_base64 to_base64url to_big_endian_32 to_big_endian_64 to_char to_date to_encoded_polyline to_geojson_geometry to_geometry to_hex to_ieee754_32 to_ieee754_64 to_iso8601 to_milliseconds to_spherical_geography to_timestamp to_unixtime to_utf8 trailing transaction transform transform_keys transform_values translate trim trim_array true truncate try try_cast type typeof uescape unbounded uncommitted unconditional union unique unknown unmatched unnest update upper url_decode url_encode url_extract_fragment url_extract_host url_extract_parameter url_extract_path url_extract_port url_extract_protocol url_extract_query use user using utf16 utf32 utf8 validate value value_at_quantile values values_at_quantiles var_pop var_samp variance verbose version view week week_of_year when where width_bucket wilson_interval_lower wilson_interval_upper window with with_timezone within without word_stem work wrapper write xxhash64 year year_of_week yow zip zip_with"),builtin:s("array bigint bingtile boolean char codepoints color date decimal double function geometry hyperloglog int integer interval ipaddress joniregexp json json2016 jsonpath kdbtree likepattern map model objectid p4hyperloglog precision qdigest re2jregexp real regressor row setdigest smallint sphericalgeography tdigest time timestamp tinyint uuid varbinary varchar zone"),atoms:s("false true null unknown"),operatorChars:/^[[\]|<>=!\-+*/%]/,dateSQL:s("date time timestamp zone"),support:s("decimallessFloat zerolessFloat hexNumber")})})});var ta=Ke(($u,Ku)=>{(function(o){typeof $u=="object"&&typeof Ku=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("stylus",function(M){for(var H=M.indentUnit,Z="",ee=y(p),re=/^(a|b|i|s|col|em)$/i,N=y(k),F=y(s),D=y(S),Q=y(h),j=y(v),V=z(v),x=y(b),K=y(C),X=y(g),I=/^\s*([.]{2,3}|&&|\|\||\*\*|[?!=:]?=|[-+*\/%<>]=?|\?:|\~)/,B=z(w),le=y(c),xe=new RegExp(/^\-(moz|ms|o|webkit)-/i),q=y(d),L="",de={},ze,pe,Ee,ge;Z.length|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),W.context.line.firstWord=L?L[0].replace(/^\s*/,""):"",W.context.line.indent=$.indentation(),ze=$.peek(),$.match("//"))return $.skipToEnd(),["comment","comment"];if($.match("/*"))return W.tokenize=qe,qe($,W);if(ze=='"'||ze=="'")return $.next(),W.tokenize=Se(ze),W.tokenize($,W);if(ze=="@")return $.next(),$.eatWhile(/[\w\\-]/),["def",$.current()];if(ze=="#"){if($.next(),$.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if($.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return $.match(xe)?["meta","vendor-prefixes"]:$.match(/^-?[0-9]?\.?[0-9]/)?($.eatWhile(/[a-z%]/i),["number","unit"]):ze=="!"?($.next(),[$.match(/^(important|optional)/i)?"keyword":"operator","important"]):ze=="."&&$.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:$.match(V)?($.peek()=="("&&(W.tokenize=je),["property","word"]):$.match(/^[a-z][\w-]*\(/i)?($.backUp(1),["keyword","mixin"]):$.match(/^(\+|-)[a-z][\w-]*\(/i)?($.backUp(1),["keyword","block-mixin"]):$.string.match(/^\s*&/)&&$.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:$.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?($.backUp(1),["variable-3","reference"]):$.match(/^&{1}\s*$/)?["variable-3","reference"]:$.match(B)?["operator","operator"]:$.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?$.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!U($.current())?($.match("."),["variable-2","variable-name"]):["variable-2","word"]:$.match(I)?["operator",$.current()]:/[:;,{}\[\]\(\)]/.test(ze)?($.next(),[null,ze]):($.next(),[null,null])}function qe($,W){for(var se=!1,De;(De=$.next())!=null;){if(se&&De=="/"){W.tokenize=null;break}se=De=="*"}return["comment","comment"]}function Se($){return function(W,se){for(var De=!1,nt;(nt=W.next())!=null;){if(nt==$&&!De){$==")"&&W.backUp(1);break}De=!De&&nt=="\\"}return(nt==$||!De&&$!=")")&&(se.tokenize=null),["string","string"]}}function je($,W){return $.next(),$.match(/\s*[\"\')]/,!1)?W.tokenize=null:W.tokenize=Se(")"),[null,"("]}function Ze($,W,se,De){this.type=$,this.indent=W,this.prev=se,this.line=De||{firstWord:"",indent:0}}function ke($,W,se,De){return De=De>=0?De:H,$.context=new Ze(se,W.indentation()+De,$.context),se}function Je($,W){var se=$.context.indent-H;return W=W||!1,$.context=$.context.prev,W&&($.context.indent=se),$.context.type}function He($,W,se){return de[se.context.type]($,W,se)}function Ge($,W,se,De){for(var nt=De||1;nt>0;nt--)se.context=se.context.prev;return He($,W,se)}function U($){return $.toLowerCase()in ee}function G($){return $=$.toLowerCase(),$ in N||$ in X}function ce($){return $.toLowerCase()in le}function Be($){return $.toLowerCase().match(xe)}function te($){var W=$.toLowerCase(),se="variable-2";return U($)?se="tag":ce($)?se="block-keyword":G($)?se="property":W in D||W in q?se="atom":W=="return"||W in Q?se="keyword":$.match(/^[A-Z]/)&&(se="string"),se}function fe($,W){return Me(W)&&($=="{"||$=="]"||$=="hash"||$=="qualifier")||$=="block-mixin"}function oe($,W){return $=="{"&&W.match(/^\s*\$?[\w-]+/i,!1)}function Ue($,W){return $==":"&&W.match(/^[a-z-]+/,!1)}function we($){return $.sol()||$.string.match(new RegExp("^\\s*"+R($.current())))}function Me($){return $.eol()||$.match(/^\s*$/,!1)}function Le($){var W=/^\s*[-_]*[a-z0-9]+[\w-]*/i,se=typeof $=="string"?$.match(W):$.string.match(W);return se?se[0].replace(/^\s*/,""):""}return de.block=function($,W,se){if($=="comment"&&we(W)||$==","&&Me(W)||$=="mixin")return ke(se,W,"block",0);if(oe($,W))return ke(se,W,"interpolation");if(Me(W)&&$=="]"&&!/^\s*(\.|#|:|\[|\*|&)/.test(W.string)&&!U(Le(W)))return ke(se,W,"block",0);if(fe($,W))return ke(se,W,"block");if($=="}"&&Me(W))return ke(se,W,"block",0);if($=="variable-name")return W.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||ce(Le(W))?ke(se,W,"variableName"):ke(se,W,"variableName",0);if($=="=")return!Me(W)&&!ce(Le(W))?ke(se,W,"block",0):ke(se,W,"block");if($=="*"&&(Me(W)||W.match(/\s*(,|\.|#|\[|:|{)/,!1)))return ge="tag",ke(se,W,"block");if(Ue($,W))return ke(se,W,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test($))return ke(se,W,Me(W)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test($))return ke(se,W,"keyframes");if(/@extends?/.test($))return ke(se,W,"extend",0);if($&&$.charAt(0)=="@")return W.indentation()>0&&G(W.current().slice(1))?(ge="variable-2","block"):/(@import|@require|@charset)/.test($)?ke(se,W,"block",0):ke(se,W,"block");if($=="reference"&&Me(W))return ke(se,W,"block");if($=="(")return ke(se,W,"parens");if($=="vendor-prefixes")return ke(se,W,"vendorPrefixes");if($=="word"){var De=W.current();if(ge=te(De),ge=="property")return we(W)?ke(se,W,"block",0):(ge="atom","block");if(ge=="tag"){if(/embed|menu|pre|progress|sub|table/.test(De)&&G(Le(W))||W.string.match(new RegExp("\\[\\s*"+De+"|"+De+"\\s*\\]")))return ge="atom","block";if(re.test(De)&&(we(W)&&W.string.match(/=/)||!we(W)&&!W.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!U(Le(W))))return ge="variable-2",ce(Le(W))?"block":ke(se,W,"block",0);if(Me(W))return ke(se,W,"block")}if(ge=="block-keyword")return ge="keyword",W.current(/(if|unless)/)&&!we(W)?"block":ke(se,W,"block");if(De=="return")return ke(se,W,"block",0);if(ge=="variable-2"&&W.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return ke(se,W,"block")}return se.context.type},de.parens=function($,W,se){if($=="(")return ke(se,W,"parens");if($==")")return se.context.prev.type=="parens"?Je(se):W.string.match(/^[a-z][\w-]*\(/i)&&Me(W)||ce(Le(W))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(Le(W))||!W.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&U(Le(W))?ke(se,W,"block"):W.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||W.string.match(/^\s*(\(|\)|[0-9])/)||W.string.match(/^\s+[a-z][\w-]*\(/i)||W.string.match(/^\s+[\$-]?[a-z]/i)?ke(se,W,"block",0):Me(W)?ke(se,W,"block"):ke(se,W,"block",0);if($&&$.charAt(0)=="@"&&G(W.current().slice(1))&&(ge="variable-2"),$=="word"){var De=W.current();ge=te(De),ge=="tag"&&re.test(De)&&(ge="variable-2"),(ge=="property"||De=="to")&&(ge="atom")}return $=="variable-name"?ke(se,W,"variableName"):Ue($,W)?ke(se,W,"pseudo"):se.context.type},de.vendorPrefixes=function($,W,se){return $=="word"?(ge="property",ke(se,W,"block",0)):Je(se)},de.pseudo=function($,W,se){return G(Le(W.string))?Ge($,W,se):(W.match(/^[a-z-]+/),ge="variable-3",Me(W)?ke(se,W,"block"):Je(se))},de.atBlock=function($,W,se){if($=="(")return ke(se,W,"atBlock_parens");if(fe($,W))return ke(se,W,"block");if(oe($,W))return ke(se,W,"interpolation");if($=="word"){var De=W.current().toLowerCase();if(/^(only|not|and|or)$/.test(De)?ge="keyword":j.hasOwnProperty(De)?ge="tag":K.hasOwnProperty(De)?ge="attribute":x.hasOwnProperty(De)?ge="property":F.hasOwnProperty(De)?ge="string-2":ge=te(W.current()),ge=="tag"&&Me(W))return ke(se,W,"block")}return $=="operator"&&/^(not|and|or)$/.test(W.current())&&(ge="keyword"),se.context.type},de.atBlock_parens=function($,W,se){if($=="{"||$=="}")return se.context.type;if($==")")return Me(W)?ke(se,W,"block"):ke(se,W,"atBlock");if($=="word"){var De=W.current().toLowerCase();return ge=te(De),/^(max|min)/.test(De)&&(ge="property"),ge=="tag"&&(re.test(De)?ge="variable-2":ge="atom"),se.context.type}return de.atBlock($,W,se)},de.keyframes=function($,W,se){return W.indentation()=="0"&&($=="}"&&we(W)||$=="]"||$=="hash"||$=="qualifier"||U(W.current()))?Ge($,W,se):$=="{"?ke(se,W,"keyframes"):$=="}"?we(W)?Je(se,!0):ke(se,W,"keyframes"):$=="unit"&&/^[0-9]+\%$/.test(W.current())?ke(se,W,"keyframes"):$=="word"&&(ge=te(W.current()),ge=="block-keyword")?(ge="keyword",ke(se,W,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test($)?ke(se,W,Me(W)?"block":"atBlock"):$=="mixin"?ke(se,W,"block",0):se.context.type},de.interpolation=function($,W,se){return $=="{"&&Je(se)&&ke(se,W,"block"),$=="}"?W.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||W.string.match(/^\s*[a-z]/i)&&U(Le(W))?ke(se,W,"block"):!W.string.match(/^(\{|\s*\&)/)||W.match(/\s*[\w-]/,!1)?ke(se,W,"block",0):ke(se,W,"block"):$=="variable-name"?ke(se,W,"variableName",0):($=="word"&&(ge=te(W.current()),ge=="tag"&&(ge="atom")),se.context.type)},de.extend=function($,W,se){return $=="["||$=="="?"extend":$=="]"?Je(se):$=="word"?(ge=te(W.current()),"extend"):Je(se)},de.variableName=function($,W,se){return $=="string"||$=="["||$=="]"||W.current().match(/^(\.|\$)/)?(W.current().match(/^\.[\w-]+/i)&&(ge="variable-2"),"variableName"):Ge($,W,se)},{startState:function($){return{tokenize:null,state:"block",context:new Ze("block",$||0,null)}},token:function($,W){return!W.tokenize&&$.eatSpace()?null:(pe=(W.tokenize||Oe)($,W),pe&&typeof pe=="object"&&(Ee=pe[1],pe=pe[0]),ge=pe,W.state=de[W.state](Ee,$,W),ge)},indent:function($,W,se){var De=$.context,nt=W&&W.charAt(0),dt=De.indent,Pt=Le(W),It=se.match(/^\s*/)[0].replace(/\t/g,Z).length,Pe=$.context.prev?$.context.prev.line.firstWord:"",xt=$.context.prev?$.context.prev.line.indent:It;return De.prev&&(nt=="}"&&(De.type=="block"||De.type=="atBlock"||De.type=="keyframes")||nt==")"&&(De.type=="parens"||De.type=="atBlock_parens")||nt=="{"&&De.type=="at")?dt=De.indent-H:/(\})/.test(nt)||(/@|\$|\d/.test(nt)||/^\{/.test(W)||/^\s*\/(\/|\*)/.test(W)||/^\s*\/\*/.test(Pe)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(W)||/^(\+|-)?[a-z][\w-]*\(/i.test(W)||/^return/.test(W)||ce(Pt)?dt=It:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(nt)||U(Pt)?/\,\s*$/.test(Pe)?dt=xt:/^\s+/.test(se)&&(/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(Pe)||U(Pe))?dt=It<=xt?xt:xt+H:dt=It:!/,\s*$/.test(se)&&(Be(Pt)||G(Pt))&&(ce(Pe)?dt=It<=xt?xt:xt+H:/^\{/.test(Pe)?dt=It<=xt?It:xt+H:Be(Pe)||G(Pe)?dt=It>=xt?xt:It:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(Pe)||/=\s*$/.test(Pe)||U(Pe)||/^\$[\w-\.\[\]\'\"]/.test(Pe)?dt=xt+H:dt=It)),dt},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"indent"}});var p=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],v=["domain","regexp","url-prefix","url"],C=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],b=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],k=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],s=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],g=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],h=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],S=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],w=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],c=["for","if","else","unless","from","to"],d=["null","true","false","href","title","type","not-allowed","readonly","disabled"],T=["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"],E=p.concat(v,C,b,k,s,h,S,g,w,c,d,T);function z(M){return M=M.sort(function(H,Z){return Z>H}),new RegExp("^(("+M.join(")|(")+"))\\b")}function y(M){for(var H={},Z=0;Z{(function(o){typeof Gu=="object"&&typeof Zu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(N){for(var F={},D=0;D~^?!",g=":;,.(){}[]",h=/^\-?0b[01][01_]*/,S=/^\-?0o[0-7][0-7_]*/,w=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,c=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,d=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,T=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,E=/^\#[A-Za-z]+/,z=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function y(N,F,D){if(N.sol()&&(F.indented=N.indentation()),N.eatSpace())return null;var Q=N.peek();if(Q=="/"){if(N.match("//"))return N.skipToEnd(),"comment";if(N.match("/*"))return F.tokenize.push(H),H(N,F)}if(N.match(E))return"builtin";if(N.match(z))return"attribute";if(N.match(h)||N.match(S)||N.match(w)||N.match(c))return"number";if(N.match(T))return"property";if(s.indexOf(Q)>-1)return N.next(),"operator";if(g.indexOf(Q)>-1)return N.next(),N.match(".."),"punctuation";var j;if(j=N.match(/("""|"|')/)){var V=M.bind(null,j[0]);return F.tokenize.push(V),V(N,F)}if(N.match(d)){var x=N.current();return k.hasOwnProperty(x)?"variable-2":b.hasOwnProperty(x)?"atom":v.hasOwnProperty(x)?(C.hasOwnProperty(x)&&(F.prev="define"),"keyword"):D=="define"?"def":"variable"}return N.next(),null}function R(){var N=0;return function(F,D,Q){var j=y(F,D,Q);if(j=="punctuation"){if(F.current()=="(")++N;else if(F.current()==")"){if(N==0)return F.backUp(1),D.tokenize.pop(),D.tokenize[D.tokenize.length-1](F,D);--N}}return j}}function M(N,F,D){for(var Q=N.length==1,j,V=!1;j=F.peek();)if(V){if(F.next(),j=="(")return D.tokenize.push(R()),"string";V=!1}else{if(F.match(N))return D.tokenize.pop(),"string";F.next(),V=j=="\\"}return Q&&D.tokenize.pop(),"string"}function H(N,F){for(var D;D=N.next();)if(D==="/"&&N.eat("*"))F.tokenize.push(H);else if(D==="*"&&N.eat("/")){F.tokenize.pop();break}return"comment"}function Z(N,F,D){this.prev=N,this.align=F,this.indented=D}function ee(N,F){var D=F.match(/^\s*($|\/[\/\*])/,!1)?null:F.column()+1;N.context=new Z(N.context,D,N.indented)}function re(N){N.context&&(N.indented=N.context.indented,N.context=N.context.prev)}o.defineMode("swift",function(N){return{startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(F,D){var Q=D.prev;D.prev=null;var j=D.tokenize[D.tokenize.length-1]||y,V=j(F,D,Q);if(!V||V=="comment"?D.prev=Q:D.prev||(D.prev=V),V=="punctuation"){var x=/[\(\[\{]|([\]\)\}])/.exec(F.current());x&&(x[1]?re:ee)(D,F)}return V},indent:function(F,D){var Q=F.context;if(!Q)return 0;var j=/^[\]\}\)]/.test(D);return Q.align!=null?Q.align-(j?1:0):Q.indented+(j?0:N.indentUnit)},electricInput:/^\s*[\)\}\]]$/,lineComment:"//",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace",closeBrackets:"()[]{}''\"\"``"}}),o.defineMIME("text/x-swift","swift")})});var Vu=Ke((Yu,Qu)=>{(function(o){typeof Yu=="object"&&typeof Qu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("coffeescript",function(p,v){var C="error";function b(F){return new RegExp("^(("+F.join(")|(")+"))\\b")}var k=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,s=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,g=/^[_A-Za-z$][_A-Za-z$0-9]*/,h=/^@[_A-Za-z$][_A-Za-z$0-9]*/,S=b(["and","or","not","is","isnt","in","instanceof","typeof"]),w=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],c=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],d=b(w.concat(c));w=b(w);var T=/^('{3}|\"{3}|['\"])/,E=/^(\/{3}|\/)/,z=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],y=b(z);function R(F,D){if(F.sol()){D.scope.align===null&&(D.scope.align=!1);var Q=D.scope.offset;if(F.eatSpace()){var j=F.indentation();return j>Q&&D.scope.type=="coffee"?"indent":j0&&ee(F,D)}if(F.eatSpace())return null;var V=F.peek();if(F.match("####"))return F.skipToEnd(),"comment";if(F.match("###"))return D.tokenize=H,D.tokenize(F,D);if(V==="#")return F.skipToEnd(),"comment";if(F.match(/^-?[0-9\.]/,!1)){var x=!1;if(F.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(x=!0),F.match(/^-?\d+\.\d*/)&&(x=!0),F.match(/^-?\.\d+/)&&(x=!0),x)return F.peek()=="."&&F.backUp(1),"number";var K=!1;if(F.match(/^-?0x[0-9a-f]+/i)&&(K=!0),F.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(K=!0),F.match(/^-?0(?![\dx])/i)&&(K=!0),K)return"number"}if(F.match(T))return D.tokenize=M(F.current(),!1,"string"),D.tokenize(F,D);if(F.match(E)){if(F.current()!="/"||F.match(/^.*\//,!1))return D.tokenize=M(F.current(),!0,"string-2"),D.tokenize(F,D);F.backUp(1)}return F.match(k)||F.match(S)?"operator":F.match(s)?"punctuation":F.match(y)?"atom":F.match(h)||D.prop&&F.match(g)?"property":F.match(d)?"keyword":F.match(g)?"variable":(F.next(),C)}function M(F,D,Q){return function(j,V){for(;!j.eol();)if(j.eatWhile(/[^'"\/\\]/),j.eat("\\")){if(j.next(),D&&j.eol())return Q}else{if(j.match(F))return V.tokenize=R,Q;j.eat(/['"\/]/)}return D&&(v.singleLineStringErrors?Q=C:V.tokenize=R),Q}}function H(F,D){for(;!F.eol();){if(F.eatWhile(/[^#]/),F.match("###")){D.tokenize=R;break}F.eatWhile("#")}return"comment"}function Z(F,D,Q){Q=Q||"coffee";for(var j=0,V=!1,x=null,K=D.scope;K;K=K.prev)if(K.type==="coffee"||K.type=="}"){j=K.offset+p.indentUnit;break}Q!=="coffee"?(V=null,x=F.column()+F.current().length):D.scope.align&&(D.scope.align=!1),D.scope={offset:j,type:Q,prev:D.scope,align:V,alignOffset:x}}function ee(F,D){if(D.scope.prev)if(D.scope.type==="coffee"){for(var Q=F.indentation(),j=!1,V=D.scope;V;V=V.prev)if(Q===V.offset){j=!0;break}if(!j)return!0;for(;D.scope.prev&&D.scope.offset!==Q;)D.scope=D.scope.prev;return!1}else return D.scope=D.scope.prev,!1}function re(F,D){var Q=D.tokenize(F,D),j=F.current();j==="return"&&(D.dedent=!0),((j==="->"||j==="=>")&&F.eol()||Q==="indent")&&Z(F,D);var V="[({".indexOf(j);if(V!==-1&&Z(F,D,"])}".slice(V,V+1)),w.exec(j)&&Z(F,D),j=="then"&&ee(F,D),Q==="dedent"&&ee(F,D))return C;if(V="])}".indexOf(j),V!==-1){for(;D.scope.type=="coffee"&&D.scope.prev;)D.scope=D.scope.prev;D.scope.type==j&&(D.scope=D.scope.prev)}return D.dedent&&F.eol()&&(D.scope.type=="coffee"&&D.scope.prev&&(D.scope=D.scope.prev),D.dedent=!1),Q}var N={startState:function(F){return{tokenize:R,scope:{offset:F||0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(F,D){var Q=D.scope.align===null&&D.scope;Q&&F.sol()&&(Q.align=!1);var j=re(F,D);return j&&j!="comment"&&(Q&&(Q.align=!0),D.prop=j=="punctuation"&&F.current()=="."),j},indent:function(F,D){if(F.tokenize!=R)return 0;var Q=F.scope,j=D&&"])}".indexOf(D.charAt(0))>-1;if(j)for(;Q.type=="coffee"&&Q.prev;)Q=Q.prev;var V=j&&Q.type===D.charAt(0);return Q.align?Q.alignOffset-(V?1:0):(V?Q.prev:Q).offset},lineComment:"#",fold:"indent"};return N}),o.defineMIME("application/vnd.coffeescript","coffeescript"),o.defineMIME("text/x-coffeescript","coffeescript"),o.defineMIME("text/coffeescript","coffeescript")})});var tc=Ke((Ju,ec)=>{(function(o){typeof Ju=="object"&&typeof ec=="object"?o(We(),vn(),gn(),Qn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../javascript/javascript","../css/css","../htmlmixed/htmlmixed"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("pug",function(p){var v="keyword",C="meta",b="builtin",k="qualifier",s={"{":"}","(":")","[":"]"},g=o.getMode(p,"javascript");function h(){this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=o.startState(g),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.scriptType="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken="",this.innerMode=null,this.innerState=null,this.innerModeForLine=!1}h.prototype.copy=function(){var U=new h;return U.javaScriptLine=this.javaScriptLine,U.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,U.javaScriptArguments=this.javaScriptArguments,U.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,U.isInterpolating=this.isInterpolating,U.interpolationNesting=this.interpolationNesting,U.jsState=o.copyState(g,this.jsState),U.innerMode=this.innerMode,this.innerMode&&this.innerState&&(U.innerState=o.copyState(this.innerMode,this.innerState)),U.restOfLine=this.restOfLine,U.isIncludeFiltered=this.isIncludeFiltered,U.isEach=this.isEach,U.lastTag=this.lastTag,U.scriptType=this.scriptType,U.isAttrs=this.isAttrs,U.attrsNest=this.attrsNest.slice(),U.inAttributeName=this.inAttributeName,U.attributeIsType=this.attributeIsType,U.attrValue=this.attrValue,U.indentOf=this.indentOf,U.indentToken=this.indentToken,U.innerModeForLine=this.innerModeForLine,U};function S(U,G){if(U.sol()&&(G.javaScriptLine=!1,G.javaScriptLineExcludesColon=!1),G.javaScriptLine){if(G.javaScriptLineExcludesColon&&U.peek()===":"){G.javaScriptLine=!1,G.javaScriptLineExcludesColon=!1;return}var ce=g.token(U,G.jsState);return U.eol()&&(G.javaScriptLine=!1),ce||!0}}function w(U,G){if(G.javaScriptArguments){if(G.javaScriptArgumentsDepth===0&&U.peek()!=="("){G.javaScriptArguments=!1;return}if(U.peek()==="("?G.javaScriptArgumentsDepth++:U.peek()===")"&&G.javaScriptArgumentsDepth--,G.javaScriptArgumentsDepth===0){G.javaScriptArguments=!1;return}var ce=g.token(U,G.jsState);return ce||!0}}function c(U){if(U.match(/^yield\b/))return"keyword"}function d(U){if(U.match(/^(?:doctype) *([^\n]+)?/))return C}function T(U,G){if(U.match("#{"))return G.isInterpolating=!0,G.interpolationNesting=0,"punctuation"}function E(U,G){if(G.isInterpolating){if(U.peek()==="}"){if(G.interpolationNesting--,G.interpolationNesting<0)return U.next(),G.isInterpolating=!1,"punctuation"}else U.peek()==="{"&&G.interpolationNesting++;return g.token(U,G.jsState)||!0}}function z(U,G){if(U.match(/^case\b/))return G.javaScriptLine=!0,v}function y(U,G){if(U.match(/^when\b/))return G.javaScriptLine=!0,G.javaScriptLineExcludesColon=!0,v}function R(U){if(U.match(/^default\b/))return v}function M(U,G){if(U.match(/^extends?\b/))return G.restOfLine="string",v}function H(U,G){if(U.match(/^append\b/))return G.restOfLine="variable",v}function Z(U,G){if(U.match(/^prepend\b/))return G.restOfLine="variable",v}function ee(U,G){if(U.match(/^block\b *(?:(prepend|append)\b)?/))return G.restOfLine="variable",v}function re(U,G){if(U.match(/^include\b/))return G.restOfLine="string",v}function N(U,G){if(U.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&U.match("include"))return G.isIncludeFiltered=!0,v}function F(U,G){if(G.isIncludeFiltered){var ce=B(U,G);return G.isIncludeFiltered=!1,G.restOfLine="string",ce}}function D(U,G){if(U.match(/^mixin\b/))return G.javaScriptLine=!0,v}function Q(U,G){if(U.match(/^\+([-\w]+)/))return U.match(/^\( *[-\w]+ *=/,!1)||(G.javaScriptArguments=!0,G.javaScriptArgumentsDepth=0),"variable";if(U.match("+#{",!1))return U.next(),G.mixinCallAfter=!0,T(U,G)}function j(U,G){if(G.mixinCallAfter)return G.mixinCallAfter=!1,U.match(/^\( *[-\w]+ *=/,!1)||(G.javaScriptArguments=!0,G.javaScriptArgumentsDepth=0),!0}function V(U,G){if(U.match(/^(if|unless|else if|else)\b/))return G.javaScriptLine=!0,v}function x(U,G){if(U.match(/^(- *)?(each|for)\b/))return G.isEach=!0,v}function K(U,G){if(G.isEach){if(U.match(/^ in\b/))return G.javaScriptLine=!0,G.isEach=!1,v;if(U.sol()||U.eol())G.isEach=!1;else if(U.next()){for(;!U.match(/^ in\b/,!1)&&U.next(););return"variable"}}}function X(U,G){if(U.match(/^while\b/))return G.javaScriptLine=!0,v}function I(U,G){var ce;if(ce=U.match(/^(\w(?:[-:\w]*\w)?)\/?/))return G.lastTag=ce[1].toLowerCase(),G.lastTag==="script"&&(G.scriptType="application/javascript"),"tag"}function B(U,G){if(U.match(/^:([\w\-]+)/)){var ce;return p&&p.innerModes&&(ce=p.innerModes(U.current().substring(1))),ce||(ce=U.current().substring(1)),typeof ce=="string"&&(ce=o.getMode(p,ce)),je(U,G,ce),"atom"}}function le(U,G){if(U.match(/^(!?=|-)/))return G.javaScriptLine=!0,"punctuation"}function xe(U){if(U.match(/^#([\w-]+)/))return b}function q(U){if(U.match(/^\.([\w-]+)/))return k}function L(U,G){if(U.peek()=="(")return U.next(),G.isAttrs=!0,G.attrsNest=[],G.inAttributeName=!0,G.attrValue="",G.attributeIsType=!1,"punctuation"}function de(U,G){if(G.isAttrs){if(s[U.peek()]&&G.attrsNest.push(s[U.peek()]),G.attrsNest[G.attrsNest.length-1]===U.peek())G.attrsNest.pop();else if(U.eat(")"))return G.isAttrs=!1,"punctuation";if(G.inAttributeName&&U.match(/^[^=,\)!]+/))return(U.peek()==="="||U.peek()==="!")&&(G.inAttributeName=!1,G.jsState=o.startState(g),G.lastTag==="script"&&U.current().trim().toLowerCase()==="type"?G.attributeIsType=!0:G.attributeIsType=!1),"attribute";var ce=g.token(U,G.jsState);if(G.attributeIsType&&ce==="string"&&(G.scriptType=U.current().toString()),G.attrsNest.length===0&&(ce==="string"||ce==="variable"||ce==="keyword"))try{return Function("","var x "+G.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),G.inAttributeName=!0,G.attrValue="",U.backUp(U.current().length),de(U,G)}catch{}return G.attrValue+=U.current(),ce||!0}}function ze(U,G){if(U.match(/^&attributes\b/))return G.javaScriptArguments=!0,G.javaScriptArgumentsDepth=0,"keyword"}function pe(U){if(U.sol()&&U.eatSpace())return"indent"}function Ee(U,G){if(U.match(/^ *\/\/(-)?([^\n]*)/))return G.indentOf=U.indentation(),G.indentToken="comment","comment"}function ge(U){if(U.match(/^: */))return"colon"}function Oe(U,G){if(U.match(/^(?:\| ?| )([^\n]+)/))return"string";if(U.match(/^(<[^\n]*)/,!1))return je(U,G,"htmlmixed"),G.innerModeForLine=!0,Ze(U,G,!0)}function qe(U,G){if(U.eat(".")){var ce=null;return G.lastTag==="script"&&G.scriptType.toLowerCase().indexOf("javascript")!=-1?ce=G.scriptType.toLowerCase().replace(/"|'/g,""):G.lastTag==="style"&&(ce="css"),je(U,G,ce),"dot"}}function Se(U){return U.next(),null}function je(U,G,ce){ce=o.mimeModes[ce]||ce,ce=p.innerModes&&p.innerModes(ce)||ce,ce=o.mimeModes[ce]||ce,ce=o.getMode(p,ce),G.indentOf=U.indentation(),ce&&ce.name!=="null"?G.innerMode=ce:G.indentToken="string"}function Ze(U,G,ce){if(U.indentation()>G.indentOf||G.innerModeForLine&&!U.sol()||ce)return G.innerMode?(G.innerState||(G.innerState=G.innerMode.startState?o.startState(G.innerMode,U.indentation()):{}),U.hideFirstChars(G.indentOf+2,function(){return G.innerMode.token(U,G.innerState)||!0})):(U.skipToEnd(),G.indentToken);U.sol()&&(G.indentOf=1/0,G.indentToken=null,G.innerMode=null,G.innerState=null)}function ke(U,G){if(U.sol()&&(G.restOfLine=""),G.restOfLine){U.skipToEnd();var ce=G.restOfLine;return G.restOfLine="",ce}}function Je(){return new h}function He(U){return U.copy()}function Ge(U,G){var ce=Ze(U,G)||ke(U,G)||E(U,G)||F(U,G)||K(U,G)||de(U,G)||S(U,G)||w(U,G)||j(U,G)||c(U)||d(U)||T(U,G)||z(U,G)||y(U,G)||R(U)||M(U,G)||H(U,G)||Z(U,G)||ee(U,G)||re(U,G)||N(U,G)||D(U,G)||Q(U,G)||V(U,G)||x(U,G)||X(U,G)||I(U,G)||B(U,G)||le(U,G)||xe(U)||q(U)||L(U,G)||ze(U,G)||pe(U)||Oe(U,G)||Ee(U,G)||ge(U)||qe(U,G)||Se(U);return ce===!0?null:ce}return{startState:Je,copyState:He,token:Ge}},"javascript","css","htmlmixed"),o.defineMIME("text/x-pug","pug"),o.defineMIME("text/x-jade","pug")})});var ic=Ke((rc,nc)=>{(function(o){typeof rc=="object"&&typeof nc=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.multiplexingMode=function(p){var v=Array.prototype.slice.call(arguments,1);function C(b,k,s,g){if(typeof k=="string"){var h=b.indexOf(k,s);return g&&h>-1?h+k.length:h}var S=k.exec(s?b.slice(s):b);return S?S.index+s+(g?S[0].length:0):-1}return{startState:function(){return{outer:o.startState(p),innerActive:null,inner:null,startingInner:!1}},copyState:function(b){return{outer:o.copyState(p,b.outer),innerActive:b.innerActive,inner:b.innerActive&&o.copyState(b.innerActive.mode,b.inner),startingInner:b.startingInner}},token:function(b,k){if(k.innerActive){var E=k.innerActive,g=b.string;if(!E.close&&b.sol())return k.innerActive=k.inner=null,this.token(b,k);var w=E.close&&!k.startingInner?C(g,E.close,b.pos,E.parseDelimiters):-1;if(w==b.pos&&!E.parseDelimiters)return b.match(E.close),k.innerActive=k.inner=null,E.delimStyle&&E.delimStyle+" "+E.delimStyle+"-close";w>-1&&(b.string=g.slice(0,w));var z=E.mode.token(b,k.inner);return w>-1?b.string=g:b.pos>b.start&&(k.startingInner=!1),w==b.pos&&E.parseDelimiters&&(k.innerActive=k.inner=null),E.innerStyle&&(z?z=z+" "+E.innerStyle:z=E.innerStyle),z}else{for(var s=1/0,g=b.string,h=0;h{(function(o){typeof oc=="object"&&typeof ac=="object"?o(We(),Di(),ic()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple","../../addon/mode/multiplex"],o):o(CodeMirror)})(function(o){"use strict";o.defineSimpleMode("handlebars-tags",{start:[{regex:/\{\{\{/,push:"handlebars_raw",token:"tag"},{regex:/\{\{!--/,push:"dash_comment",token:"comment"},{regex:/\{\{!/,push:"comment",token:"comment"},{regex:/\{\{/,push:"handlebars",token:"tag"}],handlebars_raw:[{regex:/\}\}\}/,pop:!0,token:"tag"}],handlebars:[{regex:/\}\}/,pop:!0,token:"tag"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/>|[#\/]([A-Za-z_]\w*)/,token:"keyword"},{regex:/(?:else|this)\b/,token:"keyword"},{regex:/\d+/i,token:"number"},{regex:/=|~|@|true|false/,token:"atom"},{regex:/(?:\.\.\/)*(?:[A-Za-z_][\w\.]*)+/,token:"variable-2"}],dash_comment:[{regex:/--\}\}/,pop:!0,token:"comment"},{regex:/./,token:"comment"}],comment:[{regex:/\}\}/,pop:!0,token:"comment"},{regex:/./,token:"comment"}],meta:{blockCommentStart:"{{--",blockCommentEnd:"--}}"}}),o.defineMode("handlebars",function(p,v){var C=o.getMode(p,"handlebars-tags");return!v||!v.base?C:o.multiplexingMode(o.getMode(p,v.base),{open:"{{",close:/\}\}\}?/,mode:C,parseDelimiters:!0})}),o.defineMIME("text/x-handlebars-template","handlebars")})});var cc=Ke((sc,uc)=>{(function(o){"use strict";typeof sc=="object"&&typeof uc=="object"?o(We(),Yn(),mn(),vn(),Vu(),gn(),ea(),ta(),tc(),lc()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/overlay","../xml/xml","../javascript/javascript","../coffeescript/coffeescript","../css/css","../sass/sass","../stylus/stylus","../pug/pug","../handlebars/handlebars"],o):o(CodeMirror)})(function(o){var p={script:[["lang",/coffee(script)?/,"coffeescript"],["type",/^(?:text|application)\/(?:x-)?coffee(?:script)?$/,"coffeescript"],["lang",/^babel$/,"javascript"],["type",/^text\/babel$/,"javascript"],["type",/^text\/ecmascript-\d+$/,"javascript"]],style:[["lang",/^stylus$/i,"stylus"],["lang",/^sass$/i,"sass"],["lang",/^less$/i,"text/x-less"],["lang",/^scss$/i,"text/x-scss"],["type",/^(text\/)?(x-)?styl(us)?$/i,"stylus"],["type",/^text\/sass/i,"sass"],["type",/^(text\/)?(x-)?scss$/i,"text/x-scss"],["type",/^(text\/)?(x-)?less$/i,"text/x-less"]],template:[["lang",/^vue-template$/i,"vue"],["lang",/^pug$/i,"pug"],["lang",/^handlebars$/i,"handlebars"],["type",/^(text\/)?(x-)?pug$/i,"pug"],["type",/^text\/x-handlebars-template$/i,"handlebars"],[null,null,"vue-template"]]};o.defineMode("vue-template",function(v,C){var b={token:function(k){if(k.match(/^\{\{.*?\}\}/))return"meta mustache";for(;k.next()&&!k.match("{{",!1););return null}};return o.overlayMode(o.getMode(v,C.backdrop||"text/html"),b)}),o.defineMode("vue",function(v){return o.getMode(v,{name:"htmlmixed",tags:p})},"htmlmixed","xml","javascript","coffeescript","css","sass","stylus","pug","handlebars"),o.defineMIME("script/x-vue","vue"),o.defineMIME("text/x-vue","vue")})});var pc=Ke((fc,dc)=>{(function(o){typeof fc=="object"&&typeof dc=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("yaml",function(){var p=["true","false","on","off","yes","no"],v=new RegExp("\\b(("+p.join(")|(")+"))$","i");return{token:function(C,b){var k=C.peek(),s=b.escaped;if(b.escaped=!1,k=="#"&&(C.pos==0||/\s/.test(C.string.charAt(C.pos-1))))return C.skipToEnd(),"comment";if(C.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(b.literal&&C.indentation()>b.keyCol)return C.skipToEnd(),"string";if(b.literal&&(b.literal=!1),C.sol()){if(b.keyCol=0,b.pair=!1,b.pairStart=!1,C.match("---")||C.match("..."))return"def";if(C.match(/\s*-\s+/))return"meta"}if(C.match(/^(\{|\}|\[|\])/))return k=="{"?b.inlinePairs++:k=="}"?b.inlinePairs--:k=="["?b.inlineList++:b.inlineList--,"meta";if(b.inlineList>0&&!s&&k==",")return C.next(),"meta";if(b.inlinePairs>0&&!s&&k==",")return b.keyCol=0,b.pair=!1,b.pairStart=!1,C.next(),"meta";if(b.pairStart){if(C.match(/^\s*(\||\>)\s*/))return b.literal=!0,"meta";if(C.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(b.inlinePairs==0&&C.match(/^\s*-?[0-9\.\,]+\s?$/)||b.inlinePairs>0&&C.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(C.match(v))return"keyword"}return!b.pair&&C.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^\s,\[\]{}#&*!|>'"%@`])[^#:]*(?=:($|\s))/)?(b.pair=!0,b.keyCol=C.indentation(),"atom"):b.pair&&C.match(/^:\s*/)?(b.pairStart=!0,"meta"):(b.pairStart=!1,b.escaped=k=="\\",C.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},lineComment:"#",fold:"indent"}}),o.defineMIME("text/x-yaml","yaml"),o.defineMIME("text/yaml","yaml")})});var $d={};function qd(o){for(var p;(p=Md.exec(o))!==null;){var v=p[0];if(v.indexOf("target=")===-1){var C=v.replace(/>$/,' target="_blank">');o=o.replace(v,C)}}return o}function Id(o){for(var p=new DOMParser,v=p.parseFromString(o,"text/html"),C=v.getElementsByTagName("li"),b=0;b0){for(var d=document.createElement("i"),T=0;T=0&&(w=s.getLineHandle(d),!v(w));d--);var R=s.getTokenAt({line:d,ch:1}),M=C(R).fencedChars,H,Z,ee,re;v(s.getLineHandle(g.line))?(H="",Z=g.line):v(s.getLineHandle(g.line-1))?(H="",Z=g.line-1):(H=M+` +`,Z=g.line),v(s.getLineHandle(h.line))?(ee="",re=h.line,h.ch===0&&(re+=1)):h.ch!==0&&v(s.getLineHandle(h.line+1))?(ee="",re=h.line+1):(ee=M+` +`,re=h.line+1),h.ch===0&&(re-=1),s.operation(function(){s.replaceRange(ee,{line:re,ch:0},{line:re+(ee?0:1),ch:0}),s.replaceRange(H,{line:Z,ch:0},{line:Z+(H?0:1),ch:0})}),s.setSelection({line:Z+(H?1:0),ch:0},{line:re+(H?1:-1),ch:0}),s.focus()}else{var N=g.line;if(v(s.getLineHandle(g.line))&&(b(s,g.line+1)==="fenced"?(d=g.line,N=g.line+1):(T=g.line,N=g.line-1)),d===void 0)for(d=N;d>=0&&(w=s.getLineHandle(d),!v(w));d--);if(T===void 0)for(E=s.lineCount(),T=N;T=0;d--)if(w=s.getLineHandle(d),!w.text.match(/^\s*$/)&&b(s,d,w)!=="indented"){d+=1;break}for(E=s.lineCount(),T=g.line;T\s+/,"unordered-list":C,"ordered-list":C},S=function(E,z){var y={quote:">","unordered-list":v,"ordered-list":"%%i."};return y[E].replace("%%i",z)},w=function(E,z){var y={quote:">","unordered-list":"\\"+v,"ordered-list":"\\d+."},R=new RegExp(y[E]);return z&&R.test(z)},c=function(E,z,y){var R=C.exec(z),M=S(E,d);return R!==null?(w(E,R[2])&&(M=""),z=R[1]+M+R[3]+z.replace(b,"").replace(h[E],"$1")):y==!1&&(z=M+" "+z),z},d=1,T=s.line;T<=g.line;T++)(function(E){var z=o.getLine(E);k[p]?z=z.replace(h[p],"$1"):(p=="unordered-list"&&(z=c("ordered-list",z,!0)),z=c(p,z,!1),d+=1),o.replaceRange(z,{line:E,ch:0},{line:E,ch:99999999999999})})(T);o.focus()}}function xc(o,p,v,C){if(!(!o.codemirror||o.isPreviewActive())){var b=o.codemirror,k=Tr(b),s=k[p];if(!s){Rr(b,s,v,C);return}var g=b.getCursor("start"),h=b.getCursor("end"),S=b.getLine(g.line),w=S.slice(0,g.ch),c=S.slice(g.ch);p=="link"?w=w.replace(/(.*)[^!]\[/,"$1"):p=="image"&&(w=w.replace(/(.*)!\[$/,"$1")),c=c.replace(/]\(.*?\)/,""),b.replaceRange(w+c,{line:g.line,ch:0},{line:g.line,ch:99999999999999}),g.ch-=v[0].length,g!==h&&(h.ch-=v[0].length),b.setSelection(g,h),b.focus()}}function sa(o,p,v,C){if(!(!o.codemirror||o.isPreviewActive())){C=typeof C>"u"?v:C;var b=o.codemirror,k=Tr(b),s,g=v,h=C,S=b.getCursor("start"),w=b.getCursor("end");k[p]?(s=b.getLine(S.line),g=s.slice(0,S.ch),h=s.slice(S.ch),p=="bold"?(g=g.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,""),h=h.replace(/(\*\*|__)/,"")):p=="italic"?(g=g.replace(/(\*|_)(?![\s\S]*(\*|_))/,""),h=h.replace(/(\*|_)/,"")):p=="strikethrough"&&(g=g.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,""),h=h.replace(/(\*\*|~~)/,"")),b.replaceRange(g+h,{line:S.line,ch:0},{line:S.line,ch:99999999999999}),p=="bold"||p=="strikethrough"?(S.ch-=2,S!==w&&(w.ch-=2)):p=="italic"&&(S.ch-=1,S!==w&&(w.ch-=1))):(s=b.getSelection(),p=="bold"?(s=s.split("**").join(""),s=s.split("__").join("")):p=="italic"?(s=s.split("*").join(""),s=s.split("_").join("")):p=="strikethrough"&&(s=s.split("~~").join("")),b.replaceSelection(g+s+h),S.ch+=v.length,w.ch=S.ch+s.length),b.setSelection(S,w),b.focus()}}function Pd(o){if(!o.getWrapperElement().lastChild.classList.contains("editor-preview-active"))for(var p=o.getCursor("start"),v=o.getCursor("end"),C,b=p.line;b<=v.line;b++)C=o.getLine(b),C=C.replace(/^[ ]*([# ]+|\*|-|[> ]+|[0-9]+(.|\)))[ ]*/,""),o.replaceRange(C,{line:b,ch:0},{line:b,ch:99999999999999})}function Ii(o,p){if(Math.abs(o)<1024)return""+o+p[0];var v=0;do o/=1024,++v;while(Math.abs(o)>=1024&&v=19968?C+=v[b].length:C+=1;return C}function Te(o){o=o||{},o.parent=this;var p=!0;if(o.autoDownloadFontAwesome===!1&&(p=!1),o.autoDownloadFontAwesome!==!0)for(var v=document.styleSheets,C=0;C-1&&(p=!1);if(p){var b=document.createElement("link");b.rel="stylesheet",b.href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css",document.getElementsByTagName("head")[0].appendChild(b)}if(o.element)this.element=o.element;else if(o.element===null){console.log("EasyMDE: Error. No element was found.");return}if(o.toolbar===void 0){o.toolbar=[];for(var k in Pr)Object.prototype.hasOwnProperty.call(Pr,k)&&(k.indexOf("separator-")!=-1&&o.toolbar.push("|"),(Pr[k].default===!0||o.showIcons&&o.showIcons.constructor===Array&&o.showIcons.indexOf(k)!=-1)&&o.toolbar.push(k))}if(Object.prototype.hasOwnProperty.call(o,"previewClass")||(o.previewClass="editor-preview"),Object.prototype.hasOwnProperty.call(o,"status")||(o.status=["autosave","lines","words","cursor"],o.uploadImage&&o.status.unshift("upload-image")),o.previewRender||(o.previewRender=function(g){return this.parent.markdown(g)}),o.parsingConfig=fr({highlightFormatting:!0},o.parsingConfig||{}),o.insertTexts=fr({},jd,o.insertTexts||{}),o.promptTexts=fr({},Rd,o.promptTexts||{}),o.blockStyles=fr({},Bd,o.blockStyles||{}),o.autosave!=null&&(o.autosave.timeFormat=fr({},Hd,o.autosave.timeFormat||{})),o.iconClassMap=fr({},et,o.iconClassMap||{}),o.shortcuts=fr({},Ad,o.shortcuts||{}),o.maxHeight=o.maxHeight||void 0,o.direction=o.direction||"ltr",typeof o.maxHeight<"u"?o.minHeight=o.maxHeight:o.minHeight=o.minHeight||"300px",o.errorCallback=o.errorCallback||function(g){alert(g)},o.uploadImage=o.uploadImage||!1,o.imageMaxSize=o.imageMaxSize||2097152,o.imageAccept=o.imageAccept||"image/png, image/jpeg, image/gif, image/avif",o.imageTexts=fr({},Wd,o.imageTexts||{}),o.errorMessages=fr({},Ud,o.errorMessages||{}),o.imagePathAbsolute=o.imagePathAbsolute||!1,o.imageCSRFName=o.imageCSRFName||"csrfmiddlewaretoken",o.imageCSRFHeader=o.imageCSRFHeader||!1,o.autosave!=null&&o.autosave.unique_id!=null&&o.autosave.unique_id!=""&&(o.autosave.uniqueId=o.autosave.unique_id),o.overlayMode&&o.overlayMode.combine===void 0&&(o.overlayMode.combine=!0),this.options=o,this.render(),o.initialValue&&(!this.options.autosave||this.options.autosave.foundSavedValue!==!0)&&this.value(o.initialValue),o.uploadImage){var s=this;this.codemirror.on("dragenter",function(g,h){s.updateStatusBar("upload-image",s.options.imageTexts.sbOnDragEnter),h.stopPropagation(),h.preventDefault()}),this.codemirror.on("dragend",function(g,h){s.updateStatusBar("upload-image",s.options.imageTexts.sbInit),h.stopPropagation(),h.preventDefault()}),this.codemirror.on("dragleave",function(g,h){s.updateStatusBar("upload-image",s.options.imageTexts.sbInit),h.stopPropagation(),h.preventDefault()}),this.codemirror.on("dragover",function(g,h){s.updateStatusBar("upload-image",s.options.imageTexts.sbOnDragEnter),h.stopPropagation(),h.preventDefault()}),this.codemirror.on("drop",function(g,h){h.stopPropagation(),h.preventDefault(),o.imageUploadFunction?s.uploadImagesUsingCustomFunction(o.imageUploadFunction,h.dataTransfer.files):s.uploadImages(h.dataTransfer.files)}),this.codemirror.on("paste",function(g,h){o.imageUploadFunction?s.uploadImagesUsingCustomFunction(o.imageUploadFunction,h.clipboardData.files):s.uploadImages(h.clipboardData.files)})}}function kc(){if(typeof localStorage=="object")try{localStorage.setItem("smde_localStorage",1),localStorage.removeItem("smde_localStorage")}catch{return!1}else return!1;return!0}var mc,Md,Vn,Ad,Dd,ra,hc,et,Pr,jd,Rd,Hd,Bd,Wd,Ud,wc=Cd(()=>{mc=/Mac/.test(navigator.platform),Md=new RegExp(/()+?/g),Vn={toggleBold:Fi,toggleItalic:Ni,drawLink:Gi,toggleHeadingSmaller:Jn,toggleHeadingBigger:Ri,drawImage:Zi,toggleBlockquote:ji,toggleOrderedList:$i,toggleUnorderedList:Ui,toggleCodeBlock:Pi,togglePreview:Ji,toggleStrikethrough:Oi,toggleHeading1:Hi,toggleHeading2:Bi,toggleHeading3:Wi,toggleHeading4:na,toggleHeading5:ia,toggleHeading6:oa,cleanBlock:Ki,drawTable:Xi,drawHorizontalRule:Yi,undo:Qi,redo:Vi,toggleSideBySide:bn,toggleFullScreen:jr},Ad={toggleBold:"Cmd-B",toggleItalic:"Cmd-I",drawLink:"Cmd-K",toggleHeadingSmaller:"Cmd-H",toggleHeadingBigger:"Shift-Cmd-H",toggleHeading1:"Ctrl+Alt+1",toggleHeading2:"Ctrl+Alt+2",toggleHeading3:"Ctrl+Alt+3",toggleHeading4:"Ctrl+Alt+4",toggleHeading5:"Ctrl+Alt+5",toggleHeading6:"Ctrl+Alt+6",cleanBlock:"Cmd-E",drawImage:"Cmd-Alt-I",toggleBlockquote:"Cmd-'",toggleOrderedList:"Cmd-Alt-L",toggleUnorderedList:"Cmd-L",toggleCodeBlock:"Cmd-Alt-C",togglePreview:"Cmd-P",toggleSideBySide:"F9",toggleFullScreen:"F11"},Dd=function(o){for(var p in Vn)if(Vn[p]===o)return p;return null},ra=function(){var o=!1;return function(p){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(p)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(p.substr(0,4)))&&(o=!0)}(navigator.userAgent||navigator.vendor||window.opera),o};hc="";et={bold:"fa fa-bold",italic:"fa fa-italic",strikethrough:"fa fa-strikethrough",heading:"fa fa-header fa-heading","heading-smaller":"fa fa-header fa-heading header-smaller","heading-bigger":"fa fa-header fa-heading header-bigger","heading-1":"fa fa-header fa-heading header-1","heading-2":"fa fa-header fa-heading header-2","heading-3":"fa fa-header fa-heading header-3",code:"fa fa-code",quote:"fa fa-quote-left","ordered-list":"fa fa-list-ol","unordered-list":"fa fa-list-ul","clean-block":"fa fa-eraser",link:"fa fa-link",image:"fa fa-image","upload-image":"fa fa-image",table:"fa fa-table","horizontal-rule":"fa fa-minus",preview:"fa fa-eye","side-by-side":"fa fa-columns",fullscreen:"fa fa-arrows-alt",guide:"fa fa-question-circle",undo:"fa fa-undo",redo:"fa fa-repeat fa-redo"},Pr={bold:{name:"bold",action:Fi,className:et.bold,title:"Bold",default:!0},italic:{name:"italic",action:Ni,className:et.italic,title:"Italic",default:!0},strikethrough:{name:"strikethrough",action:Oi,className:et.strikethrough,title:"Strikethrough"},heading:{name:"heading",action:Jn,className:et.heading,title:"Heading",default:!0},"heading-smaller":{name:"heading-smaller",action:Jn,className:et["heading-smaller"],title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:Ri,className:et["heading-bigger"],title:"Bigger Heading"},"heading-1":{name:"heading-1",action:Hi,className:et["heading-1"],title:"Big Heading"},"heading-2":{name:"heading-2",action:Bi,className:et["heading-2"],title:"Medium Heading"},"heading-3":{name:"heading-3",action:Wi,className:et["heading-3"],title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:Pi,className:et.code,title:"Code"},quote:{name:"quote",action:ji,className:et.quote,title:"Quote",default:!0},"unordered-list":{name:"unordered-list",action:Ui,className:et["unordered-list"],title:"Generic List",default:!0},"ordered-list":{name:"ordered-list",action:$i,className:et["ordered-list"],title:"Numbered List",default:!0},"clean-block":{name:"clean-block",action:Ki,className:et["clean-block"],title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:Gi,className:et.link,title:"Create Link",default:!0},image:{name:"image",action:Zi,className:et.image,title:"Insert Image",default:!0},"upload-image":{name:"upload-image",action:aa,className:et["upload-image"],title:"Import an image"},table:{name:"table",action:Xi,className:et.table,title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:Yi,className:et["horizontal-rule"],title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:Ji,className:et.preview,noDisable:!0,title:"Toggle Preview",default:!0},"side-by-side":{name:"side-by-side",action:bn,className:et["side-by-side"],noDisable:!0,noMobile:!0,title:"Toggle Side by Side",default:!0},fullscreen:{name:"fullscreen",action:jr,className:et.fullscreen,noDisable:!0,noMobile:!0,title:"Toggle Fullscreen",default:!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://www.markdownguide.org/basic-syntax/",className:et.guide,noDisable:!0,title:"Markdown Guide",default:!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:Qi,className:et.undo,noDisable:!0,title:"Undo"},redo:{name:"redo",action:Vi,className:et.redo,noDisable:!0,title:"Redo"}},jd={link:["[","](#url#)"],image:["![","](#url#)"],uploadedImage:["![](#url#)",""],table:["",` + +| Column 1 | Column 2 | Column 3 | +| -------- | -------- | -------- | +| Text | Text | Text | + +`],horizontalRule:["",` + +----- + +`]},Rd={link:"URL for the link:",image:"URL of the image:"},Hd={locale:"en-US",format:{hour:"2-digit",minute:"2-digit"}},Bd={bold:"**",code:"```",italic:"*"},Wd={sbInit:"Attach files by drag and dropping or pasting from clipboard.",sbOnDragEnter:"Drop image to upload it.",sbOnDrop:"Uploading image #images_names#...",sbProgress:"Uploading #file_name#: #progress#%",sbOnUploaded:"Uploaded #image_name#",sizeUnits:" B, KB, MB"},Ud={noFileGiven:"You must select a file.",typeNotAllowed:"This image type is not allowed.",fileTooLarge:`Image #image_name# is too big (#image_size#). +Maximum file size is #image_max_size#.`,importError:"Something went wrong when uploading the image #image_name#."};Te.prototype.uploadImages=function(o,p,v){if(o.length!==0){for(var C=[],b=0;b=2){var H=M[1];if(p.imagesPreviewHandler){var Z=p.imagesPreviewHandler(M[1]);typeof Z=="string"&&(H=Z)}if(window.EMDEimagesCache[H])T(R,window.EMDEimagesCache[H]);else{var ee=document.createElement("img");ee.onload=function(){window.EMDEimagesCache[H]={naturalWidth:ee.naturalWidth,naturalHeight:ee.naturalHeight,url:H},T(R,window.EMDEimagesCache[H])},ee.src=H}}}})}this.codemirror.on("update",function(){E()}),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element,(p.autofocus===!0||o.autofocus)&&this.codemirror.focus();var z=this.codemirror;setTimeout(function(){z.refresh()}.bind(z),0)};Te.prototype.cleanup=function(){document.removeEventListener("keydown",this.documentOnKeyDown)};Te.prototype.autosave=function(){if(kc()){var o=this;if(this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to use the autosave feature");return}this.options.autosave.binded!==!0&&(o.element.form!=null&&o.element.form!=null&&o.element.form.addEventListener("submit",function(){clearTimeout(o.autosaveTimeoutId),o.autosaveTimeoutId=void 0,localStorage.removeItem("smde_"+o.options.autosave.uniqueId)}),this.options.autosave.binded=!0),this.options.autosave.loaded!==!0&&(typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)=="string"&&localStorage.getItem("smde_"+this.options.autosave.uniqueId)!=""&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0);var p=o.value();p!==""?localStorage.setItem("smde_"+this.options.autosave.uniqueId,p):localStorage.removeItem("smde_"+this.options.autosave.uniqueId);var v=document.getElementById("autosaved");if(v!=null&&v!=null&&v!=""){var C=new Date,b=new Intl.DateTimeFormat([this.options.autosave.timeFormat.locale,"en-US"],this.options.autosave.timeFormat.format).format(C),k=this.options.autosave.text==null?"Autosaved: ":this.options.autosave.text;v.innerHTML=k+b}}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.clearAutosavedValue=function(){if(kc()){if(this.options.autosave==null||this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to clear the autosave value");return}localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.openBrowseFileWindow=function(o,p){var v=this,C=this.gui.toolbar.getElementsByClassName("imageInput")[0];C.click();function b(k){v.options.imageUploadFunction?v.uploadImagesUsingCustomFunction(v.options.imageUploadFunction,k.target.files):v.uploadImages(k.target.files,o,p),C.removeEventListener("change",b)}C.addEventListener("change",b)};Te.prototype.uploadImage=function(o,p,v){var C=this;p=p||function(S){yc(C,S)};function b(h){C.updateStatusBar("upload-image",h),setTimeout(function(){C.updateStatusBar("upload-image",C.options.imageTexts.sbInit)},1e4),v&&typeof v=="function"&&v(h),C.options.errorCallback(h)}function k(h){var S=C.options.imageTexts.sizeUnits.split(",");return h.replace("#image_name#",o.name).replace("#image_size#",Ii(o.size,S)).replace("#image_max_size#",Ii(C.options.imageMaxSize,S))}if(o.size>this.options.imageMaxSize){b(k(this.options.errorMessages.fileTooLarge));return}var s=new FormData;s.append("image",o),C.options.imageCSRFToken&&!C.options.imageCSRFHeader&&s.append(C.options.imageCSRFName,C.options.imageCSRFToken);var g=new XMLHttpRequest;g.upload.onprogress=function(h){if(h.lengthComputable){var S=""+Math.round(h.loaded*100/h.total);C.updateStatusBar("upload-image",C.options.imageTexts.sbProgress.replace("#file_name#",o.name).replace("#progress#",S))}},g.open("POST",this.options.imageUploadEndpoint),C.options.imageCSRFToken&&C.options.imageCSRFHeader&&g.setRequestHeader(C.options.imageCSRFName,C.options.imageCSRFToken),g.onload=function(){try{var h=JSON.parse(this.responseText)}catch{console.error("EasyMDE: The server did not return a valid json."),b(k(C.options.errorMessages.importError));return}this.status===200&&h&&!h.error&&h.data&&h.data.filePath?p((C.options.imagePathAbsolute?"":window.location.origin+"/")+h.data.filePath):h.error&&h.error in C.options.errorMessages?b(k(C.options.errorMessages[h.error])):h.error?b(k(h.error)):(console.error("EasyMDE: Received an unexpected response after uploading the image."+this.status+" ("+this.statusText+")"),b(k(C.options.errorMessages.importError)))},g.onerror=function(h){console.error("EasyMDE: An unexpected error occurred when trying to upload the image."+h.target.status+" ("+h.target.statusText+")"),b(C.options.errorMessages.importError)},g.send(s)};Te.prototype.uploadImageUsingCustomFunction=function(o,p){var v=this;function C(s){yc(v,s)}function b(s){var g=k(s);v.updateStatusBar("upload-image",g),setTimeout(function(){v.updateStatusBar("upload-image",v.options.imageTexts.sbInit)},1e4),v.options.errorCallback(g)}function k(s){var g=v.options.imageTexts.sizeUnits.split(",");return s.replace("#image_name#",p.name).replace("#image_size#",Ii(p.size,g)).replace("#image_max_size#",Ii(v.options.imageMaxSize,g))}o.apply(this,[p,C,b])};Te.prototype.setPreviewMaxHeight=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling,C=parseInt(window.getComputedStyle(p).paddingTop),b=parseInt(window.getComputedStyle(p).borderTopWidth),k=parseInt(this.options.maxHeight),s=k+C*2+b*2,g=s.toString()+"px";v.style.height=g};Te.prototype.createSideBySide=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling;if(!v||!v.classList.contains("editor-preview-side")){if(v=document.createElement("div"),v.className="editor-preview-side",this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var C=0;C{try{let w=S[S.length-1];if(w.origin==="+input"){let c="(https://)",d=w.text[w.text.length-1];if(d.endsWith(c)&&d!=="[]"+c){let T=w.from,E=w.to,y=w.text.length>1?0:T.ch;setTimeout(()=>{h.setSelection({line:E.line,ch:y+d.lastIndexOf("(")+1},{line:E.line,ch:y+d.lastIndexOf(")")})},25)}}}catch{}}),this.editor.codemirror.on("change",Alpine.debounce(()=>{this.editor&&(this.state=this.editor.value(),o&&this.$wire.call("$refresh"))},v??300)),p&&this.editor.codemirror.on("blur",()=>this.$wire.call("$refresh")),this.$watch("state",()=>{this.editor&&(this.editor.codemirror.hasFocus()||this.editor.value(this.state??""))})},destroy:function(){this.editor.cleanup(),this.editor=null},getToolbar:function(){let h=[];return s.includes("bold")&&h.push({name:"bold",action:EasyMDE.toggleBold,title:k.toolbar_buttons?.bold}),s.includes("italic")&&h.push({name:"italic",action:EasyMDE.toggleItalic,title:k.toolbar_buttons?.italic}),s.includes("strike")&&h.push({name:"strikethrough",action:EasyMDE.toggleStrikethrough,title:k.toolbar_buttons?.strike}),s.includes("link")&&h.push({name:"link",action:EasyMDE.drawLink,title:k.toolbar_buttons?.link}),["bold","italic","strike","link"].some(S=>s.includes(S))&&["heading"].some(S=>s.includes(S))&&h.push("|"),s.includes("heading")&&h.push({name:"heading",action:EasyMDE.toggleHeadingSmaller,title:k.toolbar_buttons?.heading}),["heading"].some(S=>s.includes(S))&&["blockquote","codeBlock","bulletList","orderedList"].some(S=>s.includes(S))&&h.push("|"),s.includes("blockquote")&&h.push({name:"quote",action:EasyMDE.toggleBlockquote,title:k.toolbar_buttons?.blockquote}),s.includes("codeBlock")&&h.push({name:"code",action:EasyMDE.toggleCodeBlock,title:k.toolbar_buttons?.code_block}),s.includes("bulletList")&&h.push({name:"unordered-list",action:EasyMDE.toggleUnorderedList,title:k.toolbar_buttons?.bullet_list}),s.includes("orderedList")&&h.push({name:"ordered-list",action:EasyMDE.toggleOrderedList,title:k.toolbar_buttons?.ordered_list}),["blockquote","codeBlock","bulletList","orderedList"].some(S=>s.includes(S))&&["table","attachFiles"].some(S=>s.includes(S))&&h.push("|"),s.includes("table")&&h.push({name:"table",action:EasyMDE.drawTable,title:k.toolbar_buttons?.table}),s.includes("attachFiles")&&h.push({name:"upload-image",action:EasyMDE.drawUploadedImage,title:k.toolbar_buttons?.attach_files}),["table","attachFiles"].some(S=>s.includes(S))&&["undo","redo"].some(S=>s.includes(S))&&h.push("|"),s.includes("undo")&&h.push({name:"undo",action:EasyMDE.undo,title:k.toolbar_buttons?.undo}),s.includes("redo")&&h.push({name:"redo",action:EasyMDE.redo,title:k.toolbar_buttons?.redo}),h}}}export{Kd as default}; diff --git a/public/js/filament/forms/components/rich-editor.js b/public/js/filament/forms/components/rich-editor.js new file mode 100644 index 000000000..ae241feaa --- /dev/null +++ b/public/js/filament/forms/components/rich-editor.js @@ -0,0 +1,143 @@ +var et=Object.create;var Z=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var it=Object.getOwnPropertyNames;var rt=Object.getPrototypeOf,ot=Object.prototype.hasOwnProperty;var st=(I,g)=>()=>(g||I((g={exports:{}}).exports,g),g.exports);var at=(I,g,x,b)=>{if(g&&typeof g=="object"||typeof g=="function")for(let y of it(g))!ot.call(I,y)&&y!==x&&Z(I,y,{get:()=>g[y],enumerable:!(b=nt(g,y))||b.enumerable});return I};var ut=(I,g,x)=>(x=I!=null?et(rt(I)):{},at(g||!I||!I.__esModule?Z(x,"default",{value:I,enumerable:!0}):x,I));var Q=st((q,V)=>{(function(){}).call(q),function(){var I;window.Set==null&&(window.Set=I=function(){function g(){this.clear()}return g.prototype.clear=function(){return this.values=[]},g.prototype.has=function(x){return this.values.indexOf(x)!==-1},g.prototype.add=function(x){return this.has(x)||this.values.push(x),this},g.prototype.delete=function(x){var b;return(b=this.values.indexOf(x))===-1?!1:(this.values.splice(b,1),!0)},g.prototype.forEach=function(){var x;return(x=this.values).forEach.apply(x,arguments)},g}())}.call(q),function(I){function g(){}function x(n,p){return function(){n.apply(p,arguments)}}function b(n){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");if(typeof n!="function")throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],d(n,this)}function y(n,p){for(;n._state===3;)n=n._value;return n._state===0?void n._deferreds.push(p):(n._handled=!0,void u(function(){var c=n._state===1?p.onFulfilled:p.onRejected;if(c===null)return void(n._state===1?h:o)(p.promise,n._value);var v;try{v=c(n._value)}catch(t){return void o(p.promise,t)}h(p.promise,v)}))}function h(n,p){try{if(p===n)throw new TypeError("A promise cannot be resolved with itself.");if(p&&(typeof p=="object"||typeof p=="function")){var c=p.then;if(p instanceof b)return n._state=3,n._value=p,void e(n);if(typeof c=="function")return void d(x(c,p),n)}n._state=1,n._value=p,e(n)}catch(v){o(n,v)}}function o(n,p){n._state=2,n._value=p,e(n)}function e(n){n._state===2&&n._deferreds.length===0&&setTimeout(function(){n._handled||s(n._value)},1);for(var p=0,c=n._deferreds.length;c>p;p++)y(n,n._deferreds[p]);n._deferreds=null}function a(n,p,c){this.onFulfilled=typeof n=="function"?n:null,this.onRejected=typeof p=="function"?p:null,this.promise=c}function d(n,p){var c=!1;try{n(function(v){c||(c=!0,h(p,v))},function(v){c||(c=!0,o(p,v))})}catch(v){if(c)return;c=!0,o(p,v)}}var i=setTimeout,u=typeof setImmediate=="function"&&setImmediate||function(n){i(n,1)},s=function(n){typeof console<"u"&&console&&console.warn("Possible Unhandled Promise Rejection:",n)};b.prototype.catch=function(n){return this.then(null,n)},b.prototype.then=function(n,p){var c=new b(g);return y(this,new a(n,p,c)),c},b.all=function(n){var p=Array.prototype.slice.call(n);return new b(function(c,v){function t(A,f){try{if(f&&(typeof f=="object"||typeof f=="function")){var m=f.then;if(typeof m=="function")return void m.call(f,function(C){t(A,C)},v)}p[A]=f,--r===0&&c(p)}catch(C){v(C)}}if(p.length===0)return c([]);for(var r=p.length,l=0;lv;v++)n[v].then(p,c)})},b._setImmediateFn=function(n){u=n},b._setUnhandledRejectionFn=function(n){s=n},typeof V<"u"&&V.exports?V.exports=b:I.Promise||(I.Promise=b)}(q),function(){var I=typeof window.customElements=="object",g=typeof document.registerElement=="function",x=I||g;x||(typeof WeakMap>"u"&&function(){var b=Object.defineProperty,y=Date.now()%1e9,h=function(){this.name="__st"+(1e9*Math.random()>>>0)+(y+++"__")};h.prototype={set:function(o,e){var a=o[this.name];return a&&a[0]===o?a[1]=e:b(o,this.name,{value:[o,e],writable:!0}),this},get:function(o){var e;return(e=o[this.name])&&e[0]===o?e[1]:void 0},delete:function(o){var e=o[this.name];return e&&e[0]===o?(e[0]=e[1]=void 0,!0):!1},has:function(o){var e=o[this.name];return e?e[0]===o:!1}},window.WeakMap=h}(),function(b){function y(D){C.push(D),m||(m=!0,r(o))}function h(D){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(D)||D}function o(){m=!1;var D=C;C=[],D.sort(function(E,w){return E.uid_-w.uid_});var R=!1;D.forEach(function(E){var w=E.takeRecords();e(E),w.length&&(E.callback_(w,E),R=!0)}),R&&o()}function e(D){D.nodes_.forEach(function(R){var E=l.get(R);E&&E.forEach(function(w){w.observer===D&&w.removeTransientObservers()})})}function a(D,R){for(var E=D;E;E=E.parentNode){var w=l.get(E);if(w)for(var k=0;k0){var w=R[E-1],k=v(w,D);if(k)return void(R[E-1]=k)}else y(this.observer);R[E]=D},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(D){var R=this.options;R.attributes&&D.addEventListener("DOMAttrModified",this,!0),R.characterData&&D.addEventListener("DOMCharacterDataModified",this,!0),R.childList&&D.addEventListener("DOMNodeInserted",this,!0),(R.childList||R.subtree)&&D.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(D){var R=this.options;R.attributes&&D.removeEventListener("DOMAttrModified",this,!0),R.characterData&&D.removeEventListener("DOMCharacterDataModified",this,!0),R.childList&&D.removeEventListener("DOMNodeInserted",this,!0),(R.childList||R.subtree)&&D.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(D){if(D!==this.target){this.addListeners_(D),this.transientObservedNodes.push(D);var R=l.get(D);R||l.set(D,R=[]),R.push(this)}},removeTransientObservers:function(){var D=this.transientObservedNodes;this.transientObservedNodes=[],D.forEach(function(R){this.removeListeners_(R);for(var E=l.get(R),w=0;w=0)){s.push(i);for(var n,p=i.querySelectorAll("link[rel="+d+"]"),c=0,v=p.length;v>c&&(n=p[c]);c++)n.import&&a(n.import,u,s);u(i)}}var d=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";b.forDocumentTree=e,b.forSubtree=y}),window.CustomElements.addModule(function(b){function y(E,w){return h(E,w)||o(E,w)}function h(E,w){return b.upgrade(E,w)?!0:void(w&&d(E))}function o(E,w){m(E,function(k){return h(k,w)?!0:void 0})}function e(E){O.push(E),L||(L=!0,setTimeout(a))}function a(){L=!1;for(var E,w=O,k=0,T=w.length;T>k&&(E=w[k]);k++)E();O=[]}function d(E){S?e(function(){i(E)}):i(E)}function i(E){E.__upgraded__&&!E.__attached&&(E.__attached=!0,E.attachedCallback&&E.attachedCallback())}function u(E){s(E),m(E,function(w){s(w)})}function s(E){S?e(function(){n(E)}):n(E)}function n(E){E.__upgraded__&&E.__attached&&(E.__attached=!1,E.detachedCallback&&E.detachedCallback())}function p(E){for(var w=E,k=window.wrap(document);w;){if(w==k)return!0;w=w.parentNode||w.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&w.host}}function c(E){if(E.shadowRoot&&!E.shadowRoot.__watched){f.dom&&console.log("watching shadow-root for: ",E.localName);for(var w=E.shadowRoot;w;)r(w),w=w.olderShadowRoot}}function v(E,w){if(f.dom){var k=w[0];if(k&&k.type==="childList"&&k.addedNodes&&k.addedNodes){for(var T=k.addedNodes[0];T&&T!==document&&!T.host;)T=T.parentNode;var N=T&&(T.URL||T._URL||T.host&&T.host.localName)||"";N=N.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",w.length,N||"")}var P=p(E);w.forEach(function(_){_.type==="childList"&&(D(_.addedNodes,function(F){F.localName&&y(F,P)}),D(_.removedNodes,function(F){F.localName&&u(F)}))}),f.dom&&console.groupEnd()}function t(E){for(E=window.wrap(E),E||(E=window.wrap(document));E.parentNode;)E=E.parentNode;var w=E.__observer;w&&(v(E,w.takeRecords()),a())}function r(E){if(!E.__observer){var w=new MutationObserver(v.bind(this,E));w.observe(E,{childList:!0,subtree:!0}),E.__observer=w}}function l(E){E=window.wrap(E),f.dom&&console.group("upgradeDocument: ",E.baseURI.split("/").pop());var w=E===window.wrap(document);y(E,w),r(E),f.dom&&console.groupEnd()}function A(E){C(E,l)}var f=b.flags,m=b.forSubtree,C=b.forDocumentTree,S=window.MutationObserver._isPolyfilled&&f["throttle-attached"];b.hasPolyfillMutations=S,b.hasThrottledAttached=S;var L=!1,O=[],D=Array.prototype.forEach.call.bind(Array.prototype.forEach),R=Element.prototype.createShadowRoot;R&&(Element.prototype.createShadowRoot=function(){var E=R.call(this);return window.CustomElements.watchShadow(this),E}),b.watchShadow=c,b.upgradeDocumentTree=A,b.upgradeDocument=l,b.upgradeSubtree=o,b.upgradeAll=y,b.attached=d,b.takeRecords=t}),window.CustomElements.addModule(function(b){function y(i,u){if(i.localName==="template"&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(i),!i.__upgraded__&&i.nodeType===Node.ELEMENT_NODE){var s=i.getAttribute("is"),n=b.getRegisteredDefinition(i.localName)||b.getRegisteredDefinition(s);if(n&&(s&&n.tag==i.localName||!s&&!n.extends))return h(i,n,u)}}function h(i,u,s){return d.upgrade&&console.group("upgrade:",i.localName),u.is&&i.setAttribute("is",u.is),o(i,u),i.__upgraded__=!0,a(i),s&&b.attached(i),b.upgradeSubtree(i,s),d.upgrade&&console.groupEnd(),i}function o(i,u){Object.__proto__||e(i,u.prototype,u.native),i.__proto__=u.prototype}function e(i,u,s){for(var n={},p=u;p!==s&&p!==HTMLElement.prototype;){for(var c,v=Object.getOwnPropertyNames(p),t=0;c=v[t];t++)n[c]||(Object.defineProperty(i,c,Object.getOwnPropertyDescriptor(p,c)),n[c]=1);p=Object.getPrototypeOf(p)}}function a(i){i.createdCallback&&i.createdCallback()}var d=b.flags;b.upgrade=y,b.upgradeWithDefinition=h,b.implementPrototype=o}),window.CustomElements.addModule(function(b){function y(E,w){var k=w||{};if(!E)throw new Error("document.registerElement: first argument `name` must not be empty");if(E.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(E)+"'.");if(e(E))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(E)+"'. The type name is invalid.");if(s(E))throw new Error("DuplicateDefinitionError: a type with name '"+String(E)+"' is already registered");return k.prototype||(k.prototype=Object.create(HTMLElement.prototype)),k.__name=E.toLowerCase(),k.extends&&(k.extends=k.extends.toLowerCase()),k.lifecycle=k.lifecycle||{},k.ancestry=a(k.extends),d(k),i(k),h(k.prototype),n(k.__name,k),k.ctor=p(k),k.ctor.prototype=k.prototype,k.prototype.constructor=k.ctor,b.ready&&l(document),k.ctor}function h(E){if(!E.setAttribute._polyfilled){var w=E.setAttribute;E.setAttribute=function(T,N){o.call(this,T,N,w)};var k=E.removeAttribute;E.removeAttribute=function(T){o.call(this,T,null,k)},E.setAttribute._polyfilled=!0}}function o(E,w,k){E=E.toLowerCase();var T=this.getAttribute(E);k.apply(this,arguments);var N=this.getAttribute(E);this.attributeChangedCallback&&N!==T&&this.attributeChangedCallback(E,T,N)}function e(E){for(var w=0;w=0&&m(T,HTMLElement),T)}function t(E,w){var k=E[w];E[w]=function(){var T=k.apply(this,arguments);return A(T),T}}var r,l=(b.isIE,b.upgradeDocumentTree),A=b.upgradeAll,f=b.upgradeWithDefinition,m=b.implementPrototype,C=b.useNative,S=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],L={},O="http://www.w3.org/1999/xhtml",D=document.createElement.bind(document),R=document.createElementNS.bind(document);r=Object.__proto__||C?function(E,w){return E instanceof w}:function(E,w){if(E instanceof w)return!0;for(var k=E;k;){if(k===w.prototype)return!0;k=k.__proto__}return!1},t(Node.prototype,"cloneNode"),t(document,"importNode"),document.registerElement=y,document.createElement=v,document.createElementNS=c,b.registry=L,b.instanceof=r,b.reservedTagList=S,b.getRegisteredDefinition=s,document.register=document.registerElement}),function(b){function y(){a(window.wrap(document)),window.CustomElements.ready=!0;var u=window.requestAnimationFrame||function(s){setTimeout(s,16)};u(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var h=b.useNative,o=b.initializeModules;if(b.isIE,h){var e=function(){};b.watchShadow=e,b.upgrade=e,b.upgradeAll=e,b.upgradeDocumentTree=e,b.upgradeSubtree=e,b.takeRecords=e,b.instanceof=function(u,s){return u instanceof s}}else o();var a=b.upgradeDocumentTree,d=b.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(u){return u}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(u){u.import&&d(wrap(u.import))}),document.readyState==="complete"||b.flags.eager)y();else if(document.readyState!=="interactive"||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var i=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(i,y)}else y()}(window.CustomElements))}.call(q),function(){}.call(q),function(){var I=this;(function(){(function(){this.Trix={VERSION:"1.3.1",ZERO_WIDTH_SPACE:"\uFEFF",NON_BREAKING_SPACE:"\xA0",OBJECT_REPLACEMENT_CHARACTER:"\uFFFC",browser:{composesExistingText:/Android.*Chrome/.test(navigator.userAgent),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:function(){var x,b,y,h;if(typeof InputEvent>"u")return!1;for(h=["data","getTargetRanges","inputType"],x=0,b=h.length;b>x;x++)if(y=h[x],!(y in InputEvent.prototype))return!1;return!0}()},config:{}}}).call(this)}).call(I);var g=I.Trix;(function(){(function(){g.BasicObject=function(){function x(){}var b,y,h;return x.proxyMethod=function(o){var e,a,d,i,u;return d=y(o),e=d.name,i=d.toMethod,u=d.toProperty,a=d.optional,this.prototype[e]=function(){var s,n;return s=i!=null?a?typeof this[i]=="function"?this[i]():void 0:this[i]():u!=null?this[u]:void 0,a?(n=s?.[e],n!=null?b.call(n,s,arguments):void 0):(n=s[e],b.call(n,s,arguments))}},y=function(o){var e,a;if(!(a=o.match(h)))throw new Error("can't parse @proxyMethod expression: "+o);return e={name:a[4]},a[2]!=null?e.toMethod=a[1]:e.toProperty=a[1],a[3]!=null&&(e.optional=!0),e},b=Function.prototype.apply,h=/^(.+?)(\(\))?(\?)?\.(.+?)$/,x}()}).call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.Object=function(y){function h(){this.id=++o}var o;return x(h,y),o=0,h.fromJSONString=function(e){return this.fromJSON(JSON.parse(e))},h.prototype.hasSameConstructorAs=function(e){return this.constructor===e?.constructor},h.prototype.isEqualTo=function(e){return this===e},h.prototype.inspect=function(){var e,a,d;return e=function(){var i,u,s;u=(i=this.contentsForInspection())!=null?i:{},s=[];for(a in u)d=u[a],s.push(a+"="+d);return s}.call(this),"#<"+this.constructor.name+":"+this.id+(e.length?" "+e.join(", "):"")+">"},h.prototype.contentsForInspection=function(){},h.prototype.toJSONString=function(){return JSON.stringify(this)},h.prototype.toUTF16String=function(){return g.UTF16String.box(this)},h.prototype.getCacheKey=function(){return this.id.toString()},h}(g.BasicObject)}.call(this),function(){g.extend=function(x){var b,y;for(b in x)y=x[b],this[b]=y;return this}}.call(this),function(){g.extend({defer:function(x){return setTimeout(x,1)}})}.call(this),function(){var x,b;g.extend({normalizeSpaces:function(y){return y.replace(RegExp(""+g.ZERO_WIDTH_SPACE,"g"),"").replace(RegExp(""+g.NON_BREAKING_SPACE,"g")," ")},normalizeNewlines:function(y){return y.replace(/\r\n/g,` +`)},breakableWhitespacePattern:RegExp("[^\\S"+g.NON_BREAKING_SPACE+"]"),squishBreakableWhitespace:function(y){return y.replace(RegExp(""+g.breakableWhitespacePattern.source,"g")," ").replace(/\ {2,}/g," ")},summarizeStringChange:function(y,h){var o,e,a,d;return y=g.UTF16String.box(y),h=g.UTF16String.box(h),h.lengtho&&y.charAt(o).isEqualTo(h.charAt(o));)o++;for(;e>o+1&&y.charAt(e-1).isEqualTo(h.charAt(a-1));)e--,a--;return{utf16String:y.slice(o,e),offset:o}}}.call(this),function(){g.extend({copyObject:function(x){var b,y,h;x==null&&(x={}),y={};for(b in x)h=x[b],y[b]=h;return y},objectsAreEqual:function(x,b){var y,h;if(x==null&&(x={}),b==null&&(b={}),Object.keys(x).length!==Object.keys(b).length)return!1;for(y in x)if(h=x[y],h!==b[y])return!1;return!0}})}.call(this),function(){var x=[].slice;g.extend({arraysAreEqual:function(b,y){var h,o,e,a;if(b==null&&(b=[]),y==null&&(y=[]),b.length!==y.length)return!1;for(o=h=0,e=b.length;e>h;o=++h)if(a=b[o],a!==y[o])return!1;return!0},arrayStartsWith:function(b,y){return b==null&&(b=[]),y==null&&(y=[]),g.arraysAreEqual(b.slice(0,y.length),y)},spliceArray:function(){var b,y,h;return y=arguments[0],b=2<=arguments.length?x.call(arguments,1):[],h=y.slice(0),h.splice.apply(h,b),h},summarizeArrayChange:function(b,y){var h,o,e,a,d,i,u,s,n,p,c;for(b==null&&(b=[]),y==null&&(y=[]),h=[],p=[],e=new Set,a=0,u=b.length;u>a;a++)c=b[a],e.add(c);for(o=new Set,d=0,s=y.length;s>d;d++)c=y[d],o.add(c),e.has(c)||h.push(c);for(i=0,n=b.length;n>i;i++)c=b[i],o.has(c)||p.push(c);return{added:h,removed:p}}})}.call(this),function(){var x,b,y,h;x=null,b=null,h=null,y=null,g.extend({getAllAttributeNames:function(){return x??(x=g.getTextAttributeNames().concat(g.getBlockAttributeNames()))},getBlockConfig:function(o){return g.config.blockAttributes[o]},getBlockAttributeNames:function(){return b??(b=Object.keys(g.config.blockAttributes))},getTextConfig:function(o){return g.config.textAttributes[o]},getTextAttributeNames:function(){return h??(h=Object.keys(g.config.textAttributes))},getListAttributeNames:function(){var o,e;return y??(y=function(){var a,d;a=g.config.blockAttributes,d=[];for(o in a)e=a[o].listAttribute,e!=null&&d.push(e);return d}())}})}.call(this),function(){var x,b,y,h,o,e=[].indexOf||function(a){for(var d=0,i=this.length;i>d;d++)if(d in this&&this[d]===a)return d;return-1};x=document.documentElement,b=(y=(h=(o=x.matchesSelector)!=null?o:x.webkitMatchesSelector)!=null?h:x.msMatchesSelector)!=null?y:x.mozMatchesSelector,g.extend({handleEvent:function(a,d){var i,u,s,n,p,c,v,t,r,l,A,f;return t=d??{},c=t.onElement,p=t.matchingSelector,f=t.withCallback,n=t.inPhase,v=t.preventDefault,l=t.times,u=c??x,r=p,i=f,A=n==="capturing",s=function(m){var C;return l!=null&&--l===0&&s.destroy(),C=g.findClosestElementFromNode(m.target,{matchingSelector:r}),C!=null&&(f?.call(C,m,C),v)?m.preventDefault():void 0},s.destroy=function(){return u.removeEventListener(a,s,A)},u.addEventListener(a,s,A),s},handleEventOnce:function(a,d){return d==null&&(d={}),d.times=1,g.handleEvent(a,d)},triggerEvent:function(a,d){var i,u,s,n,p,c,v;return v=d??{},c=v.onElement,u=v.bubbles,s=v.cancelable,i=v.attributes,n=c??x,u=u!==!1,s=s!==!1,p=document.createEvent("Events"),p.initEvent(a,u,s),i!=null&&g.extend.call(p,i),n.dispatchEvent(p)},elementMatchesSelector:function(a,d){return a?.nodeType===1?b.call(a,d):void 0},findClosestElementFromNode:function(a,d){var i,u,s;for(u=d??{},i=u.matchingSelector,s=u.untilNode;a!=null&&a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;if(a!=null){if(i==null)return a;if(a.closest&&s==null)return a.closest(i);for(;a&&a!==s;){if(g.elementMatchesSelector(a,i))return a;a=a.parentNode}}},findInnerElement:function(a){for(;a?.firstElementChild;)a=a.firstElementChild;return a},innerElementIsActive:function(a){return document.activeElement!==a&&g.elementContainsNode(a,document.activeElement)},elementContainsNode:function(a,d){if(a&&d)for(;d;){if(d===a)return!0;d=d.parentNode}},findNodeFromContainerAndOffset:function(a,d){var i;if(a)return a.nodeType===Node.TEXT_NODE?a:d===0?(i=a.firstChild)!=null?i:a:a.childNodes.item(d-1)},findElementFromContainerAndOffset:function(a,d){var i;return i=g.findNodeFromContainerAndOffset(a,d),g.findClosestElementFromNode(i)},findChildIndexOfNode:function(a){var d;if(a?.parentNode){for(d=0;a=a.previousSibling;)d++;return d}},removeNode:function(a){var d;return a!=null&&(d=a.parentNode)!=null?d.removeChild(a):void 0},walkTree:function(a,d){var i,u,s,n,p;return s=d??{},u=s.onlyNodesOfType,n=s.usingFilter,i=s.expandEntityReferences,p=function(){switch(u){case"element":return NodeFilter.SHOW_ELEMENT;case"text":return NodeFilter.SHOW_TEXT;case"comment":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}}(),document.createTreeWalker(a,p,n??null,i===!0)},tagName:function(a){var d;return a!=null&&(d=a.tagName)!=null?d.toLowerCase():void 0},makeElement:function(a,d){var i,u,s,n,p,c,v,t,r,l,A,f,m,C;if(d==null&&(d={}),typeof a=="object"?(d=a,a=d.tagName):d={attributes:d},s=document.createElement(a),d.editable!=null&&(d.attributes==null&&(d.attributes={}),d.attributes.contenteditable=d.editable),d.attributes){r=d.attributes;for(c in r)C=r[c],s.setAttribute(c,C)}if(d.style){l=d.style;for(c in l)C=l[c],s.style[c]=C}if(d.data){A=d.data;for(c in A)C=A[c],s.dataset[c]=C}if(d.className)for(f=d.className.split(" "),n=0,v=f.length;v>n;n++)u=f[n],s.classList.add(u);if(d.textContent&&(s.textContent=d.textContent),d.childNodes)for(m=[].concat(d.childNodes),p=0,t=m.length;t>p;p++)i=m[p],s.appendChild(i);return s},getBlockTagNames:function(){var a,d;return g.blockTagNames!=null?g.blockTagNames:g.blockTagNames=function(){var i,u;i=g.config.blockAttributes,u=[];for(a in i)d=i[a].tagName,d&&u.push(d);return u}()},nodeIsBlockContainer:function(a){return g.nodeIsBlockStartComment(a?.firstChild)},nodeProbablyIsBlockContainer:function(a){var d,i;return d=g.tagName(a),e.call(g.getBlockTagNames(),d)>=0&&(i=g.tagName(a.firstChild),e.call(g.getBlockTagNames(),i)<0)},nodeIsBlockStart:function(a,d){var i;return i=(d??{strict:!0}).strict,i?g.nodeIsBlockStartComment(a):g.nodeIsBlockStartComment(a)||!g.nodeIsBlockStartComment(a.firstChild)&&g.nodeProbablyIsBlockContainer(a)},nodeIsBlockStartComment:function(a){return g.nodeIsCommentNode(a)&&a?.data==="block"},nodeIsCommentNode:function(a){return a?.nodeType===Node.COMMENT_NODE},nodeIsCursorTarget:function(a,d){var i;return i=(d??{}).name,a?g.nodeIsTextNode(a)?a.data===g.ZERO_WIDTH_SPACE?i?a.parentNode.dataset.trixCursorTarget===i:!0:void 0:g.nodeIsCursorTarget(a.firstChild):void 0},nodeIsAttachmentElement:function(a){return g.elementMatchesSelector(a,g.AttachmentView.attachmentSelector)},nodeIsEmptyTextNode:function(a){return g.nodeIsTextNode(a)&&a?.data===""},nodeIsTextNode:function(a){return a?.nodeType===Node.TEXT_NODE}})}.call(this),function(){var x,b,y,h,o;x=g.copyObject,h=g.objectsAreEqual,g.extend({normalizeRange:y=function(e){var a;if(e!=null)return Array.isArray(e)||(e=[e,e]),[b(e[0]),b((a=e[1])!=null?a:e[0])]},rangeIsCollapsed:function(e){var a,d,i;if(e!=null)return d=y(e),i=d[0],a=d[1],o(i,a)},rangesAreEqual:function(e,a){var d,i,u,s,n,p;if(e!=null&&a!=null)return u=y(e),i=u[0],d=u[1],s=y(a),p=s[0],n=s[1],o(i,p)&&o(d,n)}}),b=function(e){return typeof e=="number"?e:x(e)},o=function(e,a){return typeof e=="number"?e===a:h(e,a)}}.call(this),function(){var x,b,y,h,o,e,a;g.registerElement=function(d,i){var u,s;return i==null&&(i={}),d=d.toLowerCase(),i=a(i),s=e(i),(u=s.defaultCSS)&&(delete s.defaultCSS,h(u,d)),o(d,s)},h=function(d,i){var u;return u=y(i),u.textContent=d.replace(/%t/g,i)},y=function(d){var i,u;return i=document.createElement("style"),i.setAttribute("type","text/css"),i.setAttribute("data-tag-name",d.toLowerCase()),(u=x())&&i.setAttribute("nonce",u),document.head.insertBefore(i,document.head.firstChild),i},x=function(){var d;return(d=b("trix-csp-nonce")||b("csp-nonce"))?d.getAttribute("content"):void 0},b=function(d){return document.head.querySelector("meta[name="+d+"]")},e=function(d){var i,u,s;u={};for(i in d)s=d[i],u[i]=typeof s=="function"?{value:s}:s;return u},a=function(){var d;return d=function(i){var u,s,n,p,c;for(u={},c=["initialize","connect","disconnect"],s=0,p=c.length;p>s;s++)n=c[s],u[n]=i[n],delete i[n];return u},window.customElements?function(i){var u,s,n,p,c;return c=d(i),n=c.initialize,u=c.connect,s=c.disconnect,n&&(p=u,u=function(){return this.initialized||(this.initialized=!0,n.call(this)),p?.call(this)}),u&&(i.connectedCallback=u),s&&(i.disconnectedCallback=s),i}:function(i){var u,s,n,p;return p=d(i),n=p.initialize,u=p.connect,s=p.disconnect,n&&(i.createdCallback=n),u&&(i.attachedCallback=u),s&&(i.detachedCallback=s),i}}(),o=function(){return window.customElements?function(d,i){var u;return u=function(){return typeof Reflect=="object"?Reflect.construct(HTMLElement,[],u):HTMLElement.apply(this)},Object.setPrototypeOf(u.prototype,HTMLElement.prototype),Object.setPrototypeOf(u,HTMLElement),Object.defineProperties(u.prototype,i),window.customElements.define(d,u),u}:function(d,i){var u,s;return s=Object.create(HTMLElement.prototype,i),u=document.registerElement(d,{prototype:s}),Object.defineProperty(s,"constructor",{value:u}),u}}()}.call(this),function(){var x,b;g.extend({getDOMSelection:function(){var y;return y=window.getSelection(),y.rangeCount>0?y:void 0},getDOMRange:function(){var y,h;return(y=(h=g.getDOMSelection())!=null?h.getRangeAt(0):void 0)&&!x(y)?y:void 0},setDOMRange:function(y){var h;return h=window.getSelection(),h.removeAllRanges(),h.addRange(y),g.selectionChangeObserver.update()}}),x=function(y){return b(y.startContainer)||b(y.endContainer)},b=function(y){return!Object.getPrototypeOf(y)}}.call(this),function(){var x;x={"application/x-trix-feature-detection":"test"},g.extend({dataTransferIsPlainText:function(b){var y,h,o;return o=b.getData("text/plain"),h=b.getData("text/html"),o&&h?(y=new DOMParser().parseFromString(h,"text/html").body,y.textContent===o?!y.querySelector("*"):void 0):o?.length},dataTransferIsWritable:function(b){var y,h;if(b?.setData!=null){for(y in x)if(h=x[y],!function(){try{return b.setData(y,h),b.getData(y)===h}catch{}}())return;return!0}},keyEventIsKeyboardCommand:function(){return/Mac|^iP/.test(navigator.platform)?function(b){return b.metaKey}:function(b){return b.ctrlKey}}()})}.call(this),function(){g.extend({RTL_PATTERN:/[\u05BE\u05C0\u05C3\u05D0-\u05EA\u05F0-\u05F4\u061B\u061F\u0621-\u063A\u0640-\u064A\u066D\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D5\u06E5\u06E6\u200F\u202B\u202E\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE72\uFE74\uFE76-\uFEFC]/,getDirection:function(){var x,b,y,h;return b=g.makeElement("input",{dir:"auto",name:"x",dirName:"x.dir"}),x=g.makeElement("form"),x.appendChild(b),y=function(){try{return new FormData(x).has(b.dirName)}catch{}}(),h=function(){try{return b.matches(":dir(ltr),:dir(rtl)")}catch{}}(),y?function(o){return b.value=o,new FormData(x).get(b.dirName)}:h?function(o){return b.value=o,b.matches(":dir(rtl)")?"rtl":"ltr"}:function(o){var e;return e=o.trim().charAt(0),g.RTL_PATTERN.test(e)?"rtl":"ltr"}}()})}.call(this),function(){}.call(this),function(){var x,b=function(h,o){function e(){this.constructor=h}for(var a in o)y.call(o,a)&&(h[a]=o[a]);return e.prototype=o.prototype,h.prototype=new e,h.__super__=o.prototype,h},y={}.hasOwnProperty;x=g.arraysAreEqual,g.Hash=function(h){function o(s){s==null&&(s={}),this.values=a(s),o.__super__.constructor.apply(this,arguments)}var e,a,d,i,u;return b(o,h),o.fromCommonAttributesOfObjects=function(s){var n,p,c,v,t,r;if(s==null&&(s=[]),!s.length)return new this;for(n=e(s[0]),c=n.getKeys(),r=s.slice(1),p=0,v=r.length;v>p;p++)t=r[p],c=n.getKeysCommonToHash(e(t)),n=n.slice(c);return n},o.box=function(s){return e(s)},o.prototype.add=function(s,n){return this.merge(i(s,n))},o.prototype.remove=function(s){return new g.Hash(a(this.values,s))},o.prototype.get=function(s){return this.values[s]},o.prototype.has=function(s){return s in this.values},o.prototype.merge=function(s){return new g.Hash(d(this.values,u(s)))},o.prototype.slice=function(s){var n,p,c,v;for(v={},n=0,c=s.length;c>n;n++)p=s[n],this.has(p)&&(v[p]=this.values[p]);return new g.Hash(v)},o.prototype.getKeys=function(){return Object.keys(this.values)},o.prototype.getKeysCommonToHash=function(s){var n,p,c,v,t;for(s=e(s),v=this.getKeys(),t=[],n=0,c=v.length;c>n;n++)p=v[n],this.values[p]===s.values[p]&&t.push(p);return t},o.prototype.isEqualTo=function(s){return x(this.toArray(),e(s).toArray())},o.prototype.isEmpty=function(){return this.getKeys().length===0},o.prototype.toArray=function(){var s,n,p;return(this.array!=null?this.array:this.array=function(){var c;n=[],c=this.values;for(s in c)p=c[s],n.push(s,p);return n}.call(this)).slice(0)},o.prototype.toObject=function(){return a(this.values)},o.prototype.toJSON=function(){return this.toObject()},o.prototype.contentsForInspection=function(){return{values:JSON.stringify(this.values)}},i=function(s,n){var p;return p={},p[s]=n,p},d=function(s,n){var p,c,v;c=a(s);for(p in n)v=n[p],c[p]=v;return c},a=function(s,n){var p,c,v,t,r;for(t={},r=Object.keys(s).sort(),p=0,v=r.length;v>p;p++)c=r[p],c!==n&&(t[c]=s[c]);return t},e=function(s){return s instanceof g.Hash?s:new g.Hash(s)},u=function(s){return s instanceof g.Hash?s.values:s},o}(g.Object)}.call(this),function(){g.ObjectGroup=function(){function x(b,y){var h,o;this.objects=b??[],o=y.depth,h=y.asTree,h&&(this.depth=o,this.objects=this.constructor.groupObjects(this.objects,{asTree:h,depth:this.depth+1}))}return x.groupObjects=function(b,y){var h,o,e,a,d,i,u,s,n;for(b==null&&(b=[]),n=y??{},e=n.depth,h=n.asTree,h&&e==null&&(e=0),s=[],d=0,i=b.length;i>d;d++){if(u=b[d],a){if(typeof u.canBeGrouped=="function"&&u.canBeGrouped(e)&&(typeof(o=a[a.length-1]).canBeGroupedWith=="function"&&o.canBeGroupedWith(u,e))){a.push(u);continue}s.push(new this(a,{depth:e,asTree:h})),a=null}typeof u.canBeGrouped=="function"&&u.canBeGrouped(e)?a=[u]:s.push(u)}return a&&s.push(new this(a,{depth:e,asTree:h})),s},x.prototype.getObjects=function(){return this.objects},x.prototype.getDepth=function(){return this.depth},x.prototype.getCacheKey=function(){var b,y,h,o,e;for(y=["objectGroup"],e=this.getObjects(),b=0,h=e.length;h>b;b++)o=e[b],y.push(o.getCacheKey());return y.join("/")},x}()}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.ObjectMap=function(y){function h(o){var e,a,d,i,u;for(o==null&&(o=[]),this.objects={},d=0,i=o.length;i>d;d++)u=o[d],a=JSON.stringify(u),(e=this.objects)[a]==null&&(e[a]=u)}return x(h,y),h.prototype.find=function(o){var e;return e=JSON.stringify(o),this.objects[e]},h}(g.BasicObject)}.call(this),function(){g.ElementStore=function(){function x(y){this.reset(y)}var b;return x.prototype.add=function(y){var h;return h=b(y),this.elements[h]=y},x.prototype.remove=function(y){var h,o;return h=b(y),(o=this.elements[h])?(delete this.elements[h],o):void 0},x.prototype.reset=function(y){var h,o,e;for(y==null&&(y=[]),this.elements={},o=0,e=y.length;e>o;o++)h=y[o],this.add(h);return y},b=function(y){return y.dataset.trixStoreKey},x}()}.call(this),function(){}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.Operation=function(y){function h(){return h.__super__.constructor.apply(this,arguments)}return x(h,y),h.prototype.isPerforming=function(){return this.performing===!0},h.prototype.hasPerformed=function(){return this.performed===!0},h.prototype.hasSucceeded=function(){return this.performed&&this.succeeded},h.prototype.hasFailed=function(){return this.performed&&!this.succeeded},h.prototype.getPromise=function(){return this.promise!=null?this.promise:this.promise=new Promise(function(o){return function(e,a){return o.performing=!0,o.perform(function(d,i){return o.succeeded=d,o.performing=!1,o.performed=!0,o.succeeded?e(i):a(i)})}}(this))},h.prototype.perform=function(o){return o(!1)},h.prototype.release=function(){var o;return(o=this.promise)!=null&&typeof o.cancel=="function"&&o.cancel(),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null},h.proxyMethod("getPromise().then"),h.proxyMethod("getPromise().catch"),h}(g.BasicObject)}.call(this),function(){var x,b,y,h,o,e=function(d,i){function u(){this.constructor=d}for(var s in i)a.call(i,s)&&(d[s]=i[s]);return u.prototype=i.prototype,d.prototype=new u,d.__super__=i.prototype,d},a={}.hasOwnProperty;g.UTF16String=function(d){function i(u,s){this.ucs2String=u,this.codepoints=s,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}return e(i,d),i.box=function(u){return u==null&&(u=""),u instanceof this?u:this.fromUCS2String(u?.toString())},i.fromUCS2String=function(u){return new this(u,h(u))},i.fromCodepoints=function(u){return new this(o(u),u)},i.prototype.offsetToUCS2Offset=function(u){return o(this.codepoints.slice(0,Math.max(0,u))).length},i.prototype.offsetFromUCS2Offset=function(u){return h(this.ucs2String.slice(0,Math.max(0,u))).length},i.prototype.slice=function(){var u;return this.constructor.fromCodepoints((u=this.codepoints).slice.apply(u,arguments))},i.prototype.charAt=function(u){return this.slice(u,u+1)},i.prototype.isEqualTo=function(u){return this.constructor.box(u).ucs2String===this.ucs2String},i.prototype.toJSON=function(){return this.ucs2String},i.prototype.getCacheKey=function(){return this.ucs2String},i.prototype.toString=function(){return this.ucs2String},i}(g.BasicObject),x=(typeof Array.from=="function"?Array.from("\u{1F47C}").length:void 0)===1,b=(typeof" ".codePointAt=="function"?" ".codePointAt(0):void 0)!=null,y=(typeof String.fromCodePoint=="function"?String.fromCodePoint(32,128124):void 0)===" \u{1F47C}",h=x&&b?function(d){return Array.from(d).map(function(i){return i.codePointAt(0)})}:function(d){var i,u,s,n,p;for(n=[],i=0,s=d.length;s>i;)p=d.charCodeAt(i++),p>=55296&&56319>=p&&s>i&&(u=d.charCodeAt(i++),(64512&u)===56320?p=((1023&p)<<10)+(1023&u)+65536:i--),n.push(p);return n},o=y?function(d){return String.fromCodePoint.apply(String,d)}:function(d){var i,u,s;return i=function(){var n,p,c;for(c=[],n=0,p=d.length;p>n;n++)s=d[n],u="",s>65535&&(s-=65536,u+=String.fromCharCode(s>>>10&1023|55296),s=56320|1023&s),c.push(u+String.fromCharCode(s));return c}(),i.join("")}}.call(this),function(){}.call(this),function(){}.call(this),function(){g.config.lang={attachFiles:"Attach Files",bold:"Bold",bullets:"Bullets",byte:"Byte",bytes:"Bytes",captionPlaceholder:"Add a caption\u2026",code:"Code",heading1:"Heading",indent:"Increase Level",italic:"Italic",link:"Link",numbers:"Numbers",outdent:"Decrease Level",quote:"Quote",redo:"Redo",remove:"Remove",strike:"Strikethrough",undo:"Undo",unlink:"Unlink",url:"URL",urlPlaceholder:"Enter a URL\u2026",GB:"GB",KB:"KB",MB:"MB",PB:"PB",TB:"TB"}}.call(this),function(){g.config.css={attachment:"attachment",attachmentCaption:"attachment__caption",attachmentCaptionEditor:"attachment__caption-editor",attachmentMetadata:"attachment__metadata",attachmentMetadataContainer:"attachment__metadata-container",attachmentName:"attachment__name",attachmentProgress:"attachment__progress",attachmentSize:"attachment__size",attachmentToolbar:"attachment__toolbar",attachmentGallery:"attachment-gallery"}}.call(this),function(){var x;g.config.blockAttributes=x={default:{tagName:"div",parse:!1},quote:{tagName:"blockquote",nestable:!0},heading1:{tagName:"h1",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:"pre",terminal:!0,text:{plaintext:!0}},bulletList:{tagName:"ul",parse:!1},bullet:{tagName:"li",listAttribute:"bulletList",group:!1,nestable:!0,test:function(b){return g.tagName(b.parentNode)===x[this.listAttribute].tagName}},numberList:{tagName:"ol",parse:!1},number:{tagName:"li",listAttribute:"numberList",group:!1,nestable:!0,test:function(b){return g.tagName(b.parentNode)===x[this.listAttribute].tagName}},attachmentGallery:{tagName:"div",exclusive:!0,terminal:!0,parse:!1,group:!1}}}.call(this),function(){var x,b;x=g.config.lang,b=[x.bytes,x.KB,x.MB,x.GB,x.TB,x.PB],g.config.fileSize={prefix:"IEC",precision:2,formatter:function(y){var h,o,e,a,d;switch(y){case 0:return"0 "+x.bytes;case 1:return"1 "+x.byte;default:return h=function(){switch(this.prefix){case"SI":return 1e3;case"IEC":return 1024}}.call(this),o=Math.floor(Math.log(y)/Math.log(h)),e=y/Math.pow(h,o),a=e.toFixed(this.precision),d=a.replace(/0*$/,"").replace(/\.$/,""),d+" "+b[o]}}}}.call(this),function(){g.config.textAttributes={bold:{tagName:"strong",inheritable:!0,parser:function(x){var b;return b=window.getComputedStyle(x),b.fontWeight==="bold"||b.fontWeight>=600}},italic:{tagName:"em",inheritable:!0,parser:function(x){var b;return b=window.getComputedStyle(x),b.fontStyle==="italic"}},href:{groupTagName:"a",parser:function(x){var b,y,h;return b=g.AttachmentView.attachmentSelector,h="a:not("+b+")",(y=g.findClosestElementFromNode(x,{matchingSelector:h}))?y.getAttribute("href"):void 0}},strike:{tagName:"del",inheritable:!0},frozen:{style:{backgroundColor:"highlight"}}}}.call(this),function(){var x,b,y,h,o;o="[data-trix-serialize=false]",h=["contenteditable","data-trix-id","data-trix-store-key","data-trix-mutable","data-trix-placeholder","tabindex"],b="data-trix-serialized-attributes",y="["+b+"]",x=new RegExp("","g"),g.extend({serializers:{"application/json":function(e){var a;if(e instanceof g.Document)a=e;else{if(!(e instanceof HTMLElement))throw new Error("unserializable object");a=g.Document.fromHTML(e.innerHTML)}return a.toSerializableDocument().toJSONString()},"text/html":function(e){var a,d,i,u,s,n,p,c,v,t,r,l,A,f,m,C,S;if(e instanceof g.Document)u=g.DocumentView.render(e);else{if(!(e instanceof HTMLElement))throw new Error("unserializable object");u=e.cloneNode(!0)}for(f=u.querySelectorAll(o),s=0,v=f.length;v>s;s++)i=f[s],g.removeNode(i);for(n=0,t=h.length;t>n;n++)for(a=h[n],m=u.querySelectorAll("["+a+"]"),p=0,r=m.length;r>p;p++)i=m[p],i.removeAttribute(a);for(C=u.querySelectorAll(y),c=0,l=C.length;l>c;c++){i=C[c];try{d=JSON.parse(i.getAttribute(b)),i.removeAttribute(b);for(A in d)S=d[A],i.setAttribute(A,S)}catch{}}return u.innerHTML.replace(x,"")}},deserializers:{"application/json":function(e){return g.Document.fromJSONString(e)},"text/html":function(e){return g.Document.fromHTML(e)}},serializeToContentType:function(e,a){var d;if(d=g.serializers[a])return d(e);throw new Error("unknown content type: "+a)},deserializeFromContentType:function(e,a){var d;if(d=g.deserializers[a])return d(e);throw new Error("unknown content type: "+a)}})}.call(this),function(){var x;x=g.config.lang,g.config.toolbar={getDefaultHTML:function(){return`
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
`}}}.call(this),function(){g.config.undoInterval=5e3}.call(this),function(){g.config.attachments={preview:{presentation:"gallery",caption:{name:!0,size:!0}},file:{caption:{size:!0}}}}.call(this),function(){g.config.keyNames={8:"backspace",9:"tab",13:"return",27:"escape",37:"left",39:"right",46:"delete",68:"d",72:"h",79:"o"}}.call(this),function(){g.config.input={level2Enabled:!0,getLevel:function(){return this.level2Enabled&&g.browser.supportsInputEvents?2:0},pickFiles:function(x){var b;return b=g.makeElement("input",{type:"file",multiple:!0,hidden:!0,id:this.fileInputId}),b.addEventListener("change",function(){return x(b.files),g.removeNode(b)}),g.removeNode(document.getElementById(this.fileInputId)),document.body.appendChild(b),b.click()},fileInputId:"trix-file-input-"+Date.now().toString(16)}}.call(this),function(){}.call(this),function(){g.registerElement("trix-toolbar",{defaultCSS:`%t { + display: block; +} + +%t { + white-space: nowrap; +} + +%t [data-trix-dialog] { + display: none; +} + +%t [data-trix-dialog][data-trix-active] { + display: block; +} + +%t [data-trix-dialog] [data-trix-validate]:invalid { + background-color: #ffdddd; +}`,initialize:function(){return this.innerHTML===""?this.innerHTML=g.config.toolbar.getDefaultHTML():void 0}})}.call(this),function(){var x=function(h,o){function e(){this.constructor=h}for(var a in o)b.call(o,a)&&(h[a]=o[a]);return e.prototype=o.prototype,h.prototype=new e,h.__super__=o.prototype,h},b={}.hasOwnProperty,y=[].indexOf||function(h){for(var o=0,e=this.length;e>o;o++)if(o in this&&this[o]===h)return o;return-1};g.ObjectView=function(h){function o(e,a){this.object=e,this.options=a??{},this.childViews=[],this.rootView=this}return x(o,h),o.prototype.getNodes=function(){var e,a,d,i,u;for(this.nodes==null&&(this.nodes=this.createNodes()),i=this.nodes,u=[],e=0,a=i.length;a>e;e++)d=i[e],u.push(d.cloneNode(!0));return u},o.prototype.invalidate=function(){var e;return this.nodes=null,this.childViews=[],(e=this.parentView)!=null?e.invalidate():void 0},o.prototype.invalidateViewForObject=function(e){var a;return(a=this.findViewForObject(e))!=null?a.invalidate():void 0},o.prototype.findOrCreateCachedChildView=function(e,a){var d;return(d=this.getCachedViewForObject(a))?this.recordChildView(d):(d=this.createChildView.apply(this,arguments),this.cacheViewForObject(d,a)),d},o.prototype.createChildView=function(e,a,d){var i;return d==null&&(d={}),a instanceof g.ObjectGroup&&(d.viewClass=e,e=g.ObjectGroupView),i=new e(a,d),this.recordChildView(i)},o.prototype.recordChildView=function(e){return e.parentView=this,e.rootView=this.rootView,this.childViews.push(e),e},o.prototype.getAllChildViews=function(){var e,a,d,i,u;for(u=[],i=this.childViews,a=0,d=i.length;d>a;a++)e=i[a],u.push(e),u=u.concat(e.getAllChildViews());return u},o.prototype.findElement=function(){return this.findElementForObject(this.object)},o.prototype.findElementForObject=function(e){var a;return(a=e?.id)?this.rootView.element.querySelector("[data-trix-id='"+a+"']"):void 0},o.prototype.findViewForObject=function(e){var a,d,i,u;for(i=this.getAllChildViews(),a=0,d=i.length;d>a;a++)if(u=i[a],u.object===e)return u},o.prototype.getViewCache=function(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?this.viewCache!=null?this.viewCache:this.viewCache={}:void 0},o.prototype.isViewCachingEnabled=function(){return this.shouldCacheViews!==!1},o.prototype.enableViewCaching=function(){return this.shouldCacheViews=!0},o.prototype.disableViewCaching=function(){return this.shouldCacheViews=!1},o.prototype.getCachedViewForObject=function(e){var a;return(a=this.getViewCache())!=null?a[e.getCacheKey()]:void 0},o.prototype.cacheViewForObject=function(e,a){var d;return(d=this.getViewCache())!=null?d[a.getCacheKey()]=e:void 0},o.prototype.garbageCollectCachedViews=function(){var e,a,d,i,u,s;if(e=this.getViewCache()){s=this.getAllChildViews().concat(this),d=function(){var n,p,c;for(c=[],n=0,p=s.length;p>n;n++)u=s[n],c.push(u.object.getCacheKey());return c}(),i=[];for(a in e)y.call(d,a)<0&&i.push(delete e[a]);return i}},o}(g.BasicObject)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.ObjectGroupView=function(y){function h(){h.__super__.constructor.apply(this,arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}return x(h,y),h.prototype.getChildViews=function(){var o,e,a,d;if(!this.childViews.length)for(d=this.objectGroup.getObjects(),o=0,e=d.length;e>o;o++)a=d[o],this.findOrCreateCachedChildView(this.viewClass,a,this.options);return this.childViews},h.prototype.createNodes=function(){var o,e,a,d,i,u,s,n,p;for(o=this.createContainerElement(),s=this.getChildViews(),e=0,d=s.length;d>e;e++)for(p=s[e],n=p.getNodes(),a=0,i=n.length;i>a;a++)u=n[a],o.appendChild(u);return[o]},h.prototype.createContainerElement=function(o){return o==null&&(o=this.objectGroup.getDepth()),this.getChildViews()[0].createContainerElement(o)},h}(g.ObjectView)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.Controller=function(y){function h(){return h.__super__.constructor.apply(this,arguments)}return x(h,y),h}(g.BasicObject)}.call(this),function(){var x,b,y,h,o,e,a=function(s,n){return function(){return s.apply(n,arguments)}},d=function(s,n){function p(){this.constructor=s}for(var c in n)i.call(n,c)&&(s[c]=n[c]);return p.prototype=n.prototype,s.prototype=new p,s.__super__=n.prototype,s},i={}.hasOwnProperty,u=[].indexOf||function(s){for(var n=0,p=this.length;p>n;n++)if(n in this&&this[n]===s)return n;return-1};x=g.findClosestElementFromNode,y=g.nodeIsEmptyTextNode,b=g.nodeIsBlockStartComment,h=g.normalizeSpaces,o=g.summarizeStringChange,e=g.tagName,g.MutationObserver=function(s){function n(r){this.element=r,this.didMutate=a(this.didMutate,this),this.observer=new window.MutationObserver(this.didMutate),this.start()}var p,c,v,t;return d(n,s),c="data-trix-mutable",v="["+c+"]",t={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0},n.prototype.start=function(){return this.reset(),this.observer.observe(this.element,t)},n.prototype.stop=function(){return this.observer.disconnect()},n.prototype.didMutate=function(r){var l,A;return(l=this.mutations).push.apply(l,this.findSignificantMutations(r)),this.mutations.length?((A=this.delegate)!=null&&typeof A.elementDidMutate=="function"&&A.elementDidMutate(this.getMutationSummary()),this.reset()):void 0},n.prototype.reset=function(){return this.mutations=[]},n.prototype.findSignificantMutations=function(r){var l,A,f,m;for(m=[],l=0,A=r.length;A>l;l++)f=r[l],this.mutationIsSignificant(f)&&m.push(f);return m},n.prototype.mutationIsSignificant=function(r){var l,A,f,m;if(this.nodeIsMutable(r.target))return!1;for(m=this.nodesModifiedByMutation(r),l=0,A=m.length;A>l;l++)if(f=m[l],this.nodeIsSignificant(f))return!0;return!1},n.prototype.nodeIsSignificant=function(r){return r!==this.element&&!this.nodeIsMutable(r)&&!y(r)},n.prototype.nodeIsMutable=function(r){return x(r,{matchingSelector:v})},n.prototype.nodesModifiedByMutation=function(r){var l;switch(l=[],r.type){case"attributes":r.attributeName!==c&&l.push(r.target);break;case"characterData":l.push(r.target.parentNode),l.push(r.target);break;case"childList":l.push.apply(l,r.addedNodes),l.push.apply(l,r.removedNodes)}return l},n.prototype.getMutationSummary=function(){return this.getTextMutationSummary()},n.prototype.getTextMutationSummary=function(){var r,l,A,f,m,C,S,L,O,D,R;for(L=this.getTextChangesFromCharacterData(),A=L.additions,m=L.deletions,R=this.getTextChangesFromChildList(),O=R.additions,C=0,S=O.length;S>C;C++)l=O[C],u.call(A,l)<0&&A.push(l);return m.push.apply(m,R.deletions),D={},(r=A.join(""))&&(D.textAdded=r),(f=m.join(""))&&(D.textDeleted=f),D},n.prototype.getMutationsByType=function(r){var l,A,f,m,C;for(m=this.mutations,C=[],l=0,A=m.length;A>l;l++)f=m[l],f.type===r&&C.push(f);return C},n.prototype.getTextChangesFromChildList=function(){var r,l,A,f,m,C,S,L,O,D,R;for(r=[],S=[],C=this.getMutationsByType("childList"),l=0,f=C.length;f>l;l++)m=C[l],r.push.apply(r,m.addedNodes),S.push.apply(S,m.removedNodes);return L=r.length===0&&S.length===1&&b(S[0]),L?(D=[],R=[` +`]):(D=p(r),R=p(S)),{additions:function(){var E,w,k;for(k=[],A=E=0,w=D.length;w>E;A=++E)O=D[A],O!==R[A]&&k.push(h(O));return k}(),deletions:function(){var E,w,k;for(k=[],A=E=0,w=R.length;w>E;A=++E)O=R[A],O!==D[A]&&k.push(h(O));return k}()}},n.prototype.getTextChangesFromCharacterData=function(){var r,l,A,f,m,C,S,L;return l=this.getMutationsByType("characterData"),l.length&&(L=l[0],A=l[l.length-1],m=h(L.oldValue),f=h(A.target.data),C=o(m,f),r=C.added,S=C.removed),{additions:r?[r]:[],deletions:S?[S]:[]}},p=function(r){var l,A,f,m;for(r==null&&(r=[]),m=[],l=0,A=r.length;A>l;l++)switch(f=r[l],f.nodeType){case Node.TEXT_NODE:m.push(f.data);break;case Node.ELEMENT_NODE:e(f)==="br"?m.push(` +`):m.push.apply(m,p(f.childNodes))}return m},n}(g.BasicObject)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.FileVerificationOperation=function(y){function h(o){this.file=o}return x(h,y),h.prototype.perform=function(o){var e;return e=new FileReader,e.onerror=function(){return o(!1)},e.onload=function(a){return function(){e.onerror=null;try{e.abort()}catch{}return o(!0,a.file)}}(this),e.readAsArrayBuffer(this.file)},h}(g.Operation)}.call(this),function(){var x,b,y=function(o,e){function a(){this.constructor=o}for(var d in e)h.call(e,d)&&(o[d]=e[d]);return a.prototype=e.prototype,o.prototype=new a,o.__super__=e.prototype,o},h={}.hasOwnProperty;x=g.handleEvent,b=g.innerElementIsActive,g.InputController=function(o){function e(a){var d;this.element=a,this.mutationObserver=new g.MutationObserver(this.element),this.mutationObserver.delegate=this;for(d in this.events)x(d,{onElement:this.element,withCallback:this.handlerFor(d)})}return y(e,o),e.prototype.events={},e.prototype.elementDidMutate=function(){},e.prototype.editorWillSyncDocumentView=function(){return this.mutationObserver.stop()},e.prototype.editorDidSyncDocumentView=function(){return this.mutationObserver.start()},e.prototype.requestRender=function(){var a;return(a=this.delegate)!=null&&typeof a.inputControllerDidRequestRender=="function"?a.inputControllerDidRequestRender():void 0},e.prototype.requestReparse=function(){var a;return(a=this.delegate)!=null&&typeof a.inputControllerDidRequestReparse=="function"&&a.inputControllerDidRequestReparse(),this.requestRender()},e.prototype.attachFiles=function(a){var d,i;return i=function(){var u,s,n;for(n=[],u=0,s=a.length;s>u;u++)d=a[u],n.push(new g.FileVerificationOperation(d));return n}(),Promise.all(i).then(function(u){return function(s){return u.handleInput(function(){var n,p;return(n=this.delegate)!=null&&n.inputControllerWillAttachFiles(),(p=this.responder)!=null&&p.insertFiles(s),this.requestRender()})}}(this))},e.prototype.handlerFor=function(a){return function(d){return function(i){return i.defaultPrevented?void 0:d.handleInput(function(){return b(this.element)?void 0:(this.eventName=a,this.events[a].call(this,i))})}}(this)},e.prototype.handleInput=function(a){var d,i;try{return(d=this.delegate)!=null&&d.inputControllerWillHandleInput(),a.call(this)}finally{(i=this.delegate)!=null&&i.inputControllerDidHandleInput()}},e.prototype.createLinkHTML=function(a,d){var i;return i=document.createElement("a"),i.href=a,i.textContent=d??a,i.outerHTML},e}(g.BasicObject)}.call(this),function(){var x,b,y,h,o,e,a,d,i,u,s,n,p,c=function(r,l){function A(){this.constructor=r}for(var f in l)v.call(l,f)&&(r[f]=l[f]);return A.prototype=l.prototype,r.prototype=new A,r.__super__=l.prototype,r},v={}.hasOwnProperty,t=[].indexOf||function(r){for(var l=0,A=this.length;A>l;l++)if(l in this&&this[l]===r)return l;return-1};i=g.makeElement,u=g.objectsAreEqual,p=g.tagName,b=g.browser,a=g.keyEventIsKeyboardCommand,h=g.dataTransferIsWritable,y=g.dataTransferIsPlainText,d=g.config.keyNames,g.Level0InputController=function(r){function l(){l.__super__.constructor.apply(this,arguments),this.resetInputSummary()}var A;return c(l,r),A=0,l.prototype.setInputSummary=function(f){var m,C;f==null&&(f={}),this.inputSummary.eventName=this.eventName;for(m in f)C=f[m],this.inputSummary[m]=C;return this.inputSummary},l.prototype.resetInputSummary=function(){return this.inputSummary={}},l.prototype.reset=function(){return this.resetInputSummary(),g.selectionChangeObserver.reset()},l.prototype.elementDidMutate=function(f){var m;return this.isComposing()?(m=this.delegate)!=null&&typeof m.inputControllerDidAllowUnhandledInput=="function"?m.inputControllerDidAllowUnhandledInput():void 0:this.handleInput(function(){return this.mutationIsSignificant(f)&&(this.mutationIsExpected(f)?this.requestRender():this.requestReparse()),this.reset()})},l.prototype.mutationIsExpected=function(f){var m,C,S,L,O,D,R,E,w,k;return R=f.textAdded,E=f.textDeleted,this.inputSummary.preferDocument?!0:(m=R!=null?R===this.inputSummary.textAdded:!this.inputSummary.textAdded,C=E!=null?this.inputSummary.didDelete:!this.inputSummary.didDelete,w=(R===` +`||R===` +`)&&!m,k=E===` +`&&!C,D=w&&!k||k&&!w,D&&(L=this.getSelectedRange())&&(S=w?R.replace(/\n$/,"").length||-1:R?.length||1,(O=this.responder)!=null?O.positionIsBlockBreak(L[1]+S):void 0)?!0:m&&C)},l.prototype.mutationIsSignificant=function(f){var m,C,S;return S=Object.keys(f).length>0,m=((C=this.compositionInput)!=null?C.getEndData():void 0)==="",S||!m},l.prototype.events={keydown:function(f){var m,C,S,L,O,D,R,E,w;if(this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0,L=d[f.keyCode]){for(C=this.keys,E=["ctrl","alt","shift","meta"],S=0,D=E.length;D>S;S++)R=E[S],f[R+"Key"]&&(R==="ctrl"&&(R="control"),C=C?.[R]);C?.[L]!=null&&(this.setInputSummary({keyName:L}),g.selectionChangeObserver.reset(),C[L].call(this,f))}return a(f)&&(m=String.fromCharCode(f.keyCode).toLowerCase())&&(O=function(){var k,T,N,P;for(N=["alt","shift"],P=[],k=0,T=N.length;T>k;k++)R=N[k],f[R+"Key"]&&P.push(R);return P}(),O.push(m),(w=this.delegate)!=null?w.inputControllerDidReceiveKeyboardCommand(O):void 0)?f.preventDefault():void 0},keypress:function(f){var m,C,S;if(this.inputSummary.eventName==null&&!f.metaKey&&(!f.ctrlKey||f.altKey))return(S=n(f))?((m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),(C=this.responder)!=null&&C.insertString(S),this.setInputSummary({textAdded:S,didDelete:this.selectionIsExpanded()})):void 0},textInput:function(f){var m,C,S,L;return m=f.data,L=this.inputSummary.textAdded,L&&L!==m&&L.toUpperCase()===m?(C=this.getSelectedRange(),this.setSelectedRange([C[0],C[1]+L.length]),(S=this.responder)!=null&&S.insertString(m),this.setInputSummary({textAdded:m}),this.setSelectedRange(C)):void 0},dragenter:function(f){return f.preventDefault()},dragstart:function(f){var m,C;return C=f.target,this.serializeSelectionToDataTransfer(f.dataTransfer),this.draggedRange=this.getSelectedRange(),(m=this.delegate)!=null&&typeof m.inputControllerDidStartDrag=="function"?m.inputControllerDidStartDrag():void 0},dragover:function(f){var m,C;return!this.draggedRange&&!this.canAcceptDataTransfer(f.dataTransfer)||(f.preventDefault(),m={x:f.clientX,y:f.clientY},u(m,this.draggingPoint))?void 0:(this.draggingPoint=m,(C=this.delegate)!=null&&typeof C.inputControllerDidReceiveDragOverPoint=="function"?C.inputControllerDidReceiveDragOverPoint(this.draggingPoint):void 0)},dragend:function(){var f;return(f=this.delegate)!=null&&typeof f.inputControllerDidCancelDrag=="function"&&f.inputControllerDidCancelDrag(),this.draggedRange=null,this.draggingPoint=null},drop:function(f){var m,C,S,L,O,D,R,E,w;return f.preventDefault(),S=(O=f.dataTransfer)!=null?O.files:void 0,L={x:f.clientX,y:f.clientY},(D=this.responder)!=null&&D.setLocationRangeFromPointRange(L),S?.length?this.attachFiles(S):this.draggedRange?((R=this.delegate)!=null&&R.inputControllerWillMoveText(),(E=this.responder)!=null&&E.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()):(C=f.dataTransfer.getData("application/x-trix-document"))&&(m=g.Document.fromJSONString(C),(w=this.responder)!=null&&w.insertDocument(m),this.requestRender()),this.draggedRange=null,this.draggingPoint=null},cut:function(f){var m,C;return(m=this.responder)!=null&&m.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(f.clipboardData)&&f.preventDefault(),(C=this.delegate)!=null&&C.inputControllerWillCutText(),this.deleteInDirection("backward"),f.defaultPrevented)?this.requestRender():void 0},copy:function(f){var m;return(m=this.responder)!=null&&m.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(f.clipboardData)?f.preventDefault():void 0},paste:function(f){var m,C,S,L,O,D,R,E,w,k,T,N,P,_,F,B,M,U,H,z,j,G,K;return m=(E=f.clipboardData)!=null?E:f.testClipboardData,R={clipboard:m},m==null||s(f)?void this.getPastedHTMLUsingHiddenElement(function(J){return function(tt){var $,X,Y;return R.type="text/html",R.html=tt,($=J.delegate)!=null&&$.inputControllerWillPaste(R),(X=J.responder)!=null&&X.insertHTML(R.html),J.requestRender(),(Y=J.delegate)!=null?Y.inputControllerDidPaste(R):void 0}}(this)):((L=m.getData("URL"))?(R.type="text/html",K=(D=m.getData("public.url-name"))?g.squishBreakableWhitespace(D).trim():L,R.html=this.createLinkHTML(L,K),(w=this.delegate)!=null&&w.inputControllerWillPaste(R),this.setInputSummary({textAdded:K,didDelete:this.selectionIsExpanded()}),(F=this.responder)!=null&&F.insertHTML(R.html),this.requestRender(),(B=this.delegate)!=null&&B.inputControllerDidPaste(R)):y(m)?(R.type="text/plain",R.string=m.getData("text/plain"),(M=this.delegate)!=null&&M.inputControllerWillPaste(R),this.setInputSummary({textAdded:R.string,didDelete:this.selectionIsExpanded()}),(U=this.responder)!=null&&U.insertString(R.string),this.requestRender(),(H=this.delegate)!=null&&H.inputControllerDidPaste(R)):(O=m.getData("text/html"))?(R.type="text/html",R.html=O,(z=this.delegate)!=null&&z.inputControllerWillPaste(R),(j=this.responder)!=null&&j.insertHTML(R.html),this.requestRender(),(G=this.delegate)!=null&&G.inputControllerDidPaste(R)):t.call(m.types,"Files")>=0&&(S=(k=m.items)!=null&&(T=k[0])!=null&&typeof T.getAsFile=="function"?T.getAsFile():void 0)&&(!S.name&&(C=o(S))&&(S.name="pasted-file-"+ ++A+"."+C),R.type="File",R.file=S,(N=this.delegate)!=null&&N.inputControllerWillAttachFiles(),(P=this.responder)!=null&&P.insertFile(R.file),this.requestRender(),(_=this.delegate)!=null&&_.inputControllerDidPaste(R)),f.preventDefault())},compositionstart:function(f){return this.getCompositionInput().start(f.data)},compositionupdate:function(f){return this.getCompositionInput().update(f.data)},compositionend:function(f){return this.getCompositionInput().end(f.data)},beforeinput:function(){return this.inputSummary.didInput=!0},input:function(f){return this.inputSummary.didInput=!0,f.stopPropagation()}},l.prototype.keys={backspace:function(f){var m;return(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),this.deleteInDirection("backward",f)},delete:function(f){var m;return(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),this.deleteInDirection("forward",f)},return:function(){var f,m;return this.setInputSummary({preferDocument:!0}),(f=this.delegate)!=null&&f.inputControllerWillPerformTyping(),(m=this.responder)!=null?m.insertLineBreak():void 0},tab:function(f){var m,C;return(m=this.responder)!=null&&m.canIncreaseNestingLevel()?((C=this.responder)!=null&&C.increaseNestingLevel(),this.requestRender(),f.preventDefault()):void 0},left:function(f){var m;return this.selectionIsInCursorTarget()?(f.preventDefault(),(m=this.responder)!=null?m.moveCursorInDirection("backward"):void 0):void 0},right:function(f){var m;return this.selectionIsInCursorTarget()?(f.preventDefault(),(m=this.responder)!=null?m.moveCursorInDirection("forward"):void 0):void 0},control:{d:function(f){var m;return(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),this.deleteInDirection("forward",f)},h:function(f){var m;return(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),this.deleteInDirection("backward",f)},o:function(f){var m,C;return f.preventDefault(),(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),(C=this.responder)!=null&&C.insertString(` +`,{updatePosition:!1}),this.requestRender()}},shift:{return:function(f){var m,C;return(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),(C=this.responder)!=null&&C.insertString(` +`),this.requestRender(),f.preventDefault()},tab:function(f){var m,C;return(m=this.responder)!=null&&m.canDecreaseNestingLevel()?((C=this.responder)!=null&&C.decreaseNestingLevel(),this.requestRender(),f.preventDefault()):void 0},left:function(f){return this.selectionIsInCursorTarget()?(f.preventDefault(),this.expandSelectionInDirection("backward")):void 0},right:function(f){return this.selectionIsInCursorTarget()?(f.preventDefault(),this.expandSelectionInDirection("forward")):void 0}},alt:{backspace:function(){var f;return this.setInputSummary({preferDocument:!1}),(f=this.delegate)!=null?f.inputControllerWillPerformTyping():void 0}},meta:{backspace:function(){var f;return this.setInputSummary({preferDocument:!1}),(f=this.delegate)!=null?f.inputControllerWillPerformTyping():void 0}}},l.prototype.getCompositionInput=function(){return this.isComposing()?this.compositionInput:this.compositionInput=new x(this)},l.prototype.isComposing=function(){return this.compositionInput!=null&&!this.compositionInput.isEnded()},l.prototype.deleteInDirection=function(f,m){var C;return((C=this.responder)!=null?C.deleteInDirection(f):void 0)!==!1?this.setInputSummary({didDelete:!0}):m?(m.preventDefault(),this.requestRender()):void 0},l.prototype.serializeSelectionToDataTransfer=function(f){var m,C;if(h(f))return m=(C=this.responder)!=null?C.getSelectedDocument().toSerializableDocument():void 0,f.setData("application/x-trix-document",JSON.stringify(m)),f.setData("text/html",g.DocumentView.render(m).innerHTML),f.setData("text/plain",m.toString().replace(/\n$/,"")),!0},l.prototype.canAcceptDataTransfer=function(f){var m,C,S,L,O,D;for(D={},L=(S=f?.types)!=null?S:[],m=0,C=L.length;C>m;m++)O=L[m],D[O]=!0;return D.Files||D["application/x-trix-document"]||D["text/html"]||D["text/plain"]},l.prototype.getPastedHTMLUsingHiddenElement=function(f){var m,C,S;return C=this.getSelectedRange(),S={position:"absolute",left:window.pageXOffset+"px",top:window.pageYOffset+"px",opacity:0},m=i({style:S,tagName:"div",editable:!0}),document.body.appendChild(m),m.focus(),requestAnimationFrame(function(L){return function(){var O;return O=m.innerHTML,g.removeNode(m),L.setSelectedRange(C),f(O)}}(this))},l.proxyMethod("responder?.getSelectedRange"),l.proxyMethod("responder?.setSelectedRange"),l.proxyMethod("responder?.expandSelectionInDirection"),l.proxyMethod("responder?.selectionIsInCursorTarget"),l.proxyMethod("responder?.selectionIsExpanded"),l}(g.InputController),o=function(r){var l,A;return(l=r.type)!=null&&(A=l.match(/\/(\w+)$/))!=null?A[1]:void 0},e=(typeof" ".codePointAt=="function"?" ".codePointAt(0):void 0)!=null,n=function(r){var l;return r.key&&e&&r.key.codePointAt(0)===r.keyCode?r.key:(r.which===null?l=r.keyCode:r.which!==0&&r.charCode!==0&&(l=r.charCode),l!=null&&d[l]!=="escape"?g.UTF16String.fromCodepoints([l]).toString():void 0)},s=function(r){var l,A,f,m,C,S,L,O,D,R;if(O=r.clipboardData){if(t.call(O.types,"text/html")>=0){for(D=O.types,f=0,S=D.length;S>f;f++)if(R=D[f],l=/^CorePasteboardFlavorType/.test(R),A=/^dyn\./.test(R)&&O.getData(R),L=l||A)return!0;return!1}return m=t.call(O.types,"com.apple.webarchive")>=0,C=t.call(O.types,"com.apple.flat-rtfd")>=0,m||C}},x=function(r){function l(A){var f;this.inputController=A,f=this.inputController,this.responder=f.responder,this.delegate=f.delegate,this.inputSummary=f.inputSummary,this.data={}}return c(l,r),l.prototype.start=function(A){var f,m;return this.data.start=A,this.isSignificant()?(this.inputSummary.eventName==="keypress"&&this.inputSummary.textAdded&&(f=this.responder)!=null&&f.deleteInDirection("left"),this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=(m=this.responder)!=null?m.getSelectedRange():void 0):void 0},l.prototype.update=function(A){var f;return this.data.update=A,this.isSignificant()&&(f=this.selectPlaceholder())?(this.forgetPlaceholder(),this.range=f):void 0},l.prototype.end=function(A){var f,m,C,S;return this.data.end=A,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),(f=this.delegate)!=null&&f.inputControllerWillPerformTyping(),(m=this.responder)!=null&&m.setSelectedRange(this.range),(C=this.responder)!=null&&C.insertString(this.data.end),(S=this.responder)!=null?S.setSelectedRange(this.range[0]+this.data.end.length):void 0):this.data.start!=null||this.data.update!=null?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset()},l.prototype.getEndData=function(){return this.data.end},l.prototype.isEnded=function(){return this.getEndData()!=null},l.prototype.isSignificant=function(){return b.composesExistingText?this.inputSummary.didInput:!0},l.prototype.canApplyToDocument=function(){var A,f;return((A=this.data.start)!=null?A.length:void 0)===0&&((f=this.data.end)!=null?f.length:void 0)>0&&this.range!=null},l.proxyMethod("inputController.setInputSummary"),l.proxyMethod("inputController.requestRender"),l.proxyMethod("inputController.requestReparse"),l.proxyMethod("responder?.selectionIsExpanded"),l.proxyMethod("responder?.insertPlaceholder"),l.proxyMethod("responder?.selectPlaceholder"),l.proxyMethod("responder?.forgetPlaceholder"),l}(g.BasicObject)}.call(this),function(){var x,b,y,h=function(d,i){return function(){return d.apply(i,arguments)}},o=function(d,i){function u(){this.constructor=d}for(var s in i)e.call(i,s)&&(d[s]=i[s]);return u.prototype=i.prototype,d.prototype=new u,d.__super__=i.prototype,d},e={}.hasOwnProperty,a=[].indexOf||function(d){for(var i=0,u=this.length;u>i;i++)if(i in this&&this[i]===d)return i;return-1};x=g.dataTransferIsPlainText,b=g.keyEventIsKeyboardCommand,y=g.objectsAreEqual,g.Level2InputController=function(d){function i(){return this.render=h(this.render,this),i.__super__.constructor.apply(this,arguments)}var u,s,n,p,c,v;return o(i,d),i.prototype.elementDidMutate=function(){var t;return this.scheduledRender?this.composing&&(t=this.delegate)!=null&&typeof t.inputControllerDidAllowUnhandledInput=="function"?t.inputControllerDidAllowUnhandledInput():void 0:this.reparse()},i.prototype.scheduleRender=function(){return this.scheduledRender!=null?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)},i.prototype.render=function(){var t;return cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing||(t=this.delegate)!=null&&t.render(),typeof this.afterRender=="function"&&this.afterRender(),this.afterRender=null},i.prototype.reparse=function(){var t;return(t=this.delegate)!=null?t.reparse():void 0},i.prototype.events={keydown:function(t){var r,l,A,f;if(b(t)){if(r=s(t),(f=this.delegate)!=null?f.inputControllerDidReceiveKeyboardCommand(r):void 0)return t.preventDefault()}else if(A=t.key,t.altKey&&(A+="+Alt"),t.shiftKey&&(A+="+Shift"),l=this.keys[A])return this.withEvent(t,l)},paste:function(t){var r,l,A,f,m,C,S,L,O;return n(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):p(t)?(t.preventDefault(),l={type:"text/plain",string:t.clipboardData.getData("text/plain")},(A=this.delegate)!=null&&A.inputControllerWillPaste(l),(f=this.responder)!=null&&f.insertString(l.string),this.render(),(m=this.delegate)!=null?m.inputControllerDidPaste(l):void 0):(r=(C=t.clipboardData)!=null?C.getData("URL"):void 0)?(t.preventDefault(),l={type:"text/html",html:this.createLinkHTML(r)},(S=this.delegate)!=null&&S.inputControllerWillPaste(l),(L=this.responder)!=null&&L.insertHTML(l.html),this.render(),(O=this.delegate)!=null?O.inputControllerDidPaste(l):void 0):void 0},beforeinput:function(t){var r;return(r=this.inputTypes[t.inputType])?(this.withEvent(t,r),this.scheduleRender()):void 0},input:function(){return g.selectionChangeObserver.reset()},dragstart:function(t){var r,l;return(r=this.responder)!=null&&r.selectionContainsAttachments()?(t.dataTransfer.setData("application/x-trix-dragging",!0),this.dragging={range:(l=this.responder)!=null?l.getSelectedRange():void 0,point:c(t)}):void 0},dragenter:function(t){return u(t)?t.preventDefault():void 0},dragover:function(t){var r,l;if(this.dragging){if(t.preventDefault(),r=c(t),!y(r,this.dragging.point))return this.dragging.point=r,(l=this.responder)!=null?l.setLocationRangeFromPointRange(r):void 0}else if(u(t))return t.preventDefault()},drop:function(t){var r,l,A,f;return this.dragging?(t.preventDefault(),(l=this.delegate)!=null&&l.inputControllerWillMoveText(),(A=this.responder)!=null&&A.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender()):u(t)?(t.preventDefault(),r=c(t),(f=this.responder)!=null&&f.setLocationRangeFromPointRange(r),this.attachFiles(t.dataTransfer.files)):void 0},dragend:function(){var t;return this.dragging?((t=this.responder)!=null&&t.setSelectedRange(this.dragging.range),this.dragging=null):void 0},compositionend:function(){return this.composing?(this.composing=!1,this.scheduleRender()):void 0}},i.prototype.keys={ArrowLeft:function(){var t,r;return(t=this.responder)!=null&&t.shouldManageMovingCursorInDirection("backward")?(this.event.preventDefault(),(r=this.responder)!=null?r.moveCursorInDirection("backward"):void 0):void 0},ArrowRight:function(){var t,r;return(t=this.responder)!=null&&t.shouldManageMovingCursorInDirection("forward")?(this.event.preventDefault(),(r=this.responder)!=null?r.moveCursorInDirection("forward"):void 0):void 0},Backspace:function(){var t,r,l;return(t=this.responder)!=null&&t.shouldManageDeletingInDirection("backward")?(this.event.preventDefault(),(r=this.delegate)!=null&&r.inputControllerWillPerformTyping(),(l=this.responder)!=null&&l.deleteInDirection("backward"),this.render()):void 0},Tab:function(){var t,r;return(t=this.responder)!=null&&t.canIncreaseNestingLevel()?(this.event.preventDefault(),(r=this.responder)!=null&&r.increaseNestingLevel(),this.render()):void 0},"Tab+Shift":function(){var t,r;return(t=this.responder)!=null&&t.canDecreaseNestingLevel()?(this.event.preventDefault(),(r=this.responder)!=null&&r.decreaseNestingLevel(),this.render()):void 0}},i.prototype.inputTypes={deleteByComposition:function(){return this.deleteInDirection("backward",{recordUndoEntry:!1})},deleteByCut:function(){return this.deleteInDirection("backward")},deleteByDrag:function(){return this.event.preventDefault(),this.withTargetDOMRange(function(){var t;return this.deleteByDragRange=(t=this.responder)!=null?t.getSelectedRange():void 0})},deleteCompositionText:function(){return this.deleteInDirection("backward",{recordUndoEntry:!1})},deleteContent:function(){return this.deleteInDirection("backward")},deleteContentBackward:function(){return this.deleteInDirection("backward")},deleteContentForward:function(){return this.deleteInDirection("forward")},deleteEntireSoftLine:function(){return this.deleteInDirection("forward")},deleteHardLineBackward:function(){return this.deleteInDirection("backward")},deleteHardLineForward:function(){return this.deleteInDirection("forward")},deleteSoftLineBackward:function(){return this.deleteInDirection("backward")},deleteSoftLineForward:function(){return this.deleteInDirection("forward")},deleteWordBackward:function(){return this.deleteInDirection("backward")},deleteWordForward:function(){return this.deleteInDirection("forward")},formatBackColor:function(){return this.activateAttributeIfSupported("backgroundColor",this.event.data)},formatBold:function(){return this.toggleAttributeIfSupported("bold")},formatFontColor:function(){return this.activateAttributeIfSupported("color",this.event.data)},formatFontName:function(){return this.activateAttributeIfSupported("font",this.event.data)},formatIndent:function(){var t;return(t=this.responder)!=null&&t.canIncreaseNestingLevel()?this.withTargetDOMRange(function(){var r;return(r=this.responder)!=null?r.increaseNestingLevel():void 0}):void 0},formatItalic:function(){return this.toggleAttributeIfSupported("italic")},formatJustifyCenter:function(){return this.toggleAttributeIfSupported("justifyCenter")},formatJustifyFull:function(){return this.toggleAttributeIfSupported("justifyFull")},formatJustifyLeft:function(){return this.toggleAttributeIfSupported("justifyLeft")},formatJustifyRight:function(){return this.toggleAttributeIfSupported("justifyRight")},formatOutdent:function(){var t;return(t=this.responder)!=null&&t.canDecreaseNestingLevel()?this.withTargetDOMRange(function(){var r;return(r=this.responder)!=null?r.decreaseNestingLevel():void 0}):void 0},formatRemove:function(){return this.withTargetDOMRange(function(){var t,r,l,A;A=[];for(t in(r=this.responder)!=null?r.getCurrentAttributes():void 0)A.push((l=this.responder)!=null?l.removeCurrentAttribute(t):void 0);return A})},formatSetBlockTextDirection:function(){return this.activateAttributeIfSupported("blockDir",this.event.data)},formatSetInlineTextDirection:function(){return this.activateAttributeIfSupported("textDir",this.event.data)},formatStrikeThrough:function(){return this.toggleAttributeIfSupported("strike")},formatSubscript:function(){return this.toggleAttributeIfSupported("sub")},formatSuperscript:function(){return this.toggleAttributeIfSupported("sup")},formatUnderline:function(){return this.toggleAttributeIfSupported("underline")},historyRedo:function(){var t;return(t=this.delegate)!=null?t.inputControllerWillPerformRedo():void 0},historyUndo:function(){var t;return(t=this.delegate)!=null?t.inputControllerWillPerformUndo():void 0},insertCompositionText:function(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition:function(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop:function(){var t,r;return(t=this.deleteByDragRange)?(this.deleteByDragRange=null,(r=this.delegate)!=null&&r.inputControllerWillMoveText(),this.withTargetDOMRange(function(){var l;return(l=this.responder)!=null?l.moveTextFromRange(t):void 0})):void 0},insertFromPaste:function(){var t,r,l,A,f,m,C,S,L,O,D;return t=this.event.dataTransfer,f={dataTransfer:t},(r=t.getData("URL"))?(this.event.preventDefault(),f.type="text/html",D=(A=t.getData("public.url-name"))?g.squishBreakableWhitespace(A).trim():r,f.html=this.createLinkHTML(r,D),(m=this.delegate)!=null&&m.inputControllerWillPaste(f),this.withTargetDOMRange(function(){var R;return(R=this.responder)!=null?R.insertHTML(f.html):void 0}),this.afterRender=function(R){return function(){var E;return(E=R.delegate)!=null?E.inputControllerDidPaste(f):void 0}}(this)):x(t)?(f.type="text/plain",f.string=t.getData("text/plain"),(C=this.delegate)!=null&&C.inputControllerWillPaste(f),this.withTargetDOMRange(function(){var R;return(R=this.responder)!=null?R.insertString(f.string):void 0}),this.afterRender=function(R){return function(){var E;return(E=R.delegate)!=null?E.inputControllerDidPaste(f):void 0}}(this)):(l=t.getData("text/html"))?(this.event.preventDefault(),f.type="text/html",f.html=l,(S=this.delegate)!=null&&S.inputControllerWillPaste(f),this.withTargetDOMRange(function(){var R;return(R=this.responder)!=null?R.insertHTML(f.html):void 0}),this.afterRender=function(R){return function(){var E;return(E=R.delegate)!=null?E.inputControllerDidPaste(f):void 0}}(this)):(L=t.files)!=null&&L.length?(f.type="File",f.file=t.files[0],(O=this.delegate)!=null&&O.inputControllerWillPaste(f),this.withTargetDOMRange(function(){var R;return(R=this.responder)!=null?R.insertFile(f.file):void 0}),this.afterRender=function(R){return function(){var E;return(E=R.delegate)!=null?E.inputControllerDidPaste(f):void 0}}(this)):void 0},insertFromYank:function(){return this.insertString(this.event.data)},insertLineBreak:function(){return this.insertString(` +`)},insertLink:function(){return this.activateAttributeIfSupported("href",this.event.data)},insertOrderedList:function(){return this.toggleAttributeIfSupported("number")},insertParagraph:function(){var t;return(t=this.delegate)!=null&&t.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var r;return(r=this.responder)!=null?r.insertLineBreak():void 0})},insertReplacementText:function(){return this.insertString(this.event.dataTransfer.getData("text/plain"),{updatePosition:!1})},insertText:function(){var t,r;return this.insertString((t=this.event.data)!=null?t:(r=this.event.dataTransfer)!=null?r.getData("text/plain"):void 0)},insertTranspose:function(){return this.insertString(this.event.data)},insertUnorderedList:function(){return this.toggleAttributeIfSupported("bullet")}},i.prototype.insertString=function(t,r){var l;return t==null&&(t=""),(l=this.delegate)!=null&&l.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var A;return(A=this.responder)!=null?A.insertString(t,r):void 0})},i.prototype.toggleAttributeIfSupported=function(t){var r;return a.call(g.getAllAttributeNames(),t)>=0?((r=this.delegate)!=null&&r.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var l;return(l=this.responder)!=null?l.toggleCurrentAttribute(t):void 0})):void 0},i.prototype.activateAttributeIfSupported=function(t,r){var l;return a.call(g.getAllAttributeNames(),t)>=0?((l=this.delegate)!=null&&l.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var A;return(A=this.responder)!=null?A.setCurrentAttribute(t,r):void 0})):void 0},i.prototype.deleteInDirection=function(t,r){var l,A,f,m;return f=(r??{recordUndoEntry:!0}).recordUndoEntry,f&&(m=this.delegate)!=null&&m.inputControllerWillPerformTyping(),A=function(C){return function(){var S;return(S=C.responder)!=null?S.deleteInDirection(t):void 0}}(this),(l=this.getTargetDOMRange({minLength:2}))?this.withTargetDOMRange(l,A):A()},i.prototype.withTargetDOMRange=function(t,r){var l;return typeof t=="function"&&(r=t,t=this.getTargetDOMRange()),t?(l=this.responder)!=null?l.withTargetDOMRange(t,r.bind(this)):void 0:(g.selectionChangeObserver.reset(),r.call(this))},i.prototype.getTargetDOMRange=function(t){var r,l,A,f;return A=(t??{minLength:0}).minLength,(f=typeof(r=this.event).getTargetRanges=="function"?r.getTargetRanges():void 0)&&f.length&&(l=v(f[0]),A===0||l.toString().length>=A)?l:void 0},v=function(t){var r;return r=document.createRange(),r.setStart(t.startContainer,t.startOffset),r.setEnd(t.endContainer,t.endOffset),r},i.prototype.withEvent=function(t,r){var l;this.event=t;try{l=r.call(this)}finally{this.event=null}return l},u=function(t){var r,l;return a.call((r=(l=t.dataTransfer)!=null?l.types:void 0)!=null?r:[],"Files")>=0},n=function(t){var r;return(r=t.clipboardData)?a.call(r.types,"Files")>=0&&r.types.length===1&&r.files.length>=1:void 0},p=function(t){var r;return(r=t.clipboardData)?a.call(r.types,"text/plain")>=0&&r.types.length===1:void 0},s=function(t){var r;return r=[],t.altKey&&r.push("alt"),t.shiftKey&&r.push("shift"),r.push(t.key),r},c=function(t){return{x:t.clientX,y:t.clientY}},i}(g.InputController)}.call(this),function(){var x,b,y,h,o,e,a,d,i=function(n,p){return function(){return n.apply(p,arguments)}},u=function(n,p){function c(){this.constructor=n}for(var v in p)s.call(p,v)&&(n[v]=p[v]);return c.prototype=p.prototype,n.prototype=new c,n.__super__=p.prototype,n},s={}.hasOwnProperty;b=g.defer,y=g.handleEvent,e=g.makeElement,d=g.tagName,a=g.config,o=a.lang,x=a.css,h=a.keyNames,g.AttachmentEditorController=function(n){function p(v,t,r,l){this.attachmentPiece=v,this.element=t,this.container=r,this.options=l??{},this.didBlurCaption=i(this.didBlurCaption,this),this.didChangeCaption=i(this.didChangeCaption,this),this.didInputCaption=i(this.didInputCaption,this),this.didKeyDownCaption=i(this.didKeyDownCaption,this),this.didClickActionButton=i(this.didClickActionButton,this),this.didClickToolbar=i(this.didClickToolbar,this),this.attachment=this.attachmentPiece.attachment,d(this.element)==="a"&&(this.element=this.element.firstChild),this.install()}var c;return u(p,n),c=function(v){return function(){var t;return t=v.apply(this,arguments),t.do(),this.undos==null&&(this.undos=[]),this.undos.push(t.undo)}},p.prototype.install=function(){return this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()?this.installCaptionEditor():void 0},p.prototype.uninstall=function(){var v,t;for(this.savePendingCaption();t=this.undos.pop();)t();return(v=this.delegate)!=null?v.didUninstallAttachmentEditor(this):void 0},p.prototype.savePendingCaption=function(){var v,t,r;return this.pendingCaption!=null?(v=this.pendingCaption,this.pendingCaption=null,v?(t=this.delegate)!=null&&typeof t.attachmentEditorDidRequestUpdatingAttributesForAttachment=="function"?t.attachmentEditorDidRequestUpdatingAttributesForAttachment({caption:v},this.attachment):void 0:(r=this.delegate)!=null&&typeof r.attachmentEditorDidRequestRemovingAttributeForAttachment=="function"?r.attachmentEditorDidRequestRemovingAttributeForAttachment("caption",this.attachment):void 0):void 0},p.prototype.makeElementMutable=c(function(){return{do:function(v){return function(){return v.element.dataset.trixMutable=!0}}(this),undo:function(v){return function(){return delete v.element.dataset.trixMutable}}(this)}}),p.prototype.addToolbar=c(function(){var v;return v=e({tagName:"div",className:x.attachmentToolbar,data:{trixMutable:!0},childNodes:e({tagName:"div",className:"trix-button-row",childNodes:e({tagName:"span",className:"trix-button-group trix-button-group--actions",childNodes:e({tagName:"button",className:"trix-button trix-button--remove",textContent:o.remove,attributes:{title:o.remove},data:{trixAction:"remove"}})})})}),this.attachment.isPreviewable()&&v.appendChild(e({tagName:"div",className:x.attachmentMetadataContainer,childNodes:e({tagName:"span",className:x.attachmentMetadata,childNodes:[e({tagName:"span",className:x.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),e({tagName:"span",className:x.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),y("click",{onElement:v,withCallback:this.didClickToolbar}),y("click",{onElement:v,matchingSelector:"[data-trix-action]",withCallback:this.didClickActionButton}),{do:function(t){return function(){return t.element.appendChild(v)}}(this),undo:function(){return function(){return g.removeNode(v)}}(this)}}),p.prototype.installCaptionEditor=c(function(){var v,t,r,l,A;return l=e({tagName:"textarea",className:x.attachmentCaptionEditor,attributes:{placeholder:o.captionPlaceholder},data:{trixMutable:!0}}),l.value=this.attachmentPiece.getCaption(),A=l.cloneNode(),A.classList.add("trix-autoresize-clone"),A.tabIndex=-1,v=function(){return A.value=l.value,l.style.height=A.scrollHeight+"px"},y("input",{onElement:l,withCallback:v}),y("input",{onElement:l,withCallback:this.didInputCaption}),y("keydown",{onElement:l,withCallback:this.didKeyDownCaption}),y("change",{onElement:l,withCallback:this.didChangeCaption}),y("blur",{onElement:l,withCallback:this.didBlurCaption}),r=this.element.querySelector("figcaption"),t=r.cloneNode(),{do:function(f){return function(){return r.style.display="none",t.appendChild(l),t.appendChild(A),t.classList.add(x.attachmentCaption+"--editing"),r.parentElement.insertBefore(t,r),v(),f.options.editCaption?b(function(){return l.focus()}):void 0}}(this),undo:function(){return g.removeNode(t),r.style.display=null}}}),p.prototype.didClickToolbar=function(v){return v.preventDefault(),v.stopPropagation()},p.prototype.didClickActionButton=function(v){var t,r;switch(t=v.target.getAttribute("data-trix-action")){case"remove":return(r=this.delegate)!=null?r.attachmentEditorDidRequestRemovalOfAttachment(this.attachment):void 0}},p.prototype.didKeyDownCaption=function(v){var t;return h[v.keyCode]==="return"?(v.preventDefault(),this.savePendingCaption(),(t=this.delegate)!=null&&typeof t.attachmentEditorDidRequestDeselectingAttachment=="function"?t.attachmentEditorDidRequestDeselectingAttachment(this.attachment):void 0):void 0},p.prototype.didInputCaption=function(v){return this.pendingCaption=v.target.value.replace(/\s/g," ").trim()},p.prototype.didChangeCaption=function(){return this.savePendingCaption()},p.prototype.didBlurCaption=function(){return this.savePendingCaption()},p}(g.BasicObject)}.call(this),function(){var x,b,y,h=function(e,a){function d(){this.constructor=e}for(var i in a)o.call(a,i)&&(e[i]=a[i]);return d.prototype=a.prototype,e.prototype=new d,e.__super__=a.prototype,e},o={}.hasOwnProperty;y=g.makeElement,x=g.config.css,g.AttachmentView=function(e){function a(){a.__super__.constructor.apply(this,arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}var d;return h(a,e),a.attachmentSelector="[data-trix-attachment]",a.prototype.createContentNodes=function(){return[]},a.prototype.createNodes=function(){var i,u,s,n,p,c,v;if(i=n=y({tagName:"figure",className:this.getClassName(),data:this.getData(),editable:!1}),(u=this.getHref())&&(n=y({tagName:"a",editable:!1,attributes:{href:u,tabindex:-1}}),i.appendChild(n)),this.attachment.hasContent())n.innerHTML=this.attachment.getContent();else for(v=this.createContentNodes(),s=0,p=v.length;p>s;s++)c=v[s],n.appendChild(c);return n.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=y({tagName:"progress",attributes:{class:x.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:["progressElement",this.attachment.id].join("/")}}),i.appendChild(this.progressElement)),[d("left"),i,d("right")]},a.prototype.createCaptionElement=function(){var i,u,s,n,p,c,v;return s=y({tagName:"figcaption",className:x.attachmentCaption}),(i=this.attachmentPiece.getCaption())?(s.classList.add(x.attachmentCaption+"--edited"),s.textContent=i):(u=this.getCaptionConfig(),u.name&&(n=this.attachment.getFilename()),u.size&&(c=this.attachment.getFormattedFilesize()),n&&(p=y({tagName:"span",className:x.attachmentName,textContent:n}),s.appendChild(p)),c&&(n&&s.appendChild(document.createTextNode(" ")),v=y({tagName:"span",className:x.attachmentSize,textContent:c}),s.appendChild(v))),s},a.prototype.getClassName=function(){var i,u;return u=[x.attachment,x.attachment+"--"+this.attachment.getType()],(i=this.attachment.getExtension())&&u.push(x.attachment+"--"+i),u.join(" ")},a.prototype.getData=function(){var i,u;return u={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},i=this.attachmentPiece.attributes,i.isEmpty()||(u.trixAttributes=JSON.stringify(i)),this.attachment.isPending()&&(u.trixSerialize=!1),u},a.prototype.getHref=function(){return b(this.attachment.getContent(),"a")?void 0:this.attachment.getHref()},a.prototype.getCaptionConfig=function(){var i,u,s;return s=this.attachment.getType(),i=g.copyObject((u=g.config.attachments[s])!=null?u.caption:void 0),s==="file"&&(i.name=!0),i},a.prototype.findProgressElement=function(){var i;return(i=this.findElement())!=null?i.querySelector("progress"):void 0},d=function(i){return y({tagName:"span",textContent:g.ZERO_WIDTH_SPACE,data:{trixCursorTarget:i,trixSerialize:!1}})},a.prototype.attachmentDidChangeUploadProgress=function(){var i,u;return u=this.attachment.getUploadProgress(),(i=this.findProgressElement())!=null?i.value=u:void 0},a}(g.ObjectView),b=function(e,a){var d;return d=y("div"),d.innerHTML=e??"",d.querySelector(a)}}.call(this),function(){var x,b=function(h,o){function e(){this.constructor=h}for(var a in o)y.call(o,a)&&(h[a]=o[a]);return e.prototype=o.prototype,h.prototype=new e,h.__super__=o.prototype,h},y={}.hasOwnProperty;x=g.makeElement,g.PreviewableAttachmentView=function(h){function o(){o.__super__.constructor.apply(this,arguments),this.attachment.previewDelegate=this}return b(o,h),o.prototype.createContentNodes=function(){return this.image=x({tagName:"img",attributes:{src:""},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]},o.prototype.createCaptionElement=function(){var e;return e=o.__super__.createCaptionElement.apply(this,arguments),e.textContent||e.setAttribute("data-trix-placeholder",g.config.lang.captionPlaceholder),e},o.prototype.refresh=function(e){var a;return e==null&&(e=(a=this.findElement())!=null?a.querySelector("img"):void 0),e?this.updateAttributesForImage(e):void 0},o.prototype.updateAttributesForImage=function(e){var a,d,i,u,s,n;return s=this.attachment.getURL(),d=this.attachment.getPreviewURL(),e.src=d||s,d===s?e.removeAttribute("data-trix-serialized-attributes"):(i=JSON.stringify({src:s}),e.setAttribute("data-trix-serialized-attributes",i)),n=this.attachment.getWidth(),a=this.attachment.getHeight(),n!=null&&(e.width=n),a!=null&&(e.height=a),u=["imageElement",this.attachment.id,e.src,e.width,e.height].join("/"),e.dataset.trixStoreKey=u},o.prototype.attachmentDidChangeAttributes=function(){return this.refresh(this.image),this.refresh()},o}(g.AttachmentView)}.call(this),function(){var x,b,y,h=function(e,a){function d(){this.constructor=e}for(var i in a)o.call(a,i)&&(e[i]=a[i]);return d.prototype=a.prototype,e.prototype=new d,e.__super__=a.prototype,e},o={}.hasOwnProperty;y=g.makeElement,x=g.findInnerElement,b=g.getTextConfig,g.PieceView=function(e){function a(){var i;a.__super__.constructor.apply(this,arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),i=this.options,this.textConfig=i.textConfig,this.context=i.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}var d;return h(a,e),a.prototype.createNodes=function(){var i,u,s,n,p,c;if(c=this.attachment?this.createAttachmentNodes():this.createStringNodes(),i=this.createElement()){for(s=x(i),u=0,n=c.length;n>u;u++)p=c[u],s.appendChild(p);c=[i]}return c},a.prototype.createAttachmentNodes=function(){var i,u;return i=this.attachment.isPreviewable()?g.PreviewableAttachmentView:g.AttachmentView,u=this.createChildView(i,this.piece.attachment,{piece:this.piece}),u.getNodes()},a.prototype.createStringNodes=function(){var i,u,s,n,p,c,v,t,r,l;if((t=this.textConfig)!=null&&t.plaintext)return[document.createTextNode(this.string)];for(v=[],r=this.string.split(` +`),s=u=0,n=r.length;n>u;s=++u)l=r[s],s>0&&(i=y("br"),v.push(i)),(p=l.length)&&(c=document.createTextNode(this.preserveSpaces(l)),v.push(c));return v},a.prototype.createElement=function(){var i,u,s,n,p,c,v,t,r;t={},c=this.attributes;for(n in c)if(r=c[n],(i=b(n))&&(i.tagName&&(p=y(i.tagName),s?(s.appendChild(p),s=p):u=s=p),i.styleProperty&&(t[i.styleProperty]=r),i.style)){v=i.style;for(n in v)r=v[n],t[n]=r}if(Object.keys(t).length){u==null&&(u=y("span"));for(n in t)r=t[n],u.style[n]=r}return u},a.prototype.createContainerElement=function(){var i,u,s,n,p;n=this.attributes;for(s in n)if(p=n[s],(u=b(s))&&u.groupTagName)return i={},i[s]=p,y(u.groupTagName,i)},d=g.NON_BREAKING_SPACE,a.prototype.preserveSpaces=function(i){return this.context.isLast&&(i=i.replace(/\ $/,d)),i=i.replace(/(\S)\ {3}(\S)/g,"$1 "+d+" $2").replace(/\ {2}/g,d+" ").replace(/\ {2}/g," "+d),(this.context.isFirst||this.context.followsWhitespace)&&(i=i.replace(/^\ /,d)),i},a}(g.ObjectView)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.TextView=function(y){function h(){h.__super__.constructor.apply(this,arguments),this.text=this.object,this.textConfig=this.options.textConfig}var o;return x(h,y),h.prototype.createNodes=function(){var e,a,d,i,u,s,n,p,c,v;for(s=[],p=g.ObjectGroup.groupObjects(this.getPieces()),i=p.length-1,d=a=0,u=p.length;u>a;d=++a)n=p[d],e={},d===0&&(e.isFirst=!0),d===i&&(e.isLast=!0),o(c)&&(e.followsWhitespace=!0),v=this.findOrCreateCachedChildView(g.PieceView,n,{textConfig:this.textConfig,context:e}),s.push.apply(s,v.getNodes()),c=n;return s},h.prototype.getPieces=function(){var e,a,d,i,u;for(i=this.text.getPieces(),u=[],e=0,a=i.length;a>e;e++)d=i[e],d.hasAttribute("blockBreak")||u.push(d);return u},o=function(e){return/\s$/.test(e?.toString())},h}(g.ObjectView)}.call(this),function(){var x,b,y,h=function(e,a){function d(){this.constructor=e}for(var i in a)o.call(a,i)&&(e[i]=a[i]);return d.prototype=a.prototype,e.prototype=new d,e.__super__=a.prototype,e},o={}.hasOwnProperty;y=g.makeElement,b=g.getBlockConfig,x=g.config.css,g.BlockView=function(e){function a(){a.__super__.constructor.apply(this,arguments),this.block=this.object,this.attributes=this.block.getAttributes()}return h(a,e),a.prototype.createNodes=function(){var d,i,u,s,n,p,c,v,t,r,l;if(i=document.createComment("block"),c=[i],this.block.isEmpty()?c.push(y("br")):(r=(v=b(this.block.getLastAttribute()))!=null?v.text:void 0,l=this.findOrCreateCachedChildView(g.TextView,this.block.text,{textConfig:r}),c.push.apply(c,l.getNodes()),this.shouldAddExtraNewlineElement()&&c.push(y("br"))),this.attributes.length)return c;for(t=g.config.blockAttributes.default.tagName,this.block.isRTL()&&(d={dir:"rtl"}),u=y({tagName:t,attributes:d}),s=0,n=c.length;n>s;s++)p=c[s],u.appendChild(p);return[u]},a.prototype.createContainerElement=function(d){var i,u,s,n,p;return i=this.attributes[d],p=b(i).tagName,d===0&&this.block.isRTL()&&(u={dir:"rtl"}),i==="attachmentGallery"&&(n=this.block.getBlockBreakPosition(),s=x.attachmentGallery+" "+x.attachmentGallery+"--"+n),y({tagName:p,className:s,attributes:u})},a.prototype.shouldAddExtraNewlineElement=function(){return/\n\n$/.test(this.block.toString())},a}(g.ObjectView)}.call(this),function(){var x,b,y=function(o,e){function a(){this.constructor=o}for(var d in e)h.call(e,d)&&(o[d]=e[d]);return a.prototype=e.prototype,o.prototype=new a,o.__super__=e.prototype,o},h={}.hasOwnProperty;x=g.defer,b=g.makeElement,g.DocumentView=function(o){function e(){e.__super__.constructor.apply(this,arguments),this.element=this.options.element,this.elementStore=new g.ElementStore,this.setDocument(this.object)}var a,d,i;return y(e,o),e.render=function(u){var s,n;return s=b("div"),n=new this(u,{element:s}),n.render(),n.sync(),s},e.prototype.setDocument=function(u){return u.isEqualTo(this.document)?void 0:this.document=this.object=u},e.prototype.render=function(){var u,s,n,p,c,v,t;if(this.childViews=[],this.shadowElement=b("div"),!this.document.isEmpty()){for(c=g.ObjectGroup.groupObjects(this.document.getBlocks(),{asTree:!0}),v=[],u=0,s=c.length;s>u;u++)p=c[u],t=this.findOrCreateCachedChildView(g.BlockView,p),v.push(function(){var r,l,A,f;for(A=t.getNodes(),f=[],r=0,l=A.length;l>r;r++)n=A[r],f.push(this.shadowElement.appendChild(n));return f}.call(this));return v}},e.prototype.isSynced=function(){return a(this.shadowElement,this.element)},e.prototype.sync=function(){var u;for(u=this.createDocumentFragmentForSync();this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(u),this.didSync()},e.prototype.didSync=function(){return this.elementStore.reset(d(this.element)),x(function(u){return function(){return u.garbageCollectCachedViews()}}(this))},e.prototype.createDocumentFragmentForSync=function(){var u,s,n,p,c,v,t,r,l,A;for(s=document.createDocumentFragment(),r=this.shadowElement.childNodes,n=0,c=r.length;c>n;n++)t=r[n],s.appendChild(t.cloneNode(!0));for(l=d(s),p=0,v=l.length;v>p;p++)u=l[p],(A=this.elementStore.remove(u))&&u.parentNode.replaceChild(A,u);return s},d=function(u){return u.querySelectorAll("[data-trix-store-key]")},a=function(u,s){return i(u.innerHTML)===i(s.innerHTML)},i=function(u){return u.replace(/ /g," ")},e}(g.ObjectView)}.call(this),function(){var x,b,y,h,o,e=function(i,u){return function(){return i.apply(u,arguments)}},a=function(i,u){function s(){this.constructor=i}for(var n in u)d.call(u,n)&&(i[n]=u[n]);return s.prototype=u.prototype,i.prototype=new s,i.__super__=u.prototype,i},d={}.hasOwnProperty;y=g.findClosestElementFromNode,h=g.handleEvent,o=g.innerElementIsActive,b=g.defer,x=g.AttachmentView.attachmentSelector,g.CompositionController=function(i){function u(s,n){this.element=s,this.composition=n,this.didClickAttachment=e(this.didClickAttachment,this),this.didBlur=e(this.didBlur,this),this.didFocus=e(this.didFocus,this),this.documentView=new g.DocumentView(this.composition.document,{element:this.element}),h("focus",{onElement:this.element,withCallback:this.didFocus}),h("blur",{onElement:this.element,withCallback:this.didBlur}),h("click",{onElement:this.element,matchingSelector:"a[contenteditable=false]",preventDefault:!0}),h("mousedown",{onElement:this.element,matchingSelector:x,withCallback:this.didClickAttachment}),h("click",{onElement:this.element,matchingSelector:"a"+x,preventDefault:!0})}return a(u,i),u.prototype.didFocus=function(){var s,n,p;return s=function(c){return function(){var v;return c.focused?void 0:(c.focused=!0,(v=c.delegate)!=null&&typeof v.compositionControllerDidFocus=="function"?v.compositionControllerDidFocus():void 0)}}(this),(n=(p=this.blurPromise)!=null?p.then(s):void 0)!=null?n:s()},u.prototype.didBlur=function(){return this.blurPromise=new Promise(function(s){return function(n){return b(function(){var p;return o(s.element)||(s.focused=null,(p=s.delegate)!=null&&typeof p.compositionControllerDidBlur=="function"&&p.compositionControllerDidBlur()),s.blurPromise=null,n()})}}(this))},u.prototype.didClickAttachment=function(s,n){var p,c,v;return p=this.findAttachmentForElement(n),c=y(s.target,{matchingSelector:"figcaption"})!=null,(v=this.delegate)!=null&&typeof v.compositionControllerDidSelectAttachment=="function"?v.compositionControllerDidSelectAttachment(p,{editCaption:c}):void 0},u.prototype.getSerializableElement=function(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element},u.prototype.render=function(){var s,n,p;return this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced()&&((s=this.delegate)!=null&&typeof s.compositionControllerWillSyncDocumentView=="function"&&s.compositionControllerWillSyncDocumentView(),this.documentView.sync(),(n=this.delegate)!=null&&typeof n.compositionControllerDidSyncDocumentView=="function"&&n.compositionControllerDidSyncDocumentView()),(p=this.delegate)!=null&&typeof p.compositionControllerDidRender=="function"?p.compositionControllerDidRender():void 0},u.prototype.rerenderViewForObject=function(s){return this.invalidateViewForObject(s),this.render()},u.prototype.invalidateViewForObject=function(s){return this.documentView.invalidateViewForObject(s)},u.prototype.isViewCachingEnabled=function(){return this.documentView.isViewCachingEnabled()},u.prototype.enableViewCaching=function(){return this.documentView.enableViewCaching()},u.prototype.disableViewCaching=function(){return this.documentView.disableViewCaching()},u.prototype.refreshViewCache=function(){return this.documentView.garbageCollectCachedViews()},u.prototype.isEditingAttachment=function(){return this.attachmentEditor!=null},u.prototype.installAttachmentEditorForAttachment=function(s,n){var p,c,v;if(((v=this.attachmentEditor)!=null?v.attachment:void 0)!==s&&(c=this.documentView.findElementForObject(s)))return this.uninstallAttachmentEditor(),p=this.composition.document.getAttachmentPieceForAttachment(s),this.attachmentEditor=new g.AttachmentEditorController(p,c,this.element,n),this.attachmentEditor.delegate=this},u.prototype.uninstallAttachmentEditor=function(){var s;return(s=this.attachmentEditor)!=null?s.uninstall():void 0},u.prototype.didUninstallAttachmentEditor=function(){return this.attachmentEditor=null,this.render()},u.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment=function(s,n){var p;return(p=this.delegate)!=null&&typeof p.compositionControllerWillUpdateAttachment=="function"&&p.compositionControllerWillUpdateAttachment(n),this.composition.updateAttributesForAttachment(s,n)},u.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment=function(s,n){var p;return(p=this.delegate)!=null&&typeof p.compositionControllerWillUpdateAttachment=="function"&&p.compositionControllerWillUpdateAttachment(n),this.composition.removeAttributeForAttachment(s,n)},u.prototype.attachmentEditorDidRequestRemovalOfAttachment=function(s){var n;return(n=this.delegate)!=null&&typeof n.compositionControllerDidRequestRemovalOfAttachment=="function"?n.compositionControllerDidRequestRemovalOfAttachment(s):void 0},u.prototype.attachmentEditorDidRequestDeselectingAttachment=function(s){var n;return(n=this.delegate)!=null&&typeof n.compositionControllerDidRequestDeselectingAttachment=="function"?n.compositionControllerDidRequestDeselectingAttachment(s):void 0},u.prototype.canSyncDocumentView=function(){return!this.isEditingAttachment()},u.prototype.findAttachmentForElement=function(s){return this.composition.document.getAttachmentById(parseInt(s.dataset.trixId,10))},u}(g.BasicObject)}.call(this),function(){var x,b,y,h=function(a,d){return function(){return a.apply(d,arguments)}},o=function(a,d){function i(){this.constructor=a}for(var u in d)e.call(d,u)&&(a[u]=d[u]);return i.prototype=d.prototype,a.prototype=new i,a.__super__=d.prototype,a},e={}.hasOwnProperty;b=g.handleEvent,y=g.triggerEvent,x=g.findClosestElementFromNode,g.ToolbarController=function(a){function d(f){this.element=f,this.didKeyDownDialogInput=h(this.didKeyDownDialogInput,this),this.didClickDialogButton=h(this.didClickDialogButton,this),this.didClickAttributeButton=h(this.didClickAttributeButton,this),this.didClickActionButton=h(this.didClickActionButton,this),this.attributes={},this.actions={},this.resetDialogInputs(),b("mousedown",{onElement:this.element,matchingSelector:i,withCallback:this.didClickActionButton}),b("mousedown",{onElement:this.element,matchingSelector:s,withCallback:this.didClickAttributeButton}),b("click",{onElement:this.element,matchingSelector:A,preventDefault:!0}),b("click",{onElement:this.element,matchingSelector:n,withCallback:this.didClickDialogButton}),b("keydown",{onElement:this.element,matchingSelector:p,withCallback:this.didKeyDownDialogInput})}var i,u,s,n,p,c,v,t,r,l,A;return o(d,a),s="[data-trix-attribute]",i="[data-trix-action]",A=s+", "+i,c="[data-trix-dialog]",u=c+"[data-trix-active]",n=c+" [data-trix-method]",p=c+" [data-trix-input]",d.prototype.didClickActionButton=function(f,m){var C,S,L;return(S=this.delegate)!=null&&S.toolbarDidClickButton(),f.preventDefault(),C=v(m),this.getDialog(C)?this.toggleDialog(C):(L=this.delegate)!=null?L.toolbarDidInvokeAction(C):void 0},d.prototype.didClickAttributeButton=function(f,m){var C,S,L;return(S=this.delegate)!=null&&S.toolbarDidClickButton(),f.preventDefault(),C=t(m),this.getDialog(C)?this.toggleDialog(C):(L=this.delegate)!=null&&L.toolbarDidToggleAttribute(C),this.refreshAttributeButtons()},d.prototype.didClickDialogButton=function(f,m){var C,S;return C=x(m,{matchingSelector:c}),S=m.getAttribute("data-trix-method"),this[S].call(this,C)},d.prototype.didKeyDownDialogInput=function(f,m){var C,S;return f.keyCode===13&&(f.preventDefault(),C=m.getAttribute("name"),S=this.getDialog(C),this.setAttribute(S)),f.keyCode===27?(f.preventDefault(),this.hideDialog()):void 0},d.prototype.updateActions=function(f){return this.actions=f,this.refreshActionButtons()},d.prototype.refreshActionButtons=function(){return this.eachActionButton(function(f){return function(m,C){return m.disabled=f.actions[C]===!1}}(this))},d.prototype.eachActionButton=function(f){var m,C,S,L,O;for(L=this.element.querySelectorAll(i),O=[],C=0,S=L.length;S>C;C++)m=L[C],O.push(f(m,v(m)));return O},d.prototype.updateAttributes=function(f){return this.attributes=f,this.refreshAttributeButtons()},d.prototype.refreshAttributeButtons=function(){return this.eachAttributeButton(function(f){return function(m,C){return m.disabled=f.attributes[C]===!1,f.attributes[C]||f.dialogIsVisible(C)?(m.setAttribute("data-trix-active",""),m.classList.add("trix-active")):(m.removeAttribute("data-trix-active"),m.classList.remove("trix-active"))}}(this))},d.prototype.eachAttributeButton=function(f){var m,C,S,L,O;for(L=this.element.querySelectorAll(s),O=[],C=0,S=L.length;S>C;C++)m=L[C],O.push(f(m,t(m)));return O},d.prototype.applyKeyboardCommand=function(f){var m,C,S,L,O,D,R;for(O=JSON.stringify(f.sort()),R=this.element.querySelectorAll("[data-trix-key]"),L=0,D=R.length;D>L;L++)if(m=R[L],S=m.getAttribute("data-trix-key").split("+"),C=JSON.stringify(S.sort()),C===O)return y("mousedown",{onElement:m}),!0;return!1},d.prototype.dialogIsVisible=function(f){var m;return(m=this.getDialog(f))?m.hasAttribute("data-trix-active"):void 0},d.prototype.toggleDialog=function(f){return this.dialogIsVisible(f)?this.hideDialog():this.showDialog(f)},d.prototype.showDialog=function(f){var m,C,S,L,O,D,R,E,w,k;for(this.hideDialog(),(R=this.delegate)!=null&&R.toolbarWillShowDialog(),S=this.getDialog(f),S.setAttribute("data-trix-active",""),S.classList.add("trix-active"),E=S.querySelectorAll("input[disabled]"),L=0,D=E.length;D>L;L++)C=E[L],C.removeAttribute("disabled");return(m=t(S))&&(O=l(S,f))&&(O.value=(w=this.attributes[m])!=null?w:"",O.select()),(k=this.delegate)!=null?k.toolbarDidShowDialog(f):void 0},d.prototype.setAttribute=function(f){var m,C,S;return m=t(f),C=l(f,m),C.willValidate&&!C.checkValidity()?(C.setAttribute("data-trix-validate",""),C.classList.add("trix-validate"),C.focus()):((S=this.delegate)!=null&&S.toolbarDidUpdateAttribute(m,C.value),this.hideDialog())},d.prototype.removeAttribute=function(f){var m,C;return m=t(f),(C=this.delegate)!=null&&C.toolbarDidRemoveAttribute(m),this.hideDialog()},d.prototype.hideDialog=function(){var f,m;return(f=this.element.querySelector(u))?(f.removeAttribute("data-trix-active"),f.classList.remove("trix-active"),this.resetDialogInputs(),(m=this.delegate)!=null?m.toolbarDidHideDialog(r(f)):void 0):void 0},d.prototype.resetDialogInputs=function(){var f,m,C,S,L;for(S=this.element.querySelectorAll(p),L=[],f=0,C=S.length;C>f;f++)m=S[f],m.setAttribute("disabled","disabled"),m.removeAttribute("data-trix-validate"),L.push(m.classList.remove("trix-validate"));return L},d.prototype.getDialog=function(f){return this.element.querySelector("[data-trix-dialog="+f+"]")},l=function(f,m){return m==null&&(m=t(f)),f.querySelector("[data-trix-input][name='"+m+"']")},v=function(f){return f.getAttribute("data-trix-action")},t=function(f){var m;return(m=f.getAttribute("data-trix-attribute"))!=null?m:f.getAttribute("data-trix-dialog-attribute")},r=function(f){return f.getAttribute("data-trix-dialog")},d}(g.BasicObject)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.ImagePreloadOperation=function(y){function h(o){this.url=o}return x(h,y),h.prototype.perform=function(o){var e;return e=new Image,e.onload=function(a){return function(){return e.width=a.width=e.naturalWidth,e.height=a.height=e.naturalHeight,o(!0,e)}}(this),e.onerror=function(){return o(!1)},e.src=this.url},h}(g.Operation)}.call(this),function(){var x=function(h,o){return function(){return h.apply(o,arguments)}},b=function(h,o){function e(){this.constructor=h}for(var a in o)y.call(o,a)&&(h[a]=o[a]);return e.prototype=o.prototype,h.prototype=new e,h.__super__=o.prototype,h},y={}.hasOwnProperty;g.Attachment=function(h){function o(e){e==null&&(e={}),this.releaseFile=x(this.releaseFile,this),o.__super__.constructor.apply(this,arguments),this.attributes=g.Hash.box(e),this.didChangeAttributes()}return b(o,h),o.previewablePattern=/^image(\/(gif|png|jpe?g)|$)/,o.attachmentForFile=function(e){var a,d;return d=this.attributesForFile(e),a=new this(d),a.setFile(e),a},o.attributesForFile=function(e){return new g.Hash({filename:e.name,filesize:e.size,contentType:e.type})},o.fromJSON=function(e){return new this(e)},o.prototype.getAttribute=function(e){return this.attributes.get(e)},o.prototype.hasAttribute=function(e){return this.attributes.has(e)},o.prototype.getAttributes=function(){return this.attributes.toObject()},o.prototype.setAttributes=function(e){var a,d,i;return e==null&&(e={}),a=this.attributes.merge(e),this.attributes.isEqualTo(a)?void 0:(this.attributes=a,this.didChangeAttributes(),(d=this.previewDelegate)!=null&&typeof d.attachmentDidChangeAttributes=="function"&&d.attachmentDidChangeAttributes(this),(i=this.delegate)!=null&&typeof i.attachmentDidChangeAttributes=="function"?i.attachmentDidChangeAttributes(this):void 0)},o.prototype.didChangeAttributes=function(){return this.isPreviewable()?this.preloadURL():void 0},o.prototype.isPending=function(){return this.file!=null&&!(this.getURL()||this.getHref())},o.prototype.isPreviewable=function(){return this.attributes.has("previewable")?this.attributes.get("previewable"):this.constructor.previewablePattern.test(this.getContentType())},o.prototype.getType=function(){return this.hasContent()?"content":this.isPreviewable()?"preview":"file"},o.prototype.getURL=function(){return this.attributes.get("url")},o.prototype.getHref=function(){return this.attributes.get("href")},o.prototype.getFilename=function(){var e;return(e=this.attributes.get("filename"))!=null?e:""},o.prototype.getFilesize=function(){return this.attributes.get("filesize")},o.prototype.getFormattedFilesize=function(){var e;return e=this.attributes.get("filesize"),typeof e=="number"?g.config.fileSize.formatter(e):""},o.prototype.getExtension=function(){var e;return(e=this.getFilename().match(/\.(\w+)$/))!=null?e[1].toLowerCase():void 0},o.prototype.getContentType=function(){return this.attributes.get("contentType")},o.prototype.hasContent=function(){return this.attributes.has("content")},o.prototype.getContent=function(){return this.attributes.get("content")},o.prototype.getWidth=function(){return this.attributes.get("width")},o.prototype.getHeight=function(){return this.attributes.get("height")},o.prototype.getFile=function(){return this.file},o.prototype.setFile=function(e){return this.file=e,this.isPreviewable()?this.preloadFile():void 0},o.prototype.releaseFile=function(){return this.releasePreloadedFile(),this.file=null},o.prototype.getUploadProgress=function(){var e;return(e=this.uploadProgress)!=null?e:0},o.prototype.setUploadProgress=function(e){var a;return this.uploadProgress!==e?(this.uploadProgress=e,(a=this.uploadProgressDelegate)!=null&&typeof a.attachmentDidChangeUploadProgress=="function"?a.attachmentDidChangeUploadProgress(this):void 0):void 0},o.prototype.toJSON=function(){return this.getAttributes()},o.prototype.getCacheKey=function(){return[o.__super__.getCacheKey.apply(this,arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join("/")},o.prototype.getPreviewURL=function(){return this.previewURL||this.preloadingURL},o.prototype.setPreviewURL=function(e){var a,d;return e!==this.getPreviewURL()?(this.previewURL=e,(a=this.previewDelegate)!=null&&typeof a.attachmentDidChangeAttributes=="function"&&a.attachmentDidChangeAttributes(this),(d=this.delegate)!=null&&typeof d.attachmentDidChangePreviewURL=="function"?d.attachmentDidChangePreviewURL(this):void 0):void 0},o.prototype.preloadURL=function(){return this.preload(this.getURL(),this.releaseFile)},o.prototype.preloadFile=function(){return this.file?(this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)):void 0},o.prototype.releasePreloadedFile=function(){return this.fileObjectURL?(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null):void 0},o.prototype.preload=function(e,a){var d;return e&&e!==this.getPreviewURL()?(this.preloadingURL=e,d=new g.ImagePreloadOperation(e),d.then(function(i){return function(u){var s,n;return n=u.width,s=u.height,i.getWidth()&&i.getHeight()||i.setAttributes({width:n,height:s}),i.preloadingURL=null,i.setPreviewURL(e),typeof a=="function"?a():void 0}}(this)).catch(function(i){return function(){return i.preloadingURL=null,typeof a=="function"?a():void 0}}(this))):void 0},o}(g.Object)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.Piece=function(y){function h(o,e){e==null&&(e={}),h.__super__.constructor.apply(this,arguments),this.attributes=g.Hash.box(e)}return x(h,y),h.types={},h.registerType=function(o,e){return e.type=o,this.types[o]=e},h.fromJSON=function(o){var e;return(e=this.types[o.type])?e.fromJSON(o):void 0},h.prototype.copyWithAttributes=function(o){return new this.constructor(this.getValue(),o)},h.prototype.copyWithAdditionalAttributes=function(o){return this.copyWithAttributes(this.attributes.merge(o))},h.prototype.copyWithoutAttribute=function(o){return this.copyWithAttributes(this.attributes.remove(o))},h.prototype.copy=function(){return this.copyWithAttributes(this.attributes)},h.prototype.getAttribute=function(o){return this.attributes.get(o)},h.prototype.getAttributesHash=function(){return this.attributes},h.prototype.getAttributes=function(){return this.attributes.toObject()},h.prototype.getCommonAttributes=function(){var o,e,a;return(a=pieceList.getPieceAtIndex(0))?(o=a.attributes,e=o.getKeys(),pieceList.eachPiece(function(d){return e=o.getKeysCommonToHash(d.attributes),o=o.slice(e)}),o.toObject()):{}},h.prototype.hasAttribute=function(o){return this.attributes.has(o)},h.prototype.hasSameStringValueAsPiece=function(o){return o!=null&&this.toString()===o.toString()},h.prototype.hasSameAttributesAsPiece=function(o){return o!=null&&(this.attributes===o.attributes||this.attributes.isEqualTo(o.attributes))},h.prototype.isBlockBreak=function(){return!1},h.prototype.isEqualTo=function(o){return h.__super__.isEqualTo.apply(this,arguments)||this.hasSameConstructorAs(o)&&this.hasSameStringValueAsPiece(o)&&this.hasSameAttributesAsPiece(o)},h.prototype.isEmpty=function(){return this.length===0},h.prototype.isSerializable=function(){return!0},h.prototype.toJSON=function(){return{type:this.constructor.type,attributes:this.getAttributes()}},h.prototype.contentsForInspection=function(){return{type:this.constructor.type,attributes:this.attributes.inspect()}},h.prototype.canBeGrouped=function(){return this.hasAttribute("href")},h.prototype.canBeGroupedWith=function(o){return this.getAttribute("href")===o.getAttribute("href")},h.prototype.getLength=function(){return this.length},h.prototype.canBeConsolidatedWith=function(){return!1},h}(g.Object)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.Piece.registerType("attachment",g.AttachmentPiece=function(y){function h(o){this.attachment=o,h.__super__.constructor.apply(this,arguments),this.length=1,this.ensureAttachmentExclusivelyHasAttribute("href"),this.attachment.hasContent()||this.removeProhibitedAttributes()}return x(h,y),h.fromJSON=function(o){return new this(g.Attachment.fromJSON(o.attachment),o.attributes)},h.permittedAttributes=["caption","presentation"],h.prototype.ensureAttachmentExclusivelyHasAttribute=function(o){return this.hasAttribute(o)?(this.attachment.hasAttribute(o)||this.attachment.setAttributes(this.attributes.slice(o)),this.attributes=this.attributes.remove(o)):void 0},h.prototype.removeProhibitedAttributes=function(){var o;return o=this.attributes.slice(this.constructor.permittedAttributes),o.isEqualTo(this.attributes)?void 0:this.attributes=o},h.prototype.getValue=function(){return this.attachment},h.prototype.isSerializable=function(){return!this.attachment.isPending()},h.prototype.getCaption=function(){var o;return(o=this.attributes.get("caption"))!=null?o:""},h.prototype.isEqualTo=function(o){var e;return h.__super__.isEqualTo.apply(this,arguments)&&this.attachment.id===(o!=null&&(e=o.attachment)!=null?e.id:void 0)},h.prototype.toString=function(){return g.OBJECT_REPLACEMENT_CHARACTER},h.prototype.toJSON=function(){var o;return o=h.__super__.toJSON.apply(this,arguments),o.attachment=this.attachment,o},h.prototype.getCacheKey=function(){return[h.__super__.getCacheKey.apply(this,arguments),this.attachment.getCacheKey()].join("/")},h.prototype.toConsole=function(){return JSON.stringify(this.toString())},h}(g.Piece))}.call(this),function(){var x,b=function(h,o){function e(){this.constructor=h}for(var a in o)y.call(o,a)&&(h[a]=o[a]);return e.prototype=o.prototype,h.prototype=new e,h.__super__=o.prototype,h},y={}.hasOwnProperty;x=g.normalizeNewlines,g.Piece.registerType("string",g.StringPiece=function(h){function o(e){o.__super__.constructor.apply(this,arguments),this.string=x(e),this.length=this.string.length}return b(o,h),o.fromJSON=function(e){return new this(e.string,e.attributes)},o.prototype.getValue=function(){return this.string},o.prototype.toString=function(){return this.string.toString()},o.prototype.isBlockBreak=function(){return this.toString()===` +`&&this.getAttribute("blockBreak")===!0},o.prototype.toJSON=function(){var e;return e=o.__super__.toJSON.apply(this,arguments),e.string=this.string,e},o.prototype.canBeConsolidatedWith=function(e){return e!=null&&this.hasSameConstructorAs(e)&&this.hasSameAttributesAsPiece(e)},o.prototype.consolidateWith=function(e){return new this.constructor(this.toString()+e.toString(),this.attributes)},o.prototype.splitAtOffset=function(e){var a,d;return e===0?(a=null,d=this):e===this.length?(a=this,d=null):(a=new this.constructor(this.string.slice(0,e),this.attributes),d=new this.constructor(this.string.slice(e),this.attributes)),[a,d]},o.prototype.toConsole=function(){var e;return e=this.string,e.length>15&&(e=e.slice(0,14)+"\u2026"),JSON.stringify(e.toString())},o}(g.Piece))}.call(this),function(){var x,b=function(o,e){function a(){this.constructor=o}for(var d in e)y.call(e,d)&&(o[d]=e[d]);return a.prototype=e.prototype,o.prototype=new a,o.__super__=e.prototype,o},y={}.hasOwnProperty,h=[].slice;x=g.spliceArray,g.SplittableList=function(o){function e(u){u==null&&(u=[]),e.__super__.constructor.apply(this,arguments),this.objects=u.slice(0),this.length=this.objects.length}var a,d,i;return b(e,o),e.box=function(u){return u instanceof this?u:new this(u)},e.prototype.indexOf=function(u){return this.objects.indexOf(u)},e.prototype.splice=function(){var u;return u=1<=arguments.length?h.call(arguments,0):[],new this.constructor(x.apply(null,[this.objects].concat(h.call(u))))},e.prototype.eachObject=function(u){var s,n,p,c,v,t;for(v=this.objects,t=[],n=s=0,p=v.length;p>s;n=++s)c=v[n],t.push(u(c,n));return t},e.prototype.insertObjectAtIndex=function(u,s){return this.splice(s,0,u)},e.prototype.insertSplittableListAtIndex=function(u,s){return this.splice.apply(this,[s,0].concat(h.call(u.objects)))},e.prototype.insertSplittableListAtPosition=function(u,s){var n,p,c;return c=this.splitObjectAtPosition(s),p=c[0],n=c[1],new this.constructor(p).insertSplittableListAtIndex(u,n)},e.prototype.editObjectAtIndex=function(u,s){return this.replaceObjectAtIndex(s(this.objects[u]),u)},e.prototype.replaceObjectAtIndex=function(u,s){return this.splice(s,1,u)},e.prototype.removeObjectAtIndex=function(u){return this.splice(u,1)},e.prototype.getObjectAtIndex=function(u){return this.objects[u]},e.prototype.getSplittableListInRange=function(u){var s,n,p,c;return p=this.splitObjectsAtRange(u),n=p[0],s=p[1],c=p[2],new this.constructor(n.slice(s,c+1))},e.prototype.selectSplittableList=function(u){var s,n;return n=function(){var p,c,v,t;for(v=this.objects,t=[],p=0,c=v.length;c>p;p++)s=v[p],u(s)&&t.push(s);return t}.call(this),new this.constructor(n)},e.prototype.removeObjectsInRange=function(u){var s,n,p,c;return p=this.splitObjectsAtRange(u),n=p[0],s=p[1],c=p[2],new this.constructor(n).splice(s,c-s+1)},e.prototype.transformObjectsInRange=function(u,s){var n,p,c,v,t,r,l;return t=this.splitObjectsAtRange(u),v=t[0],p=t[1],r=t[2],l=function(){var A,f,m;for(m=[],n=A=0,f=v.length;f>A;n=++A)c=v[n],m.push(n>=p&&r>=n?s(c):c);return m}(),new this.constructor(l)},e.prototype.splitObjectsAtRange=function(u){var s,n,p,c,v,t;return c=this.splitObjectAtPosition(i(u)),n=c[0],s=c[1],p=c[2],v=new this.constructor(n).splitObjectAtPosition(a(u)+p),n=v[0],t=v[1],[n,s,t-1]},e.prototype.getObjectAtPosition=function(u){var s,n,p;return p=this.findIndexAndOffsetAtPosition(u),s=p.index,n=p.offset,this.objects[s]},e.prototype.splitObjectAtPosition=function(u){var s,n,p,c,v,t,r,l,A,f;return t=this.findIndexAndOffsetAtPosition(u),s=t.index,v=t.offset,c=this.objects.slice(0),s!=null?v===0?(A=s,f=0):(p=this.getObjectAtIndex(s),r=p.splitAtOffset(v),n=r[0],l=r[1],c.splice(s,1,n,l),A=s+1,f=n.getLength()-v):(A=c.length,f=0),[c,A,f]},e.prototype.consolidate=function(){var u,s,n,p,c,v;for(p=[],c=this.objects[0],v=this.objects.slice(1),u=0,s=v.length;s>u;u++)n=v[u],typeof c.canBeConsolidatedWith=="function"&&c.canBeConsolidatedWith(n)?c=c.consolidateWith(n):(p.push(c),c=n);return c!=null&&p.push(c),new this.constructor(p)},e.prototype.consolidateFromIndexToIndex=function(u,s){var n,p,c;return p=this.objects.slice(0),c=p.slice(u,s+1),n=new this.constructor(c).consolidate().toArray(),this.splice.apply(this,[u,c.length].concat(h.call(n)))},e.prototype.findIndexAndOffsetAtPosition=function(u){var s,n,p,c,v,t,r;for(s=0,r=this.objects,p=n=0,c=r.length;c>n;p=++n){if(t=r[p],v=s+t.getLength(),u>=s&&v>u)return{index:p,offset:u-s};s=v}return{index:null,offset:null}},e.prototype.findPositionAtIndexAndOffset=function(u,s){var n,p,c,v,t,r;for(t=0,r=this.objects,n=p=0,c=r.length;c>p;n=++p)if(v=r[n],u>n)t+=v.getLength();else if(n===u){t+=s;break}return t},e.prototype.getEndPosition=function(){var u,s;return this.endPosition!=null?this.endPosition:this.endPosition=function(){var n,p,c;for(s=0,c=this.objects,n=0,p=c.length;p>n;n++)u=c[n],s+=u.getLength();return s}.call(this)},e.prototype.toString=function(){return this.objects.join("")},e.prototype.toArray=function(){return this.objects.slice(0)},e.prototype.toJSON=function(){return this.toArray()},e.prototype.isEqualTo=function(u){return e.__super__.isEqualTo.apply(this,arguments)||d(this.objects,u?.objects)},d=function(u,s){var n,p,c,v,t;if(s==null&&(s=[]),u.length!==s.length)return!1;for(t=!0,p=n=0,c=u.length;c>n;p=++n)v=u[p],t&&!v.isEqualTo(s[p])&&(t=!1);return t},e.prototype.contentsForInspection=function(){var u;return{objects:"["+function(){var s,n,p,c;for(p=this.objects,c=[],s=0,n=p.length;n>s;s++)u=p[s],c.push(u.inspect());return c}.call(this).join(", ")+"]"}},i=function(u){return u[0]},a=function(u){return u[1]},e}(g.Object)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.Text=function(y){function h(o){var e;o==null&&(o=[]),h.__super__.constructor.apply(this,arguments),this.pieceList=new g.SplittableList(function(){var a,d,i;for(i=[],a=0,d=o.length;d>a;a++)e=o[a],e.isEmpty()||i.push(e);return i}())}return x(h,y),h.textForAttachmentWithAttributes=function(o,e){var a;return a=new g.AttachmentPiece(o,e),new this([a])},h.textForStringWithAttributes=function(o,e){var a;return a=new g.StringPiece(o,e),new this([a])},h.fromJSON=function(o){var e,a;return a=function(){var d,i,u;for(u=[],d=0,i=o.length;i>d;d++)e=o[d],u.push(g.Piece.fromJSON(e));return u}(),new this(a)},h.prototype.copy=function(){return this.copyWithPieceList(this.pieceList)},h.prototype.copyWithPieceList=function(o){return new this.constructor(o.consolidate().toArray())},h.prototype.copyUsingObjectMap=function(o){var e,a;return a=function(){var d,i,u,s,n;for(u=this.getPieces(),n=[],d=0,i=u.length;i>d;d++)e=u[d],n.push((s=o.find(e))!=null?s:e);return n}.call(this),new this.constructor(a)},h.prototype.appendText=function(o){return this.insertTextAtPosition(o,this.getLength())},h.prototype.insertTextAtPosition=function(o,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(o.pieceList,e))},h.prototype.removeTextAtRange=function(o){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(o))},h.prototype.replaceTextAtRange=function(o,e){return this.removeTextAtRange(e).insertTextAtPosition(o,e[0])},h.prototype.moveTextFromRangeToPosition=function(o,e){var a,d;if(!(o[0]<=e&&e<=o[1]))return d=this.getTextAtRange(o),a=d.getLength(),o[0]a;a++)e=i[a],u.push(e.getAttributes());return u}.call(this),g.Hash.fromCommonAttributesOfObjects(o).toObject()},h.prototype.getCommonAttributesAtRange=function(o){var e;return(e=this.getTextAtRange(o).getCommonAttributes())!=null?e:{}},h.prototype.getExpandedRangeForAttributeAtOffset=function(o,e){var a,d,i;for(a=i=e,d=this.getLength();a>0&&this.getCommonAttributesAtRange([a-1,i])[o];)a--;for(;d>i&&this.getCommonAttributesAtRange([e,i+1])[o];)i++;return[a,i]},h.prototype.getTextAtRange=function(o){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(o))},h.prototype.getStringAtRange=function(o){return this.pieceList.getSplittableListInRange(o).toString()},h.prototype.getStringAtPosition=function(o){return this.getStringAtRange([o,o+1])},h.prototype.startsWithString=function(o){return this.getStringAtRange([0,o.length])===o},h.prototype.endsWithString=function(o){var e;return e=this.getLength(),this.getStringAtRange([e-o.length,e])===o},h.prototype.getAttachmentPieces=function(){var o,e,a,d,i;for(d=this.pieceList.toArray(),i=[],o=0,e=d.length;e>o;o++)a=d[o],a.attachment!=null&&i.push(a);return i},h.prototype.getAttachments=function(){var o,e,a,d,i;for(d=this.getAttachmentPieces(),i=[],o=0,e=d.length;e>o;o++)a=d[o],i.push(a.attachment);return i},h.prototype.getAttachmentAndPositionById=function(o){var e,a,d,i,u,s;for(i=0,u=this.pieceList.toArray(),e=0,a=u.length;a>e;e++){if(d=u[e],((s=d.attachment)!=null?s.id:void 0)===o)return{attachment:d.attachment,position:i};i+=d.length}return{attachment:null,position:null}},h.prototype.getAttachmentById=function(o){var e,a,d;return d=this.getAttachmentAndPositionById(o),e=d.attachment,a=d.position,e},h.prototype.getRangeOfAttachment=function(o){var e,a;return a=this.getAttachmentAndPositionById(o.id),o=a.attachment,e=a.position,o!=null?[e,e+1]:void 0},h.prototype.updateAttributesForAttachment=function(o,e){var a;return(a=this.getRangeOfAttachment(e))?this.addAttributesAtRange(o,a):this},h.prototype.getLength=function(){return this.pieceList.getEndPosition()},h.prototype.isEmpty=function(){return this.getLength()===0},h.prototype.isEqualTo=function(o){var e;return h.__super__.isEqualTo.apply(this,arguments)||(o!=null&&(e=o.pieceList)!=null?e.isEqualTo(this.pieceList):void 0)},h.prototype.isBlockBreak=function(){return this.getLength()===1&&this.pieceList.getObjectAtIndex(0).isBlockBreak()},h.prototype.eachPiece=function(o){return this.pieceList.eachObject(o)},h.prototype.getPieces=function(){return this.pieceList.toArray()},h.prototype.getPieceAtPosition=function(o){return this.pieceList.getObjectAtPosition(o)},h.prototype.contentsForInspection=function(){return{pieceList:this.pieceList.inspect()}},h.prototype.toSerializableText=function(){var o;return o=this.pieceList.selectSplittableList(function(e){return e.isSerializable()}),this.copyWithPieceList(o)},h.prototype.toString=function(){return this.pieceList.toString()},h.prototype.toJSON=function(){return this.pieceList.toJSON()},h.prototype.toConsole=function(){var o;return JSON.stringify(function(){var e,a,d,i;for(d=this.pieceList.toArray(),i=[],e=0,a=d.length;a>e;e++)o=d[e],i.push(JSON.parse(o.toConsole()));return i}.call(this))},h.prototype.getDirection=function(){return g.getDirection(this.toString())},h.prototype.isRTL=function(){return this.getDirection()==="rtl"},h}(g.Object)}.call(this),function(){var x,b,y,h,o,e=function(u,s){function n(){this.constructor=u}for(var p in s)a.call(s,p)&&(u[p]=s[p]);return n.prototype=s.prototype,u.prototype=new n,u.__super__=s.prototype,u},a={}.hasOwnProperty,d=[].indexOf||function(u){for(var s=0,n=this.length;n>s;s++)if(s in this&&this[s]===u)return s;return-1},i=[].slice;x=g.arraysAreEqual,o=g.spliceArray,y=g.getBlockConfig,b=g.getBlockAttributeNames,h=g.getListAttributeNames,g.Block=function(u){function s(m,C){m==null&&(m=new g.Text),C==null&&(C=[]),s.__super__.constructor.apply(this,arguments),this.text=p(m),this.attributes=C}var n,p,c,v,t,r,l,A,f;return e(s,u),s.fromJSON=function(m){var C;return C=g.Text.fromJSON(m.text),new this(C,m.attributes)},s.prototype.isEmpty=function(){return this.text.isBlockBreak()},s.prototype.isEqualTo=function(m){return s.__super__.isEqualTo.apply(this,arguments)||this.text.isEqualTo(m?.text)&&x(this.attributes,m?.attributes)},s.prototype.copyWithText=function(m){return new this.constructor(m,this.attributes)},s.prototype.copyWithoutText=function(){return this.copyWithText(null)},s.prototype.copyWithAttributes=function(m){return new this.constructor(this.text,m)},s.prototype.copyWithoutAttributes=function(){return this.copyWithAttributes(null)},s.prototype.copyUsingObjectMap=function(m){var C;return this.copyWithText((C=m.find(this.text))?C:this.text.copyUsingObjectMap(m))},s.prototype.addAttribute=function(m){var C;return C=this.attributes.concat(v(m)),this.copyWithAttributes(C)},s.prototype.removeAttribute=function(m){var C,S;return S=y(m).listAttribute,C=r(r(this.attributes,m),S),this.copyWithAttributes(C)},s.prototype.removeLastAttribute=function(){return this.removeAttribute(this.getLastAttribute())},s.prototype.getLastAttribute=function(){return t(this.attributes)},s.prototype.getAttributes=function(){return this.attributes.slice(0)},s.prototype.getAttributeLevel=function(){return this.attributes.length},s.prototype.getAttributeAtLevel=function(m){return this.attributes[m-1]},s.prototype.hasAttribute=function(m){return d.call(this.attributes,m)>=0},s.prototype.hasAttributes=function(){return this.getAttributeLevel()>0},s.prototype.getLastNestableAttribute=function(){return t(this.getNestableAttributes())},s.prototype.getNestableAttributes=function(){var m,C,S,L,O;for(L=this.attributes,O=[],C=0,S=L.length;S>C;C++)m=L[C],y(m).nestable&&O.push(m);return O},s.prototype.getNestingLevel=function(){return this.getNestableAttributes().length},s.prototype.decreaseNestingLevel=function(){var m;return(m=this.getLastNestableAttribute())?this.removeAttribute(m):this},s.prototype.increaseNestingLevel=function(){var m,C,S;return(m=this.getLastNestableAttribute())?(S=this.attributes.lastIndexOf(m),C=o.apply(null,[this.attributes,S+1,0].concat(i.call(v(m)))),this.copyWithAttributes(C)):this},s.prototype.getListItemAttributes=function(){var m,C,S,L,O;for(L=this.attributes,O=[],C=0,S=L.length;S>C;C++)m=L[C],y(m).listAttribute&&O.push(m);return O},s.prototype.isListItem=function(){var m;return(m=y(this.getLastAttribute()))!=null?m.listAttribute:void 0},s.prototype.isTerminalBlock=function(){var m;return(m=y(this.getLastAttribute()))!=null?m.terminal:void 0},s.prototype.breaksOnReturn=function(){var m;return(m=y(this.getLastAttribute()))!=null?m.breakOnReturn:void 0},s.prototype.findLineBreakInDirectionFromPosition=function(m,C){var S,L;return L=this.toString(),S=function(){switch(m){case"forward":return L.indexOf(` +`,C);case"backward":return L.slice(0,C).lastIndexOf(` +`)}}(),S!==-1?S:void 0},s.prototype.contentsForInspection=function(){return{text:this.text.inspect(),attributes:this.attributes}},s.prototype.toString=function(){return this.text.toString()},s.prototype.toJSON=function(){return{text:this.text,attributes:this.attributes}},s.prototype.getDirection=function(){return this.text.getDirection()},s.prototype.isRTL=function(){return this.text.isRTL()},s.prototype.getLength=function(){return this.text.getLength()},s.prototype.canBeConsolidatedWith=function(m){return!this.hasAttributes()&&!m.hasAttributes()&&this.getDirection()===m.getDirection()},s.prototype.consolidateWith=function(m){var C,S;return C=g.Text.textForStringWithAttributes(` +`),S=this.getTextWithoutBlockBreak().appendText(C),this.copyWithText(S.appendText(m.text))},s.prototype.splitAtOffset=function(m){var C,S;return m===0?(C=null,S=this):m===this.getLength()?(C=this,S=null):(C=this.copyWithText(this.text.getTextAtRange([0,m])),S=this.copyWithText(this.text.getTextAtRange([m,this.getLength()]))),[C,S]},s.prototype.getBlockBreakPosition=function(){return this.text.getLength()-1},s.prototype.getTextWithoutBlockBreak=function(){return l(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()},s.prototype.canBeGrouped=function(m){return this.attributes[m]},s.prototype.canBeGroupedWith=function(m,C){var S,L,O,D;return O=m.getAttributes(),L=O[C],S=this.attributes[C],!(S!==L||y(S).group===!1&&(D=O[C+1],d.call(h(),D)<0)||this.getDirection()!==m.getDirection()&&!m.isEmpty())},p=function(m){return m=f(m),m=n(m)},f=function(m){var C,S,L,O,D,R;return O=!1,R=m.getPieces(),S=2<=R.length?i.call(R,0,C=R.length-1):(C=0,[]),L=R[C++],L==null?m:(S=function(){var E,w,k;for(k=[],E=0,w=S.length;w>E;E++)D=S[E],D.isBlockBreak()?(O=!0,k.push(A(D))):k.push(D);return k}(),O?new g.Text(i.call(S).concat([L])):m)},c=g.Text.textForStringWithAttributes(` +`,{blockBreak:!0}),n=function(m){return l(m)?m:m.appendText(c)},l=function(m){var C,S;return S=m.getLength(),S===0?!1:(C=m.getTextAtRange([S-1,S]),C.isBlockBreak())},A=function(m){return m.copyWithoutAttribute("blockBreak")},v=function(m){var C;return C=y(m).listAttribute,C!=null?[C,m]:[m]},t=function(m){return m.slice(-1)[0]},r=function(m,C){var S;return S=m.lastIndexOf(C),S===-1?m:o(m,S,1)},s}(g.Object)}.call(this),function(){var x,b,y,h=function(d,i){function u(){this.constructor=d}for(var s in i)o.call(i,s)&&(d[s]=i[s]);return u.prototype=i.prototype,d.prototype=new u,d.__super__=i.prototype,d},o={}.hasOwnProperty,e=[].indexOf||function(d){for(var i=0,u=this.length;u>i;i++)if(i in this&&this[i]===d)return i;return-1},a=[].slice;b=g.tagName,y=g.walkTree,x=g.nodeIsAttachmentElement,g.HTMLSanitizer=function(d){function i(c,v){var t;t=v??{},this.allowedAttributes=t.allowedAttributes,this.forbiddenProtocols=t.forbiddenProtocols,this.forbiddenElements=t.forbiddenElements,this.allowedAttributes==null&&(this.allowedAttributes=u),this.forbiddenProtocols==null&&(this.forbiddenProtocols=n),this.forbiddenElements==null&&(this.forbiddenElements=s),this.body=p(c)}var u,s,n,p;return h(i,d),u="style href src width height class".split(" "),n="javascript:".split(" "),s="script iframe".split(" "),i.sanitize=function(c,v){var t;return t=new this(c,v),t.sanitize(),t},i.prototype.sanitize=function(){return this.sanitizeElements(),this.normalizeListElementNesting()},i.prototype.getHTML=function(){return this.body.innerHTML},i.prototype.getBody=function(){return this.body},i.prototype.sanitizeElements=function(){var c,v,t,r,l;for(l=y(this.body),r=[];l.nextNode();)switch(t=l.currentNode,t.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(t)?r.push(t):this.sanitizeElement(t);break;case Node.COMMENT_NODE:r.push(t)}for(c=0,v=r.length;v>c;c++)t=r[c],g.removeNode(t);return this.body},i.prototype.sanitizeElement=function(c){var v,t,r,l,A;for(c.hasAttribute("href")&&(l=c.protocol,e.call(this.forbiddenProtocols,l)>=0&&c.removeAttribute("href")),A=a.call(c.attributes),v=0,t=A.length;t>v;v++)r=A[v].name,e.call(this.allowedAttributes,r)>=0||r.indexOf("data-trix")===0||c.removeAttribute(r);return c},i.prototype.normalizeListElementNesting=function(){var c,v,t,r,l;for(l=a.call(this.body.querySelectorAll("ul,ol")),c=0,v=l.length;v>c;c++)t=l[c],(r=t.previousElementSibling)&&b(r)==="li"&&r.appendChild(t);return this.body},i.prototype.elementIsRemovable=function(c){return c?.nodeType===Node.ELEMENT_NODE?this.elementIsForbidden(c)||this.elementIsntSerializable(c):void 0},i.prototype.elementIsForbidden=function(c){var v;return v=b(c),e.call(this.forbiddenElements,v)>=0},i.prototype.elementIsntSerializable=function(c){return c.getAttribute("data-trix-serialize")==="false"&&!x(c)},p=function(c){var v,t,r,l,A;for(c==null&&(c=""),c=c.replace(/<\/html[^>]*>[^]*$/i,""),v=document.implementation.createHTMLDocument(""),v.documentElement.innerHTML=c,A=v.head.querySelectorAll("style"),r=0,l=A.length;l>r;r++)t=A[r],v.body.appendChild(t);return v.body},i}(g.BasicObject)}.call(this),function(){var x,b,y,h,o,e,a,d,i,u,s,n=function(v,t){function r(){this.constructor=v}for(var l in t)p.call(t,l)&&(v[l]=t[l]);return r.prototype=t.prototype,v.prototype=new r,v.__super__=t.prototype,v},p={}.hasOwnProperty,c=[].indexOf||function(v){for(var t=0,r=this.length;r>t;t++)if(t in this&&this[t]===v)return t;return-1};x=g.arraysAreEqual,e=g.makeElement,u=g.tagName,o=g.getBlockTagNames,s=g.walkTree,h=g.findClosestElementFromNode,y=g.elementContainsNode,a=g.nodeIsAttachmentElement,d=g.normalizeSpaces,b=g.breakableWhitespacePattern,i=g.squishBreakableWhitespace,g.HTMLParser=function(v){function t(w,k){this.html=w,this.referenceElement=(k??{}).referenceElement,this.blocks=[],this.blockElements=[],this.processedElements=[]}var r,l,A,f,m,C,S,L,O,D,R,E;return n(t,v),t.parse=function(w,k){var T;return T=new this(w,k),T.parse(),T},t.prototype.getDocument=function(){return g.Document.fromJSON(this.blocks)},t.prototype.parse=function(){var w,k;try{for(this.createHiddenContainer(),w=g.HTMLSanitizer.sanitize(this.html).getHTML(),this.containerElement.innerHTML=w,k=s(this.containerElement,{usingFilter:S});k.nextNode();)this.processNode(k.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}},t.prototype.createHiddenContainer=function(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute("id"),this.containerElement.setAttribute("data-trix-internal",""),this.containerElement.style.display="none",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=e({tagName:"div",style:{display:"none"}}),document.body.appendChild(this.containerElement))},t.prototype.removeHiddenContainer=function(){return g.removeNode(this.containerElement)},S=function(w){return u(w)==="style"?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},t.prototype.processNode=function(w){switch(w.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(w))return this.appendBlockForTextNode(w),this.processTextNode(w);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(w),this.processElement(w)}},t.prototype.appendBlockForTextNode=function(w){var k,T,N;return T=w.parentNode,T===this.currentBlockElement&&this.isBlockElement(w.previousSibling)?this.appendStringWithAttributes(` +`):T!==this.containerElement&&!this.isBlockElement(T)||(k=this.getBlockAttributes(T),x(k,(N=this.currentBlock)!=null?N.attributes:void 0))?void 0:(this.currentBlock=this.appendBlockForAttributesWithElement(k,T),this.currentBlockElement=T)},t.prototype.appendBlockForElement=function(w){var k,T,N,P;if(N=this.isBlockElement(w),T=y(this.currentBlockElement,w),N&&!this.isBlockElement(w.firstChild)){if((!this.isInsignificantTextNode(w.firstChild)||!this.isBlockElement(w.firstElementChild))&&(k=this.getBlockAttributes(w),w.firstChild))return T&&x(k,this.currentBlock.attributes)?this.appendStringWithAttributes(` +`):(this.currentBlock=this.appendBlockForAttributesWithElement(k,w),this.currentBlockElement=w)}else if(this.currentBlockElement&&!T&&!N)return(P=this.findParentBlockElement(w))?this.appendBlockForElement(P):(this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null)},t.prototype.findParentBlockElement=function(w){var k;for(k=w.parentElement;k&&k!==this.containerElement;){if(this.isBlockElement(k)&&c.call(this.blockElements,k)>=0)return k;k=k.parentElement}return null},t.prototype.processTextNode=function(w){var k,T;return T=w.data,l(w.parentNode)||(T=i(T),R((k=w.previousSibling)!=null?k.textContent:void 0)&&(T=m(T))),this.appendStringWithAttributes(T,this.getTextAttributes(w.parentNode))},t.prototype.processElement=function(w){var k,T,N,P,_;if(a(w))return k=L(w,"attachment"),Object.keys(k).length&&(P=this.getTextAttributes(w),this.appendAttachmentWithAttributes(k,P),w.innerHTML=""),this.processedElements.push(w);switch(u(w)){case"br":return this.isExtraBR(w)||this.isBlockElement(w.nextSibling)||this.appendStringWithAttributes(` +`,this.getTextAttributes(w)),this.processedElements.push(w);case"img":k={url:w.getAttribute("src"),contentType:"image"},N=f(w);for(T in N)_=N[T],k[T]=_;return this.appendAttachmentWithAttributes(k,this.getTextAttributes(w)),this.processedElements.push(w);case"tr":if(w.parentNode.firstChild!==w)return this.appendStringWithAttributes(` +`);break;case"td":if(w.parentNode.firstChild!==w)return this.appendStringWithAttributes(" | ")}},t.prototype.appendBlockForAttributesWithElement=function(w,k){var T;return this.blockElements.push(k),T=r(w),this.blocks.push(T),T},t.prototype.appendEmptyBlock=function(){return this.appendBlockForAttributesWithElement([],null)},t.prototype.appendStringWithAttributes=function(w,k){return this.appendPiece(D(w,k))},t.prototype.appendAttachmentWithAttributes=function(w,k){return this.appendPiece(O(w,k))},t.prototype.appendPiece=function(w){return this.blocks.length===0&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(w)},t.prototype.appendStringToTextAtIndex=function(w,k){var T,N;return N=this.blocks[k].text,T=N[N.length-1],T?.type==="string"?T.string+=w:N.push(D(w))},t.prototype.prependStringToTextAtIndex=function(w,k){var T,N;return N=this.blocks[k].text,T=N[0],T?.type==="string"?T.string=w+T.string:N.unshift(D(w))},D=function(w,k){var T;return k==null&&(k={}),T="string",w=d(w),{string:w,attributes:k,type:T}},O=function(w,k){var T;return k==null&&(k={}),T="attachment",{attachment:w,attributes:k,type:T}},r=function(w){var k;return w==null&&(w={}),k=[],{text:k,attributes:w}},t.prototype.getTextAttributes=function(w){var k,T,N,P,_,F,B,M,U,H,z,j;N={},U=g.config.textAttributes;for(k in U)if(_=U[k],_.tagName&&h(w,{matchingSelector:_.tagName,untilNode:this.containerElement}))N[k]=!0;else if(_.parser){if(j=_.parser(w)){for(T=!1,H=this.findBlockElementAncestors(w),F=0,M=H.length;M>F;F++)if(P=H[F],_.parser(P)===j){T=!0;break}T||(N[k]=j)}}else _.styleProperty&&(j=w.style[_.styleProperty])&&(N[k]=j);if(a(w)){z=L(w,"attributes");for(B in z)j=z[B],N[B]=j}return N},t.prototype.getBlockAttributes=function(w){var k,T,N,P;for(T=[];w&&w!==this.containerElement;){P=g.config.blockAttributes;for(k in P)N=P[k],N.parse!==!1&&u(w)===N.tagName&&(typeof N.test=="function"&&N.test(w)||!N.test)&&(T.push(k),N.listAttribute&&T.push(N.listAttribute));w=w.parentNode}return T.reverse()},t.prototype.findBlockElementAncestors=function(w){var k,T;for(k=[];w&&w!==this.containerElement;)T=u(w),c.call(o(),T)>=0&&k.push(w),w=w.parentNode;return k},L=function(w,k){try{return JSON.parse(w.getAttribute("data-trix-"+k))}catch{return{}}},f=function(w){var k,T,N;return N=w.getAttribute("width"),T=w.getAttribute("height"),k={},N&&(k.width=parseInt(N,10)),T&&(k.height=parseInt(T,10)),k},t.prototype.isBlockElement=function(w){var k;if(w?.nodeType===Node.ELEMENT_NODE&&!a(w)&&!h(w,{matchingSelector:"td",untilNode:this.containerElement}))return k=u(w),c.call(o(),k)>=0||window.getComputedStyle(w).display==="block"},t.prototype.isInsignificantTextNode=function(w){var k,T,N;if(w?.nodeType===Node.TEXT_NODE&&E(w.data)&&(T=w.parentNode,N=w.previousSibling,k=w.nextSibling,(!C(T.previousSibling)||this.isBlockElement(T.previousSibling))&&!l(T)))return!N||this.isBlockElement(N)||!k||this.isBlockElement(k)},t.prototype.isExtraBR=function(w){return u(w)==="br"&&this.isBlockElement(w.parentNode)&&w.parentNode.lastChild===w},l=function(w){var k;return k=window.getComputedStyle(w).whiteSpace,k==="pre"||k==="pre-wrap"||k==="pre-line"},C=function(w){return w&&!R(w.textContent)},t.prototype.translateBlockElementMarginsToNewlines=function(){var w,k,T,N,P,_,F,B;for(k=this.getMarginOfDefaultBlockElement(),F=this.blocks,B=[],N=T=0,P=F.length;P>T;N=++T)w=F[N],(_=this.getMarginOfBlockElementAtIndex(N))&&(_.top>2*k.top&&this.prependStringToTextAtIndex(` +`,N),B.push(_.bottom>2*k.bottom?this.appendStringToTextAtIndex(` +`,N):void 0));return B},t.prototype.getMarginOfBlockElementAtIndex=function(w){var k,T;return!(k=this.blockElements[w])||!k.textContent||(T=u(k),c.call(o(),T)>=0||c.call(this.processedElements,k)>=0)?void 0:A(k)},t.prototype.getMarginOfDefaultBlockElement=function(){var w;return w=e(g.config.blockAttributes.default.tagName),this.containerElement.appendChild(w),A(w)},A=function(w){var k;return k=window.getComputedStyle(w),k.display==="block"?{top:parseInt(k.marginTop),bottom:parseInt(k.marginBottom)}:void 0},m=function(w){return w.replace(RegExp("^"+b.source+"+"),"")},E=function(w){return RegExp("^"+b.source+"*$").test(w)},R=function(w){return/\s$/.test(w)},t}(g.BasicObject)}.call(this),function(){var x,b,y,h,o=function(i,u){function s(){this.constructor=i}for(var n in u)e.call(u,n)&&(i[n]=u[n]);return s.prototype=u.prototype,i.prototype=new s,i.__super__=u.prototype,i},e={}.hasOwnProperty,a=[].slice,d=[].indexOf||function(i){for(var u=0,s=this.length;s>u;u++)if(u in this&&this[u]===i)return u;return-1};x=g.arraysAreEqual,y=g.normalizeRange,h=g.rangeIsCollapsed,b=g.getBlockConfig,g.Document=function(i){function u(n){n==null&&(n=[]),u.__super__.constructor.apply(this,arguments),n.length===0&&(n=[new g.Block]),this.blockList=g.SplittableList.box(n)}var s;return o(u,i),u.fromJSON=function(n){var p,c;return c=function(){var v,t,r;for(r=[],v=0,t=n.length;t>v;v++)p=n[v],r.push(g.Block.fromJSON(p));return r}(),new this(c)},u.fromHTML=function(n,p){return g.HTMLParser.parse(n,p).getDocument()},u.fromString=function(n,p){var c;return c=g.Text.textForStringWithAttributes(n,p),new this([new g.Block(c)])},u.prototype.isEmpty=function(){var n;return this.blockList.length===1&&(n=this.getBlockAtIndex(0),n.isEmpty()&&!n.hasAttributes())},u.prototype.copy=function(n){var p;return n==null&&(n={}),p=n.consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray(),new this.constructor(p)},u.prototype.copyUsingObjectsFromDocument=function(n){var p;return p=new g.ObjectMap(n.getObjects()),this.copyUsingObjectMap(p)},u.prototype.copyUsingObjectMap=function(n){var p,c,v;return c=function(){var t,r,l,A;for(l=this.getBlocks(),A=[],t=0,r=l.length;r>t;t++)p=l[t],A.push((v=n.find(p))?v:p.copyUsingObjectMap(n));return A}.call(this),new this.constructor(c)},u.prototype.copyWithBaseBlockAttributes=function(n){var p,c,v;return n==null&&(n=[]),v=function(){var t,r,l,A;for(l=this.getBlocks(),A=[],t=0,r=l.length;r>t;t++)c=l[t],p=n.concat(c.getAttributes()),A.push(c.copyWithAttributes(p));return A}.call(this),new this.constructor(v)},u.prototype.replaceBlock=function(n,p){var c;return c=this.blockList.indexOf(n),c===-1?this:new this.constructor(this.blockList.replaceObjectAtIndex(p,c))},u.prototype.insertDocumentAtRange=function(n,p){var c,v,t,r,l,A,f;return v=n.blockList,l=(p=y(p))[0],A=this.locationFromPosition(l),t=A.index,r=A.offset,f=this,c=this.getBlockAtPosition(l),h(p)&&c.isEmpty()&&!c.hasAttributes()?f=new this.constructor(f.blockList.removeObjectAtIndex(t)):c.getBlockBreakPosition()===r&&l++,f=f.removeTextAtRange(p),new this.constructor(f.blockList.insertSplittableListAtPosition(v,l))},u.prototype.mergeDocumentAtRange=function(n,p){var c,v,t,r,l,A,f,m,C,S,L,O;return L=(p=y(p))[0],S=this.locationFromPosition(L),v=this.getBlockAtIndex(S.index).getAttributes(),c=n.getBaseBlockAttributes(),O=v.slice(-c.length),x(c,O)?(f=v.slice(0,-c.length),A=n.copyWithBaseBlockAttributes(f)):A=n.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(v),t=A.getBlockCount(),r=A.getBlockAtIndex(0),x(v,r.getAttributes())?(l=r.getTextWithoutBlockBreak(),C=this.insertTextAtRange(l,p),t>1&&(A=new this.constructor(A.getBlocks().slice(1)),m=L+l.getLength(),C=C.insertDocumentAtRange(A,m))):C=this.insertDocumentAtRange(A,p),C},u.prototype.insertTextAtRange=function(n,p){var c,v,t,r,l;return l=(p=y(p))[0],r=this.locationFromPosition(l),v=r.index,t=r.offset,c=this.removeTextAtRange(p),new this.constructor(c.blockList.editObjectAtIndex(v,function(A){return A.copyWithText(A.text.insertTextAtPosition(n,t))}))},u.prototype.removeTextAtRange=function(n){var p,c,v,t,r,l,A,f,m,C,S,L,O,D,R,E,w,k,T,N,P;return C=n=y(n),f=C[0],k=C[1],h(n)?this:(S=this.locationRangeFromRange(n),l=S[0],E=S[1],r=l.index,A=l.offset,t=this.getBlockAtIndex(r),R=E.index,w=E.offset,D=this.getBlockAtIndex(R),L=k-f===1&&t.getBlockBreakPosition()===A&&D.getBlockBreakPosition()!==w&&D.text.getStringAtPosition(w)===` +`,L?v=this.blockList.editObjectAtIndex(R,function(_){return _.copyWithText(_.text.removeTextAtRange([w,w+1]))}):(m=t.text.getTextAtRange([0,A]),T=D.text.getTextAtRange([w,D.getLength()]),N=m.appendText(T),O=r!==R&&A===0,P=O&&t.getAttributeLevel()>=D.getAttributeLevel(),c=P?D.copyWithText(N):t.copyWithText(N),p=R+1-r,v=this.blockList.splice(r,p,c)),new this.constructor(v))},u.prototype.moveTextFromRangeToPosition=function(n,p){var c,v,t,r,l,A,f,m,C,S;return A=n=y(n),C=A[0],t=A[1],p>=C&&t>=p?this:(v=this.getDocumentAtRange(n),m=this.removeTextAtRange(n),l=p>C,l&&(p-=v.getLength()),f=v.getBlocks(),r=f[0],c=2<=f.length?a.call(f,1):[],c.length===0?(S=r.getTextWithoutBlockBreak(),l&&(p+=1)):S=r.text,m=m.insertTextAtRange(S,p),c.length===0?m:(v=new this.constructor(c),p+=S.getLength(),m.insertDocumentAtRange(v,p)))},u.prototype.addAttributeAtRange=function(n,p,c){var v;return v=this.blockList,this.eachBlockAtRange(c,function(t,r,l){return v=v.editObjectAtIndex(l,function(){return b(n)?t.addAttribute(n,p):r[0]===r[1]?t:t.copyWithText(t.text.addAttributeAtRange(n,p,r))})}),new this.constructor(v)},u.prototype.addAttribute=function(n,p){var c;return c=this.blockList,this.eachBlock(function(v,t){return c=c.editObjectAtIndex(t,function(){return v.addAttribute(n,p)})}),new this.constructor(c)},u.prototype.removeAttributeAtRange=function(n,p){var c;return c=this.blockList,this.eachBlockAtRange(p,function(v,t,r){return b(n)?c=c.editObjectAtIndex(r,function(){return v.removeAttribute(n)}):t[0]!==t[1]?c=c.editObjectAtIndex(r,function(){return v.copyWithText(v.text.removeAttributeAtRange(n,t))}):void 0}),new this.constructor(c)},u.prototype.updateAttributesForAttachment=function(n,p){var c,v,t,r;return t=(v=this.getRangeOfAttachment(p))[0],c=this.locationFromPosition(t).index,r=this.getTextAtIndex(c),new this.constructor(this.blockList.editObjectAtIndex(c,function(l){return l.copyWithText(r.updateAttributesForAttachment(n,p))}))},u.prototype.removeAttributeForAttachment=function(n,p){var c;return c=this.getRangeOfAttachment(p),this.removeAttributeAtRange(n,c)},u.prototype.insertBlockBreakAtRange=function(n){var p,c,v,t;return t=(n=y(n))[0],v=this.locationFromPosition(t).offset,c=this.removeTextAtRange(n),v===0&&(p=[new g.Block]),new this.constructor(c.blockList.insertSplittableListAtPosition(new g.SplittableList(p),t))},u.prototype.applyBlockAttributeAtRange=function(n,p,c){var v,t,r,l;return r=this.expandRangeToLineBreaksAndSplitBlocks(c),t=r.document,c=r.range,v=b(n),v.listAttribute?(t=t.removeLastListAttributeAtRange(c,{exceptAttributeName:n}),l=t.convertLineBreaksToBlockBreaksInRange(c),t=l.document,c=l.range):t=v.exclusive?t.removeBlockAttributesAtRange(c):v.terminal?t.removeLastTerminalAttributeAtRange(c):t.consolidateBlocksAtRange(c),t.addAttributeAtRange(n,p,c)},u.prototype.removeLastListAttributeAtRange=function(n,p){var c;return p==null&&(p={}),c=this.blockList,this.eachBlockAtRange(n,function(v,t,r){var l;if((l=v.getLastAttribute())&&b(l).listAttribute&&l!==p.exceptAttributeName)return c=c.editObjectAtIndex(r,function(){return v.removeAttribute(l)})}),new this.constructor(c)},u.prototype.removeLastTerminalAttributeAtRange=function(n){var p;return p=this.blockList,this.eachBlockAtRange(n,function(c,v,t){var r;if((r=c.getLastAttribute())&&b(r).terminal)return p=p.editObjectAtIndex(t,function(){return c.removeAttribute(r)})}),new this.constructor(p)},u.prototype.removeBlockAttributesAtRange=function(n){var p;return p=this.blockList,this.eachBlockAtRange(n,function(c,v,t){return c.hasAttributes()?p=p.editObjectAtIndex(t,function(){return c.copyWithoutAttributes()}):void 0}),new this.constructor(p)},u.prototype.expandRangeToLineBreaksAndSplitBlocks=function(n){var p,c,v,t,r,l,A,f,m;return l=n=y(n),m=l[0],t=l[1],f=this.locationFromPosition(m),v=this.locationFromPosition(t),p=this,A=p.getBlockAtIndex(f.index),(f.offset=A.findLineBreakInDirectionFromPosition("backward",f.offset))!=null&&(r=p.positionFromLocation(f),p=p.insertBlockBreakAtRange([r,r+1]),v.index+=1,v.offset-=p.getBlockAtIndex(f.index).getLength(),f.index+=1),f.offset=0,v.offset===0&&v.index>f.index?(v.index-=1,v.offset=p.getBlockAtIndex(v.index).getBlockBreakPosition()):(c=p.getBlockAtIndex(v.index),c.text.getStringAtRange([v.offset-1,v.offset])===` +`?v.offset-=1:v.offset=c.findLineBreakInDirectionFromPosition("forward",v.offset),v.offset!==c.getBlockBreakPosition()&&(r=p.positionFromLocation(v),p=p.insertBlockBreakAtRange([r,r+1]))),m=p.positionFromLocation(f),t=p.positionFromLocation(v),n=y([m,t]),{document:p,range:n}},u.prototype.convertLineBreaksToBlockBreaksInRange=function(n){var p,c,v;return c=(n=y(n))[0],v=this.getStringAtRange(n).slice(0,-1),p=this,v.replace(/.*?\n/g,function(t){return c+=t.length,p=p.insertBlockBreakAtRange([c-1,c])}),{document:p,range:n}},u.prototype.consolidateBlocksAtRange=function(n){var p,c,v,t,r;return v=n=y(n),r=v[0],c=v[1],t=this.locationFromPosition(r).index,p=this.locationFromPosition(c).index,new this.constructor(this.blockList.consolidateFromIndexToIndex(t,p))},u.prototype.getDocumentAtRange=function(n){var p;return n=y(n),p=this.blockList.getSplittableListInRange(n).toArray(),new this.constructor(p)},u.prototype.getStringAtRange=function(n){var p,c,v;return v=n=y(n),c=v[v.length-1],c!==this.getLength()&&(p=-1),this.getDocumentAtRange(n).toString().slice(0,p)},u.prototype.getBlockAtIndex=function(n){return this.blockList.getObjectAtIndex(n)},u.prototype.getBlockAtPosition=function(n){var p;return p=this.locationFromPosition(n).index,this.getBlockAtIndex(p)},u.prototype.getTextAtIndex=function(n){var p;return(p=this.getBlockAtIndex(n))!=null?p.text:void 0},u.prototype.getTextAtPosition=function(n){var p;return p=this.locationFromPosition(n).index,this.getTextAtIndex(p)},u.prototype.getPieceAtPosition=function(n){var p,c,v;return v=this.locationFromPosition(n),p=v.index,c=v.offset,this.getTextAtIndex(p).getPieceAtPosition(c)},u.prototype.getCharacterAtPosition=function(n){var p,c,v;return v=this.locationFromPosition(n),p=v.index,c=v.offset,this.getTextAtIndex(p).getStringAtRange([c,c+1])},u.prototype.getLength=function(){return this.blockList.getEndPosition()},u.prototype.getBlocks=function(){return this.blockList.toArray()},u.prototype.getBlockCount=function(){return this.blockList.length},u.prototype.getEditCount=function(){return this.editCount},u.prototype.eachBlock=function(n){return this.blockList.eachObject(n)},u.prototype.eachBlockAtRange=function(n,p){var c,v,t,r,l,A,f,m,C,S,L,O;if(A=n=y(n),L=A[0],t=A[1],S=this.locationFromPosition(L),v=this.locationFromPosition(t),S.index===v.index)return c=this.getBlockAtIndex(S.index),O=[S.offset,v.offset],p(c,O,S.index);for(C=[],l=r=f=S.index,m=v.index;m>=f?m>=r:r>=m;l=m>=f?++r:--r)(c=this.getBlockAtIndex(l))?(O=function(){switch(l){case S.index:return[S.offset,c.text.getLength()];case v.index:return[0,v.offset];default:return[0,c.text.getLength()]}}(),C.push(p(c,O,l))):C.push(void 0);return C},u.prototype.getCommonAttributesAtRange=function(n){var p,c,v;return c=(n=y(n))[0],h(n)?this.getCommonAttributesAtPosition(c):(v=[],p=[],this.eachBlockAtRange(n,function(t,r){return r[0]!==r[1]?(v.push(t.text.getCommonAttributesAtRange(r)),p.push(s(t))):void 0}),g.Hash.fromCommonAttributesOfObjects(v).merge(g.Hash.fromCommonAttributesOfObjects(p)).toObject())},u.prototype.getCommonAttributesAtPosition=function(n){var p,c,v,t,r,l,A,f,m,C;if(m=this.locationFromPosition(n),r=m.index,f=m.offset,v=this.getBlockAtIndex(r),!v)return{};t=s(v),p=v.text.getAttributesAtPosition(f),c=v.text.getAttributesAtPosition(f-1),l=function(){var S,L;S=g.config.textAttributes,L=[];for(A in S)C=S[A],C.inheritable&&L.push(A);return L}();for(A in c)C=c[A],(C===p[A]||d.call(l,A)>=0)&&(t[A]=C);return t},u.prototype.getRangeOfCommonAttributeAtPosition=function(n,p){var c,v,t,r,l,A,f,m,C;return l=this.locationFromPosition(p),t=l.index,r=l.offset,C=this.getTextAtIndex(t),A=C.getExpandedRangeForAttributeAtOffset(n,r),m=A[0],v=A[1],f=this.positionFromLocation({index:t,offset:m}),c=this.positionFromLocation({index:t,offset:v}),y([f,c])},u.prototype.getBaseBlockAttributes=function(){var n,p,c,v,t,r,l;for(n=this.getBlockAtIndex(0).getAttributes(),c=v=1,l=this.getBlockCount();l>=1?l>v:v>l;c=l>=1?++v:--v)p=this.getBlockAtIndex(c).getAttributes(),r=Math.min(n.length,p.length),n=function(){var A,f,m;for(m=[],t=A=0,f=r;(f>=0?f>A:A>f)&&p[t]===n[t];t=f>=0?++A:--A)m.push(p[t]);return m}();return n},s=function(n){var p,c;return c={},(p=n.getLastAttribute())&&(c[p]=!0),c},u.prototype.getAttachmentById=function(n){var p,c,v,t;for(t=this.getAttachments(),c=0,v=t.length;v>c;c++)if(p=t[c],p.id===n)return p},u.prototype.getAttachmentPieces=function(){var n;return n=[],this.blockList.eachObject(function(p){var c;return c=p.text,n=n.concat(c.getAttachmentPieces())}),n},u.prototype.getAttachments=function(){var n,p,c,v,t;for(v=this.getAttachmentPieces(),t=[],n=0,p=v.length;p>n;n++)c=v[n],t.push(c.attachment);return t},u.prototype.getRangeOfAttachment=function(n){var p,c,v,t,r,l,A;for(t=0,r=this.blockList.toArray(),c=p=0,v=r.length;v>p;c=++p){if(l=r[c].text,A=l.getRangeOfAttachment(n))return y([t+A[0],t+A[1]]);t+=l.getLength()}},u.prototype.getLocationRangeOfAttachment=function(n){var p;return p=this.getRangeOfAttachment(n),this.locationRangeFromRange(p)},u.prototype.getAttachmentPieceForAttachment=function(n){var p,c,v,t;for(t=this.getAttachmentPieces(),p=0,c=t.length;c>p;p++)if(v=t[p],v.attachment===n)return v},u.prototype.findRangesForBlockAttribute=function(n){var p,c,v,t,r,l,A;for(r=0,l=[],A=this.getBlocks(),c=0,v=A.length;v>c;c++)p=A[c],t=p.getLength(),p.hasAttribute(n)&&l.push([r,r+t]),r+=t;return l},u.prototype.findRangesForTextAttribute=function(n,p){var c,v,t,r,l,A,f,m,C,S;for(S=(p??{}).withValue,A=0,f=[],m=[],r=function(L){return S!=null?L.getAttribute(n)===S:L.hasAttribute(n)},C=this.getPieces(),c=0,v=C.length;v>c;c++)l=C[c],t=l.getLength(),r(l)&&(f[1]===A?f[1]=A+t:m.push(f=[A,A+t])),A+=t;return m},u.prototype.locationFromPosition=function(n){var p,c;return c=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,n)),c.index!=null?c:(p=this.getBlocks(),{index:p.length-1,offset:p[p.length-1].getLength()})},u.prototype.positionFromLocation=function(n){return this.blockList.findPositionAtIndexAndOffset(n.index,n.offset)},u.prototype.locationRangeFromPosition=function(n){return y(this.locationFromPosition(n))},u.prototype.locationRangeFromRange=function(n){var p,c,v,t;if(n=y(n))return t=n[0],c=n[1],v=this.locationFromPosition(t),p=this.locationFromPosition(c),y([v,p])},u.prototype.rangeFromLocationRange=function(n){var p,c;return n=y(n),p=this.positionFromLocation(n[0]),h(n)||(c=this.positionFromLocation(n[1])),y([p,c])},u.prototype.isEqualTo=function(n){return this.blockList.isEqualTo(n?.blockList)},u.prototype.getTexts=function(){var n,p,c,v,t;for(v=this.getBlocks(),t=[],p=0,c=v.length;c>p;p++)n=v[p],t.push(n.text);return t},u.prototype.getPieces=function(){var n,p,c,v,t;for(c=[],v=this.getTexts(),n=0,p=v.length;p>n;n++)t=v[n],c.push.apply(c,t.getPieces());return c},u.prototype.getObjects=function(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())},u.prototype.toSerializableDocument=function(){var n;return n=[],this.blockList.eachObject(function(p){return n.push(p.copyWithText(p.text.toSerializableText()))}),new this.constructor(n)},u.prototype.toString=function(){return this.blockList.toString()},u.prototype.toJSON=function(){return this.blockList.toJSON()},u.prototype.toConsole=function(){var n;return JSON.stringify(function(){var p,c,v,t;for(v=this.blockList.toArray(),t=[],p=0,c=v.length;c>p;p++)n=v[p],t.push(JSON.parse(n.text.toConsole()));return t}.call(this))},u}(g.Object)}.call(this),function(){g.LineBreakInsertion=function(){function x(b){var y;this.composition=b,this.document=this.composition.document,y=this.composition.getSelectedRange(),this.startPosition=y[0],this.endPosition=y[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}return x.prototype.shouldInsertBlockBreak=function(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?this.startLocation.offset!==0:this.breaksOnReturn&&this.nextCharacter!==` +`},x.prototype.shouldBreakFormattedBlock=function(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&this.nextCharacter===` +`||this.previousCharacter===` +`)},x.prototype.shouldDecreaseListLevel=function(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()},x.prototype.shouldPrependListItem=function(){return this.block.isListItem()&&this.startLocation.offset===0&&!this.block.isEmpty()},x.prototype.shouldRemoveLastBlockAttribute=function(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()},x}()}.call(this),function(){var x,b,y,h,o,e,a,d,i,u,s=function(p,c){function v(){this.constructor=p}for(var t in c)n.call(c,t)&&(p[t]=c[t]);return v.prototype=c.prototype,p.prototype=new v,p.__super__=c.prototype,p},n={}.hasOwnProperty;e=g.normalizeRange,i=g.rangesAreEqual,d=g.rangeIsCollapsed,a=g.objectsAreEqual,x=g.arrayStartsWith,u=g.summarizeArrayChange,y=g.getAllAttributeNames,h=g.getBlockConfig,o=g.getTextConfig,b=g.extend,g.Composition=function(p){function c(){this.document=new g.Document,this.attachments=[],this.currentAttributes={},this.revision=0}var v;return s(c,p),c.prototype.setDocument=function(t){var r;return t.isEqualTo(this.document)?void 0:(this.document=t,this.refreshAttachments(),this.revision++,(r=this.delegate)!=null&&typeof r.compositionDidChangeDocument=="function"?r.compositionDidChangeDocument(t):void 0)},c.prototype.getSnapshot=function(){return{document:this.document,selectedRange:this.getSelectedRange()}},c.prototype.loadSnapshot=function(t){var r,l,A,f;return r=t.document,f=t.selectedRange,(l=this.delegate)!=null&&typeof l.compositionWillLoadSnapshot=="function"&&l.compositionWillLoadSnapshot(),this.setDocument(r??new g.Document),this.setSelection(f??[0,0]),(A=this.delegate)!=null&&typeof A.compositionDidLoadSnapshot=="function"?A.compositionDidLoadSnapshot():void 0},c.prototype.insertText=function(t,r){var l,A,f,m;return m=(r??{updatePosition:!0}).updatePosition,A=this.getSelectedRange(),this.setDocument(this.document.insertTextAtRange(t,A)),f=A[0],l=f+t.getLength(),m&&this.setSelection(l),this.notifyDelegateOfInsertionAtRange([f,l])},c.prototype.insertBlock=function(t){var r;return t==null&&(t=new g.Block),r=new g.Document([t]),this.insertDocument(r)},c.prototype.insertDocument=function(t){var r,l,A;return t==null&&(t=new g.Document),l=this.getSelectedRange(),this.setDocument(this.document.insertDocumentAtRange(t,l)),A=l[0],r=A+t.getLength(),this.setSelection(r),this.notifyDelegateOfInsertionAtRange([A,r])},c.prototype.insertString=function(t,r){var l,A;return l=this.getCurrentTextAttributes(),A=g.Text.textForStringWithAttributes(t,l),this.insertText(A,r)},c.prototype.insertBlockBreak=function(){var t,r,l;return r=this.getSelectedRange(),this.setDocument(this.document.insertBlockBreakAtRange(r)),l=r[0],t=l+1,this.setSelection(t),this.notifyDelegateOfInsertionAtRange([l,t])},c.prototype.insertLineBreak=function(){var t,r;return r=new g.LineBreakInsertion(this),r.shouldDecreaseListLevel()?(this.decreaseListLevel(),this.setSelection(r.startPosition)):r.shouldPrependListItem()?(t=new g.Document([r.block.copyWithoutText()]),this.insertDocument(t)):r.shouldInsertBlockBreak()?this.insertBlockBreak():r.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():r.shouldBreakFormattedBlock()?this.breakFormattedBlock(r):this.insertString(` +`)},c.prototype.insertHTML=function(t){var r,l,A,f;return r=g.Document.fromHTML(t),A=this.getSelectedRange(),this.setDocument(this.document.mergeDocumentAtRange(r,A)),f=A[0],l=f+r.getLength()-1,this.setSelection(l),this.notifyDelegateOfInsertionAtRange([f,l])},c.prototype.replaceHTML=function(t){var r,l,A;return r=g.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document),l=this.getLocationRange({strict:!1}),A=this.document.rangeFromLocationRange(l),this.setDocument(r),this.setSelection(A)},c.prototype.insertFile=function(t){return this.insertFiles([t])},c.prototype.insertFiles=function(t){var r,l,A,f,m,C;for(l=[],f=0,m=t.length;m>f;f++)A=t[f],(C=this.delegate)!=null&&C.compositionShouldAcceptFile(A)&&(r=g.Attachment.attachmentForFile(A),l.push(r));return this.insertAttachments(l)},c.prototype.insertAttachment=function(t){return this.insertAttachments([t])},c.prototype.insertAttachments=function(t){var r,l,A,f,m,C,S,L,O;for(L=new g.Text,f=0,m=t.length;m>f;f++)r=t[f],O=r.getType(),C=(S=g.config.attachments[O])!=null?S.presentation:void 0,A=this.getCurrentTextAttributes(),C&&(A.presentation=C),l=g.Text.textForAttachmentWithAttributes(r,A),L=L.appendText(l);return this.insertText(L)},c.prototype.shouldManageDeletingInDirection=function(t){var r;if(r=this.getLocationRange(),d(r)){if(t==="backward"&&r[0].offset===0||this.shouldManageMovingCursorInDirection(t))return!0}else if(r[0].index!==r[1].index)return!0;return!1},c.prototype.deleteInDirection=function(t,r){var l,A,f,m,C,S,L,O;return m=(r??{}).length,C=this.getLocationRange(),S=this.getSelectedRange(),L=d(S),L?f=t==="backward"&&C[0].offset===0:O=C[0].index!==C[1].index,f&&this.canDecreaseBlockAttributeLevel()&&(A=this.getBlock(),A.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(S[0]),A.isEmpty())?!1:(L&&(S=this.getExpandedRangeInDirection(t,{length:m}),t==="backward"&&(l=this.getAttachmentAtRange(S))),l?(this.editAttachment(l),!1):(this.setDocument(this.document.removeTextAtRange(S)),this.setSelection(S[0]),f||O?!1:void 0))},c.prototype.moveTextFromRange=function(t){var r;return r=this.getSelectedRange()[0],this.setDocument(this.document.moveTextFromRangeToPosition(t,r)),this.setSelection(r)},c.prototype.removeAttachment=function(t){var r;return(r=this.document.getRangeOfAttachment(t))?(this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(r)),this.setSelection(r[0])):void 0},c.prototype.removeLastBlockAttribute=function(){var t,r,l,A;return l=this.getSelectedRange(),A=l[0],r=l[1],t=this.document.getBlockAtPosition(r),this.removeCurrentAttribute(t.getLastAttribute()),this.setSelection(A)},v=" ",c.prototype.insertPlaceholder=function(){return this.placeholderPosition=this.getPosition(),this.insertString(v)},c.prototype.selectPlaceholder=function(){return this.placeholderPosition!=null?(this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+v.length]),this.getSelectedRange()):void 0},c.prototype.forgetPlaceholder=function(){return this.placeholderPosition=null},c.prototype.hasCurrentAttribute=function(t){var r;return r=this.currentAttributes[t],r!=null&&r!==!1},c.prototype.toggleCurrentAttribute=function(t){var r;return(r=!this.currentAttributes[t])?this.setCurrentAttribute(t,r):this.removeCurrentAttribute(t)},c.prototype.canSetCurrentAttribute=function(t){return h(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)},c.prototype.canSetCurrentTextAttribute=function(){var t,r,l,A,f;if(r=this.getSelectedDocument()){for(f=r.getAttachments(),l=0,A=f.length;A>l;l++)if(t=f[l],!t.hasContent())return!1;return!0}},c.prototype.canSetCurrentBlockAttribute=function(){var t;if(t=this.getBlock())return!t.isTerminalBlock()},c.prototype.setCurrentAttribute=function(t,r){return h(t)?this.setBlockAttribute(t,r):(this.setTextAttribute(t,r),this.currentAttributes[t]=r,this.notifyDelegateOfCurrentAttributesChange())},c.prototype.setTextAttribute=function(t,r){var l,A,f,m;if(A=this.getSelectedRange())return f=A[0],l=A[1],f!==l?this.setDocument(this.document.addAttributeAtRange(t,r,A)):t==="href"?(m=g.Text.textForStringWithAttributes(r,{href:r}),this.insertText(m)):void 0},c.prototype.setBlockAttribute=function(t,r){var l,A;if(A=this.getSelectedRange())return this.canSetCurrentAttribute(t)?(l=this.getBlock(),this.setDocument(this.document.applyBlockAttributeAtRange(t,r,A)),this.setSelection(A)):void 0},c.prototype.removeCurrentAttribute=function(t){return h(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())},c.prototype.removeTextAttribute=function(t){var r;if(r=this.getSelectedRange())return this.setDocument(this.document.removeAttributeAtRange(t,r))},c.prototype.removeBlockAttribute=function(t){var r;if(r=this.getSelectedRange())return this.setDocument(this.document.removeAttributeAtRange(t,r))},c.prototype.canDecreaseNestingLevel=function(){var t;return((t=this.getBlock())!=null?t.getNestingLevel():void 0)>0},c.prototype.canIncreaseNestingLevel=function(){var t,r,l;if(t=this.getBlock())return(l=h(t.getLastNestableAttribute()))!=null&&l.listAttribute?(r=this.getPreviousBlock())?x(r.getListItemAttributes(),t.getListItemAttributes()):void 0:t.getNestingLevel()>0},c.prototype.decreaseNestingLevel=function(){var t;if(t=this.getBlock())return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))},c.prototype.increaseNestingLevel=function(){var t;if(t=this.getBlock())return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))},c.prototype.canDecreaseBlockAttributeLevel=function(){var t;return((t=this.getBlock())!=null?t.getAttributeLevel():void 0)>0},c.prototype.decreaseBlockAttributeLevel=function(){var t,r;return(t=(r=this.getBlock())!=null?r.getLastAttribute():void 0)?this.removeCurrentAttribute(t):void 0},c.prototype.decreaseListLevel=function(){var t,r,l,A,f,m;for(m=this.getSelectedRange()[0],f=this.document.locationFromPosition(m).index,l=f,t=this.getBlock().getAttributeLevel();(r=this.document.getBlockAtIndex(l+1))&&r.isListItem()&&r.getAttributeLevel()>t;)l++;return m=this.document.positionFromLocation({index:f,offset:0}),A=this.document.positionFromLocation({index:l,offset:0}),this.setDocument(this.document.removeLastListAttributeAtRange([m,A]))},c.prototype.updateCurrentAttributes=function(){var t,r,l,A,f,m;if(m=this.getSelectedRange({ignoreLock:!0})){for(r=this.document.getCommonAttributesAtRange(m),f=y(),l=0,A=f.length;A>l;l++)t=f[l],r[t]||this.canSetCurrentAttribute(t)||(r[t]=!1);if(!a(r,this.currentAttributes))return this.currentAttributes=r,this.notifyDelegateOfCurrentAttributesChange()}},c.prototype.getCurrentAttributes=function(){return b.call({},this.currentAttributes)},c.prototype.getCurrentTextAttributes=function(){var t,r,l,A;t={},l=this.currentAttributes;for(r in l)A=l[r],A!==!1&&o(r)&&(t[r]=A);return t},c.prototype.freezeSelection=function(){return this.setCurrentAttribute("frozen",!0)},c.prototype.thawSelection=function(){return this.removeCurrentAttribute("frozen")},c.prototype.hasFrozenSelection=function(){return this.hasCurrentAttribute("frozen")},c.proxyMethod("getSelectionManager().getPointRange"),c.proxyMethod("getSelectionManager().setLocationRangeFromPointRange"),c.proxyMethod("getSelectionManager().createLocationRangeFromDOMRange"),c.proxyMethod("getSelectionManager().locationIsCursorTarget"),c.proxyMethod("getSelectionManager().selectionIsExpanded"),c.proxyMethod("delegate?.getSelectionManager"),c.prototype.setSelection=function(t){var r,l;return r=this.document.locationRangeFromRange(t),(l=this.delegate)!=null?l.compositionDidRequestChangingSelectionToLocationRange(r):void 0},c.prototype.getSelectedRange=function(){var t;return(t=this.getLocationRange())?this.document.rangeFromLocationRange(t):void 0},c.prototype.setSelectedRange=function(t){var r;return r=this.document.locationRangeFromRange(t),this.getSelectionManager().setLocationRange(r)},c.prototype.getPosition=function(){var t;return(t=this.getLocationRange())?this.document.positionFromLocation(t[0]):void 0},c.prototype.getLocationRange=function(t){var r,l;return(r=(l=this.targetLocationRange)!=null?l:this.getSelectionManager().getLocationRange(t))!=null?r:e({index:0,offset:0})},c.prototype.withTargetLocationRange=function(t,r){var l;this.targetLocationRange=t;try{l=r()}finally{this.targetLocationRange=null}return l},c.prototype.withTargetRange=function(t,r){var l;return l=this.document.locationRangeFromRange(t),this.withTargetLocationRange(l,r)},c.prototype.withTargetDOMRange=function(t,r){var l;return l=this.createLocationRangeFromDOMRange(t,{strict:!1}),this.withTargetLocationRange(l,r)},c.prototype.getExpandedRangeInDirection=function(t,r){var l,A,f,m;return A=(r??{}).length,f=this.getSelectedRange(),m=f[0],l=f[1],t==="backward"?A?m-=A:m=this.translateUTF16PositionFromOffset(m,-1):A?l+=A:l=this.translateUTF16PositionFromOffset(l,1),e([m,l])},c.prototype.shouldManageMovingCursorInDirection=function(t){var r;return this.editingAttachment?!0:(r=this.getExpandedRangeInDirection(t),this.getAttachmentAtRange(r)!=null)},c.prototype.moveCursorInDirection=function(t){var r,l,A,f;return this.editingAttachment?A=this.document.getRangeOfAttachment(this.editingAttachment):(f=this.getSelectedRange(),A=this.getExpandedRangeInDirection(t),l=!i(f,A)),this.setSelectedRange(t==="backward"?A[0]:A[1]),l&&(r=this.getAttachmentAtRange(A))?this.editAttachment(r):void 0},c.prototype.expandSelectionInDirection=function(t,r){var l,A;return l=(r??{}).length,A=this.getExpandedRangeInDirection(t,{length:l}),this.setSelectedRange(A)},c.prototype.expandSelectionForEditing=function(){return this.hasCurrentAttribute("href")?this.expandSelectionAroundCommonAttribute("href"):void 0},c.prototype.expandSelectionAroundCommonAttribute=function(t){var r,l;return r=this.getPosition(),l=this.document.getRangeOfCommonAttributeAtPosition(t,r),this.setSelectedRange(l)},c.prototype.selectionContainsAttachments=function(){var t;return((t=this.getSelectedAttachments())!=null?t.length:void 0)>0},c.prototype.selectionIsInCursorTarget=function(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())},c.prototype.positionIsCursorTarget=function(t){var r;return(r=this.document.locationFromPosition(t))?this.locationIsCursorTarget(r):void 0},c.prototype.positionIsBlockBreak=function(t){var r;return(r=this.document.getPieceAtPosition(t))!=null?r.isBlockBreak():void 0},c.prototype.getSelectedDocument=function(){var t;return(t=this.getSelectedRange())?this.document.getDocumentAtRange(t):void 0},c.prototype.getSelectedAttachments=function(){var t;return(t=this.getSelectedDocument())!=null?t.getAttachments():void 0},c.prototype.getAttachments=function(){return this.attachments.slice(0)},c.prototype.refreshAttachments=function(){var t,r,l,A,f,m,C,S,L,O,D,R;for(l=this.document.getAttachments(),S=u(this.attachments,l),t=S.added,D=S.removed,this.attachments=l,A=0,m=D.length;m>A;A++)r=D[A],r.delegate=null,(L=this.delegate)!=null&&typeof L.compositionDidRemoveAttachment=="function"&&L.compositionDidRemoveAttachment(r);for(R=[],f=0,C=t.length;C>f;f++)r=t[f],r.delegate=this,R.push((O=this.delegate)!=null&&typeof O.compositionDidAddAttachment=="function"?O.compositionDidAddAttachment(r):void 0);return R},c.prototype.attachmentDidChangeAttributes=function(t){var r;return this.revision++,(r=this.delegate)!=null&&typeof r.compositionDidEditAttachment=="function"?r.compositionDidEditAttachment(t):void 0},c.prototype.attachmentDidChangePreviewURL=function(t){var r;return this.revision++,(r=this.delegate)!=null&&typeof r.compositionDidChangeAttachmentPreviewURL=="function"?r.compositionDidChangeAttachmentPreviewURL(t):void 0},c.prototype.editAttachment=function(t,r){var l;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,(l=this.delegate)!=null&&typeof l.compositionDidStartEditingAttachment=="function"?l.compositionDidStartEditingAttachment(this.editingAttachment,r):void 0},c.prototype.stopEditingAttachment=function(){var t;if(this.editingAttachment)return(t=this.delegate)!=null&&typeof t.compositionDidStopEditingAttachment=="function"&&t.compositionDidStopEditingAttachment(this.editingAttachment),this.editingAttachment=null},c.prototype.updateAttributesForAttachment=function(t,r){return this.setDocument(this.document.updateAttributesForAttachment(t,r))},c.prototype.removeAttributeForAttachment=function(t,r){return this.setDocument(this.document.removeAttributeForAttachment(t,r))},c.prototype.breakFormattedBlock=function(t){var r,l,A,f,m;return l=t.document,r=t.block,f=t.startPosition,m=[f-1,f],r.getBlockBreakPosition()===t.startLocation.offset?(r.breaksOnReturn()&&t.nextCharacter===` +`?f+=1:l=l.removeTextAtRange(m),m=[f,f]):t.nextCharacter===` +`?t.previousCharacter===` +`?m=[f-1,f+1]:(m=[f,f+1],f+=1):t.startLocation.offset-1!==0&&(f+=1),A=new g.Document([r.removeLastAttribute().copyWithoutText()]),this.setDocument(l.insertDocumentAtRange(A,m)),this.setSelection(f)},c.prototype.getPreviousBlock=function(){var t,r;return(r=this.getLocationRange())&&(t=r[0].index,t>0)?this.document.getBlockAtIndex(t-1):void 0},c.prototype.getBlock=function(){var t;return(t=this.getLocationRange())?this.document.getBlockAtIndex(t[0].index):void 0},c.prototype.getAttachmentAtRange=function(t){var r;return r=this.document.getDocumentAtRange(t),r.toString()===g.OBJECT_REPLACEMENT_CHARACTER+` +`?r.getAttachments()[0]:void 0},c.prototype.notifyDelegateOfCurrentAttributesChange=function(){var t;return(t=this.delegate)!=null&&typeof t.compositionDidChangeCurrentAttributes=="function"?t.compositionDidChangeCurrentAttributes(this.currentAttributes):void 0},c.prototype.notifyDelegateOfInsertionAtRange=function(t){var r;return(r=this.delegate)!=null&&typeof r.compositionDidPerformInsertionAtRange=="function"?r.compositionDidPerformInsertionAtRange(t):void 0},c.prototype.translateUTF16PositionFromOffset=function(t,r){var l,A;return A=this.document.toUTF16String(),l=A.offsetFromUCS2Offset(t),A.offsetToUCS2Offset(l+r)},c}(g.BasicObject)}.call(this),function(){var x=function(y,h){function o(){this.constructor=y}for(var e in h)b.call(h,e)&&(y[e]=h[e]);return o.prototype=h.prototype,y.prototype=new o,y.__super__=h.prototype,y},b={}.hasOwnProperty;g.UndoManager=function(y){function h(e){this.composition=e,this.undoEntries=[],this.redoEntries=[]}var o;return x(h,y),h.prototype.recordUndoEntry=function(e,a){var d,i,u,s,n;return s=a??{},i=s.context,d=s.consolidatable,u=this.undoEntries.slice(-1)[0],d&&o(u,e,i)?void 0:(n=this.createEntry({description:e,context:i}),this.undoEntries.push(n),this.redoEntries=[])},h.prototype.undo=function(){var e,a;return(a=this.undoEntries.pop())?(e=this.createEntry(a),this.redoEntries.push(e),this.composition.loadSnapshot(a.snapshot)):void 0},h.prototype.redo=function(){var e,a;return(e=this.redoEntries.pop())?(a=this.createEntry(e),this.undoEntries.push(a),this.composition.loadSnapshot(e.snapshot)):void 0},h.prototype.canUndo=function(){return this.undoEntries.length>0},h.prototype.canRedo=function(){return this.redoEntries.length>0},h.prototype.createEntry=function(e){var a,d,i;return i=e??{},d=i.description,a=i.context,{description:d?.toString(),context:JSON.stringify(a),snapshot:this.composition.getSnapshot()}},o=function(e,a,d){return e?.description===a?.toString()&&e?.context===JSON.stringify(d)},h}(g.BasicObject)}.call(this),function(){var x;g.attachmentGalleryFilter=function(b){var y;return y=new x(b),y.perform(),y.getSnapshot()},x=function(){function b(e){this.document=e.document,this.selectedRange=e.selectedRange}var y,h,o;return y="attachmentGallery",h="presentation",o="gallery",b.prototype.perform=function(){return this.removeBlockAttribute(),this.applyBlockAttribute()},b.prototype.getSnapshot=function(){return{document:this.document,selectedRange:this.selectedRange}},b.prototype.removeBlockAttribute=function(){var e,a,d,i,u;for(i=this.findRangesOfBlocks(),u=[],e=0,a=i.length;a>e;e++)d=i[e],u.push(this.document=this.document.removeAttributeAtRange(y,d));return u},b.prototype.applyBlockAttribute=function(){var e,a,d,i,u,s;for(d=0,u=this.findRangesOfPieces(),s=[],e=0,a=u.length;a>e;e++)i=u[e],i[1]-i[0]>1&&(i[0]+=d,i[1]+=d,this.document.getCharacterAtPosition(i[1])!==` +`&&(this.document=this.document.insertBlockBreakAtRange(i[1]),i[1]a;a++)e=o[a],this.manageAttachment(e)}return x(h,y),h.prototype.getAttachments=function(){var o,e,a,d;a=this.managedAttachments,d=[];for(e in a)o=a[e],d.push(o);return d},h.prototype.manageAttachment=function(o){var e,a;return(e=this.managedAttachments)[a=o.id]!=null?e[a]:e[a]=new g.ManagedAttachment(this,o)},h.prototype.attachmentIsManaged=function(o){return o.id in this.managedAttachments},h.prototype.requestRemovalOfAttachment=function(o){var e;return this.attachmentIsManaged(o)&&(e=this.delegate)!=null&&typeof e.attachmentManagerDidRequestRemovalOfAttachment=="function"?e.attachmentManagerDidRequestRemovalOfAttachment(o):void 0},h.prototype.unmanageAttachment=function(o){var e;return e=this.managedAttachments[o.id],delete this.managedAttachments[o.id],e},h}(g.BasicObject)}.call(this),function(){var x,b,y,h,o,e,a,d,i,u,s;x=g.elementContainsNode,b=g.findChildIndexOfNode,o=g.nodeIsBlockStart,e=g.nodeIsBlockStartComment,h=g.nodeIsBlockContainer,a=g.nodeIsCursorTarget,d=g.nodeIsEmptyTextNode,i=g.nodeIsTextNode,y=g.nodeIsAttachmentElement,u=g.tagName,s=g.walkTree,g.LocationMapper=function(){function n(r){this.element=r}var p,c,v,t;return n.prototype.findLocationFromContainerAndOffset=function(r,l,A){var f,m,C,S,L,O,D;for(O=(A??{strict:!0}).strict,m=0,C=!1,S={index:0,offset:0},(f=this.findAttachmentElementParentForNode(r))&&(r=f.parentNode,l=b(f)),D=s(this.element,{usingFilter:v});D.nextNode();){if(L=D.currentNode,L===r&&i(r)){a(L)||(S.offset+=l);break}if(L.parentNode===r){if(m++===l)break}else if(!x(r,L)&&m>0)break;o(L,{strict:O})?(C&&S.index++,S.offset=0,C=!0):S.offset+=c(L)}return S},n.prototype.findContainerAndOffsetFromLocation=function(r){var l,A,f,m,C;if(r.index===0&&r.offset===0){for(l=this.element,m=0;l.firstChild;)if(l=l.firstChild,h(l)){m=1;break}return[l,m]}if(C=this.findNodeAndOffsetFromLocation(r),A=C[0],f=C[1],A){if(i(A))c(A)===0?(l=A.parentNode.parentNode,m=b(A.parentNode),a(A,{name:"right"})&&m++):(l=A,m=r.offset-f);else{if(l=A.parentNode,!o(A.previousSibling)&&!h(l))for(;A===l.lastChild&&(A=l,l=l.parentNode,!h(l)););m=b(A),r.offset!==0&&m++}return[l,m]}},n.prototype.findNodeAndOffsetFromLocation=function(r){var l,A,f,m,C,S,L,O;for(L=0,O=this.getSignificantNodesForIndex(r.index),A=0,f=O.length;f>A;A++){if(l=O[A],m=c(l),r.offset<=L+m)if(i(l)){if(C=l,S=L,r.offset===S&&a(C))break}else C||(C=l,S=L);if(L+=m,L>r.offset)break}return[C,S]},n.prototype.findAttachmentElementParentForNode=function(r){for(;r&&r!==this.element;){if(y(r))return r;r=r.parentNode}},n.prototype.getSignificantNodesForIndex=function(r){var l,A,f,m,C;for(f=[],C=s(this.element,{usingFilter:p}),m=!1;C.nextNode();)if(A=C.currentNode,e(A)){if(typeof l<"u"&&l!==null?l++:l=0,l===r)m=!0;else if(m)break}else m&&f.push(A);return f},c=function(r){var l;return r.nodeType===Node.TEXT_NODE?a(r)?0:(l=r.textContent,l.length):u(r)==="br"||y(r)?1:0},p=function(r){return t(r)===NodeFilter.FILTER_ACCEPT?v(r):NodeFilter.FILTER_REJECT},t=function(r){return d(r)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},v=function(r){return y(r.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},n}()}.call(this),function(){var x,b,y=[].slice;x=g.getDOMRange,b=g.setDOMRange,g.PointMapper=function(){function h(){}return h.prototype.createDOMRangeFromPoint=function(o){var e,a,d,i,u,s,n,p;if(n=o.x,p=o.y,document.caretPositionFromPoint)return u=document.caretPositionFromPoint(n,p),d=u.offsetNode,a=u.offset,e=document.createRange(),e.setStart(d,a),e;if(document.caretRangeFromPoint)return document.caretRangeFromPoint(n,p);if(document.body.createTextRange){i=x();try{s=document.body.createTextRange(),s.moveToPoint(n,p),s.select()}catch{}return e=x(),b(i),e}},h.prototype.getClientRectsForDOMRange=function(o){var e,a,d;return a=y.call(o.getClientRects()),d=a[0],e=a[a.length-1],[d,e]},h}()}.call(this),function(){var x,b=function(e,a){return function(){return e.apply(a,arguments)}},y=function(e,a){function d(){this.constructor=e}for(var i in a)h.call(a,i)&&(e[i]=a[i]);return d.prototype=a.prototype,e.prototype=new d,e.__super__=a.prototype,e},h={}.hasOwnProperty,o=[].indexOf||function(e){for(var a=0,d=this.length;d>a;a++)if(a in this&&this[a]===e)return a;return-1};x=g.getDOMRange,g.SelectionChangeObserver=function(e){function a(){this.run=b(this.run,this),this.update=b(this.update,this),this.selectionManagers=[]}var d;return y(a,e),a.prototype.start=function(){return this.started?void 0:(this.started=!0,"onselectionchange"in document?document.addEventListener("selectionchange",this.update,!0):this.run())},a.prototype.stop=function(){return this.started?(this.started=!1,document.removeEventListener("selectionchange",this.update,!0)):void 0},a.prototype.registerSelectionManager=function(i){return o.call(this.selectionManagers,i)<0?(this.selectionManagers.push(i),this.start()):void 0},a.prototype.unregisterSelectionManager=function(i){var u;return this.selectionManagers=function(){var s,n,p,c;for(p=this.selectionManagers,c=[],s=0,n=p.length;n>s;s++)u=p[s],u!==i&&c.push(u);return c}.call(this),this.selectionManagers.length===0?this.stop():void 0},a.prototype.notifySelectionManagersOfSelectionChange=function(){var i,u,s,n,p;for(s=this.selectionManagers,n=[],i=0,u=s.length;u>i;i++)p=s[i],n.push(p.selectionDidChange());return n},a.prototype.update=function(){var i;return i=x(),d(i,this.domRange)?void 0:(this.domRange=i,this.notifySelectionManagersOfSelectionChange())},a.prototype.reset=function(){return this.domRange=null,this.update()},a.prototype.run=function(){return this.started?(this.update(),requestAnimationFrame(this.run)):void 0},d=function(i,u){return i?.startContainer===u?.startContainer&&i?.startOffset===u?.startOffset&&i?.endContainer===u?.endContainer&&i?.endOffset===u?.endOffset},a}(g.BasicObject),g.selectionChangeObserver==null&&(g.selectionChangeObserver=new g.SelectionChangeObserver)}.call(this),function(){var x,b,y,h,o,e,a,d,i,u,s=function(c,v){return function(){return c.apply(v,arguments)}},n=function(c,v){function t(){this.constructor=c}for(var r in v)p.call(v,r)&&(c[r]=v[r]);return t.prototype=v.prototype,c.prototype=new t,c.__super__=v.prototype,c},p={}.hasOwnProperty;y=g.getDOMSelection,b=g.getDOMRange,u=g.setDOMRange,x=g.elementContainsNode,e=g.nodeIsCursorTarget,o=g.innerElementIsActive,h=g.handleEvent,a=g.normalizeRange,d=g.rangeIsCollapsed,i=g.rangesAreEqual,g.SelectionManager=function(c){function v(t){this.element=t,this.selectionDidChange=s(this.selectionDidChange,this),this.didMouseDown=s(this.didMouseDown,this),this.locationMapper=new g.LocationMapper(this.element),this.pointMapper=new g.PointMapper,this.lockCount=0,h("mousedown",{onElement:this.element,withCallback:this.didMouseDown})}return n(v,c),v.prototype.getLocationRange=function(t){var r,l;return t==null&&(t={}),r=t.strict===!1?this.createLocationRangeFromDOMRange(b(),{strict:!1}):t.ignoreLock?this.currentLocationRange:(l=this.lockedLocationRange)!=null?l:this.currentLocationRange},v.prototype.setLocationRange=function(t){var r;if(!this.lockedLocationRange)return t=a(t),(r=this.createDOMRangeFromLocationRange(t))?(u(r),this.updateCurrentLocationRange(t)):void 0},v.prototype.setLocationRangeFromPointRange=function(t){var r,l;return t=a(t),l=this.getLocationAtPoint(t[0]),r=this.getLocationAtPoint(t[1]),this.setLocationRange([l,r])},v.prototype.getClientRectAtLocationRange=function(t){var r;return(r=this.createDOMRangeFromLocationRange(t))?this.getClientRectsForDOMRange(r)[1]:void 0},v.prototype.locationIsCursorTarget=function(t){var r,l,A;return A=this.findNodeAndOffsetFromLocation(t),r=A[0],l=A[1],e(r)},v.prototype.lock=function(){return this.lockCount++===0?(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange()):void 0},v.prototype.unlock=function(){var t;return--this.lockCount===0&&(t=this.lockedLocationRange,this.lockedLocationRange=null,t!=null)?this.setLocationRange(t):void 0},v.prototype.clearSelection=function(){var t;return(t=y())!=null?t.removeAllRanges():void 0},v.prototype.selectionIsCollapsed=function(){var t;return((t=b())!=null?t.collapsed:void 0)===!0},v.prototype.selectionIsExpanded=function(){return!this.selectionIsCollapsed()},v.prototype.createLocationRangeFromDOMRange=function(t,r){var l,A;if(t!=null&&this.domRangeWithinElement(t)&&(A=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,r)))return t.collapsed||(l=this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,r)),a([A,l])},v.proxyMethod("locationMapper.findLocationFromContainerAndOffset"),v.proxyMethod("locationMapper.findContainerAndOffsetFromLocation"),v.proxyMethod("locationMapper.findNodeAndOffsetFromLocation"),v.proxyMethod("pointMapper.createDOMRangeFromPoint"),v.proxyMethod("pointMapper.getClientRectsForDOMRange"),v.prototype.didMouseDown=function(){return this.pauseTemporarily()},v.prototype.pauseTemporarily=function(){var t,r,l,A;return this.paused=!0,r=function(f){return function(){var m,C,S;for(f.paused=!1,clearTimeout(A),C=0,S=l.length;S>C;C++)m=l[C],m.destroy();return x(document,f.element)?f.selectionDidChange():void 0}}(this),A=setTimeout(r,200),l=function(){var f,m,C,S;for(C=["mousemove","keydown"],S=[],f=0,m=C.length;m>f;f++)t=C[f],S.push(h(t,{onElement:document,withCallback:r}));return S}()},v.prototype.selectionDidChange=function(){return this.paused||o(this.element)?void 0:this.updateCurrentLocationRange()},v.prototype.updateCurrentLocationRange=function(t){var r;return(t??(t=this.createLocationRangeFromDOMRange(b())))&&!i(t,this.currentLocationRange)?(this.currentLocationRange=t,(r=this.delegate)!=null&&typeof r.locationRangeDidChange=="function"?r.locationRangeDidChange(this.currentLocationRange.slice(0)):void 0):void 0},v.prototype.createDOMRangeFromLocationRange=function(t){var r,l,A,f;return A=this.findContainerAndOffsetFromLocation(t[0]),l=d(t)?A:(f=this.findContainerAndOffsetFromLocation(t[1]))!=null?f:A,A!=null&&l!=null?(r=document.createRange(),r.setStart.apply(r,A),r.setEnd.apply(r,l),r):void 0},v.prototype.getLocationAtPoint=function(t){var r,l;return(r=this.createDOMRangeFromPoint(t))&&(l=this.createLocationRangeFromDOMRange(r))!=null?l[0]:void 0},v.prototype.domRangeWithinElement=function(t){return t.collapsed?x(this.element,t.startContainer):x(this.element,t.startContainer)&&x(this.element,t.endContainer)},v}(g.BasicObject)}.call(this),function(){var x,b,y,h,o=function(d,i){function u(){this.constructor=d}for(var s in i)e.call(i,s)&&(d[s]=i[s]);return u.prototype=i.prototype,d.prototype=new u,d.__super__=i.prototype,d},e={}.hasOwnProperty,a=[].slice;y=g.rangeIsCollapsed,h=g.rangesAreEqual,b=g.objectsAreEqual,x=g.getBlockConfig,g.EditorController=function(d){function i(s){var n,p;this.editorElement=s.editorElement,n=s.document,p=s.html,this.selectionManager=new g.SelectionManager(this.editorElement),this.selectionManager.delegate=this,this.composition=new g.Composition,this.composition.delegate=this,this.attachmentManager=new g.AttachmentManager(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=new g["Level"+g.config.input.getLevel()+"InputController"](this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new g.CompositionController(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new g.ToolbarController(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new g.Editor(this.composition,this.selectionManager,this.editorElement),n!=null?this.editor.loadDocument(n):this.editor.loadHTML(p)}var u;return o(i,d),i.prototype.registerSelectionManager=function(){return g.selectionChangeObserver.registerSelectionManager(this.selectionManager)},i.prototype.unregisterSelectionManager=function(){return g.selectionChangeObserver.unregisterSelectionManager(this.selectionManager)},i.prototype.render=function(){return this.compositionController.render()},i.prototype.reparse=function(){return this.composition.replaceHTML(this.editorElement.innerHTML)},i.prototype.compositionDidChangeDocument=function(){return this.notifyEditorElement("document-change"),this.handlingInput?void 0:this.render()},i.prototype.compositionDidChangeCurrentAttributes=function(s){return this.currentAttributes=s,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement("attributes-change",{attributes:this.currentAttributes})},i.prototype.compositionDidPerformInsertionAtRange=function(s){return this.pasting?this.pastedRange=s:void 0},i.prototype.compositionShouldAcceptFile=function(s){return this.notifyEditorElement("file-accept",{file:s})},i.prototype.compositionDidAddAttachment=function(s){var n;return n=this.attachmentManager.manageAttachment(s),this.notifyEditorElement("attachment-add",{attachment:n})},i.prototype.compositionDidEditAttachment=function(s){var n;return this.compositionController.rerenderViewForObject(s),n=this.attachmentManager.manageAttachment(s),this.notifyEditorElement("attachment-edit",{attachment:n}),this.notifyEditorElement("change")},i.prototype.compositionDidChangeAttachmentPreviewURL=function(s){return this.compositionController.invalidateViewForObject(s),this.notifyEditorElement("change")},i.prototype.compositionDidRemoveAttachment=function(s){var n;return n=this.attachmentManager.unmanageAttachment(s),this.notifyEditorElement("attachment-remove",{attachment:n})},i.prototype.compositionDidStartEditingAttachment=function(s,n){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(s),this.compositionController.installAttachmentEditorForAttachment(s,n),this.selectionManager.setLocationRange(this.attachmentLocationRange)},i.prototype.compositionDidStopEditingAttachment=function(){return this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null},i.prototype.compositionDidRequestChangingSelectionToLocationRange=function(s){return!this.loadingSnapshot||this.isFocused()?(this.requestedLocationRange=s,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()):void 0},i.prototype.compositionWillLoadSnapshot=function(){return this.loadingSnapshot=!0},i.prototype.compositionDidLoadSnapshot=function(){return this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1},i.prototype.getSelectionManager=function(){return this.selectionManager},i.proxyMethod("getSelectionManager().setLocationRange"),i.proxyMethod("getSelectionManager().getLocationRange"),i.prototype.attachmentManagerDidRequestRemovalOfAttachment=function(s){return this.removeAttachment(s)},i.prototype.compositionControllerWillSyncDocumentView=function(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()},i.prototype.compositionControllerDidSyncDocumentView=function(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement("sync")},i.prototype.compositionControllerDidRender=function(){return this.requestedLocationRange!=null&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement("render")),this.renderedCompositionRevision=this.composition.revision},i.prototype.compositionControllerDidFocus=function(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement("focus")},i.prototype.compositionControllerDidBlur=function(){return this.notifyEditorElement("blur")},i.prototype.compositionControllerDidSelectAttachment=function(s,n){return this.toolbarController.hideDialog(),this.composition.editAttachment(s,n)},i.prototype.compositionControllerDidRequestDeselectingAttachment=function(s){var n,p;return n=(p=this.attachmentLocationRange)!=null?p:this.composition.document.getLocationRangeOfAttachment(s),this.selectionManager.setLocationRange(n[1])},i.prototype.compositionControllerWillUpdateAttachment=function(s){return this.editor.recordUndoEntry("Edit Attachment",{context:s.id,consolidatable:!0})},i.prototype.compositionControllerDidRequestRemovalOfAttachment=function(s){return this.removeAttachment(s)},i.prototype.inputControllerWillHandleInput=function(){return this.handlingInput=!0,this.requestedRender=!1},i.prototype.inputControllerDidRequestRender=function(){return this.requestedRender=!0},i.prototype.inputControllerDidHandleInput=function(){return this.handlingInput=!1,this.requestedRender?(this.requestedRender=!1,this.render()):void 0},i.prototype.inputControllerDidAllowUnhandledInput=function(){return this.notifyEditorElement("change")},i.prototype.inputControllerDidRequestReparse=function(){return this.reparse()},i.prototype.inputControllerWillPerformTyping=function(){return this.recordTypingUndoEntry()},i.prototype.inputControllerWillPerformFormatting=function(s){return this.recordFormattingUndoEntry(s)},i.prototype.inputControllerWillCutText=function(){return this.editor.recordUndoEntry("Cut")},i.prototype.inputControllerWillPaste=function(s){return this.editor.recordUndoEntry("Paste"),this.pasting=!0,this.notifyEditorElement("before-paste",{paste:s})},i.prototype.inputControllerDidPaste=function(s){return s.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement("paste",{paste:s})},i.prototype.inputControllerWillMoveText=function(){return this.editor.recordUndoEntry("Move")},i.prototype.inputControllerWillAttachFiles=function(){return this.editor.recordUndoEntry("Drop Files")},i.prototype.inputControllerWillPerformUndo=function(){return this.editor.undo()},i.prototype.inputControllerWillPerformRedo=function(){return this.editor.redo()},i.prototype.inputControllerDidReceiveKeyboardCommand=function(s){return this.toolbarController.applyKeyboardCommand(s)},i.prototype.inputControllerDidStartDrag=function(){return this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()},i.prototype.inputControllerDidReceiveDragOverPoint=function(s){return this.selectionManager.setLocationRangeFromPointRange(s)},i.prototype.inputControllerDidCancelDrag=function(){return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null},i.prototype.locationRangeDidChange=function(s){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!h(this.attachmentLocationRange,s)&&this.composition.stopEditingAttachment(),this.notifyEditorElement("selection-change")},i.prototype.toolbarDidClickButton=function(){return this.getLocationRange()?void 0:this.setLocationRange({index:0,offset:0})},i.prototype.toolbarDidInvokeAction=function(s){return this.invokeAction(s)},i.prototype.toolbarDidToggleAttribute=function(s){return this.recordFormattingUndoEntry(s),this.composition.toggleCurrentAttribute(s),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},i.prototype.toolbarDidUpdateAttribute=function(s,n){return this.recordFormattingUndoEntry(s),this.composition.setCurrentAttribute(s,n),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},i.prototype.toolbarDidRemoveAttribute=function(s){return this.recordFormattingUndoEntry(s),this.composition.removeCurrentAttribute(s),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},i.prototype.toolbarWillShowDialog=function(){return this.composition.expandSelectionForEditing(),this.freezeSelection()},i.prototype.toolbarDidShowDialog=function(s){return this.notifyEditorElement("toolbar-dialog-show",{dialogName:s})},i.prototype.toolbarDidHideDialog=function(s){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement("toolbar-dialog-hide",{dialogName:s})},i.prototype.freezeSelection=function(){return this.selectionFrozen?void 0:(this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render())},i.prototype.thawSelection=function(){return this.selectionFrozen?(this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()):void 0},i.prototype.actions={undo:{test:function(){return this.editor.canUndo()},perform:function(){return this.editor.undo()}},redo:{test:function(){return this.editor.canRedo()},perform:function(){return this.editor.redo()}},link:{test:function(){return this.editor.canActivateAttribute("href")}},increaseNestingLevel:{test:function(){return this.editor.canIncreaseNestingLevel()},perform:function(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test:function(){return this.editor.canDecreaseNestingLevel()},perform:function(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:function(){return!0},perform:function(){return g.config.input.pickFiles(this.editor.insertFiles)}}},i.prototype.canInvokeAction=function(s){var n,p;return this.actionIsExternal(s)?!0:!!((n=this.actions[s])!=null&&(p=n.test)!=null&&p.call(this))},i.prototype.invokeAction=function(s){var n,p;return this.actionIsExternal(s)?this.notifyEditorElement("action-invoke",{actionName:s}):(n=this.actions[s])!=null&&(p=n.perform)!=null?p.call(this):void 0},i.prototype.actionIsExternal=function(s){return/^x-./.test(s)},i.prototype.getCurrentActions=function(){var s,n;n={};for(s in this.actions)n[s]=this.canInvokeAction(s);return n},i.prototype.updateCurrentActions=function(){var s;return s=this.getCurrentActions(),b(s,this.currentActions)?void 0:(this.currentActions=s,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement("actions-change",{actions:this.currentActions}))},i.prototype.runEditorFilters=function(){var s,n,p,c,v,t,r,l;for(l=this.composition.getSnapshot(),v=this.editor.filters,p=0,c=v.length;c>p;p++)n=v[p],s=l.document,r=l.selectedRange,l=(t=n.call(this.editor,l))!=null?t:{},l.document==null&&(l.document=s),l.selectedRange==null&&(l.selectedRange=r);return u(l,this.composition.getSnapshot())?void 0:this.composition.loadSnapshot(l)},u=function(s,n){return h(s.selectedRange,n.selectedRange)&&s.document.isEqualTo(n.document)},i.prototype.updateInputElement=function(){var s,n;return s=this.compositionController.getSerializableElement(),n=g.serializeToContentType(s,"text/html"),this.editorElement.setInputElementValue(n)},i.prototype.notifyEditorElement=function(s,n){switch(s){case"document-change":this.documentChangedSinceLastRender=!0;break;case"render":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement("change"));break;case"change":case"attachment-add":case"attachment-edit":case"attachment-remove":this.updateInputElement()}return this.editorElement.notify(s,n)},i.prototype.removeAttachment=function(s){return this.editor.recordUndoEntry("Delete Attachment"),this.composition.removeAttachment(s),this.render()},i.prototype.recordFormattingUndoEntry=function(s){var n,p;return n=x(s),p=this.selectionManager.getLocationRange(),n||!y(p)?this.editor.recordUndoEntry("Formatting",{context:this.getUndoContext(),consolidatable:!0}):void 0},i.prototype.recordTypingUndoEntry=function(){return this.editor.recordUndoEntry("Typing",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})},i.prototype.getUndoContext=function(){var s;return s=1<=arguments.length?a.call(arguments,0):[],[this.getLocationContext(),this.getTimeContext()].concat(a.call(s))},i.prototype.getLocationContext=function(){var s;return s=this.selectionManager.getLocationRange(),y(s)?s[0].index:s},i.prototype.getTimeContext=function(){return g.config.undoInterval>0?Math.floor(new Date().getTime()/g.config.undoInterval):0},i.prototype.isFocused=function(){var s;return this.editorElement===((s=this.editorElement.ownerDocument)!=null?s.activeElement:void 0)},i.prototype.isFocusedInvisibly=function(){return this.isFocused()&&!this.getLocationRange()},i}(g.Controller)}.call(this),function(){var x,b,y,h,o,e,a,d=[].indexOf||function(i){for(var u=0,s=this.length;s>u;u++)if(u in this&&this[u]===i)return u;return-1};b=g.browser,e=g.makeElement,a=g.triggerEvent,h=g.handleEvent,o=g.handleEventOnce,y=g.findClosestElementFromNode,x=g.AttachmentView.attachmentSelector,g.registerElement("trix-editor",function(){var i,u,s,n,p,c,v,t,r;return v=0,u=function(l){return!document.querySelector(":focus")&&l.hasAttribute("autofocus")&&document.querySelector("[autofocus]")===l?l.focus():void 0},t=function(l){return l.hasAttribute("contenteditable")?void 0:(l.setAttribute("contenteditable",""),o("focus",{onElement:l,withCallback:function(){return s(l)}}))},s=function(l){return p(l),r(l)},p=function(l){return typeof document.queryCommandSupported=="function"&&document.queryCommandSupported("enableObjectResizing")?(document.execCommand("enableObjectResizing",!1,!1),h("mscontrolselect",{onElement:l,preventDefault:!0})):void 0},r=function(){var l;return typeof document.queryCommandSupported=="function"&&document.queryCommandSupported("DefaultParagraphSeparator")&&(l=g.config.blockAttributes.default.tagName,l==="div"||l==="p")?document.execCommand("DefaultParagraphSeparator",!1,l):void 0},i=function(l){return l.hasAttribute("role")?void 0:l.setAttribute("role","textbox")},c=function(l){var A;if(!l.hasAttribute("aria-label")&&!l.hasAttribute("aria-labelledby"))return(A=function(){var f,m,C;return C=function(){var S,L,O,D;for(O=l.labels,D=[],S=0,L=O.length;L>S;S++)f=O[S],f.contains(l)||D.push(f.textContent);return D}(),(m=C.join(" "))?l.setAttribute("aria-label",m):l.removeAttribute("aria-label")})(),h("focus",{onElement:l,withCallback:A})},n=function(){return b.forcesObjectResizing?{display:"inline",width:"auto"}:{display:"inline-block",width:"1px"}}(),{defaultCSS:`%t { + display: block; +} + +%t:empty:not(:focus)::before { + content: attr(placeholder); + color: graytext; + cursor: text; + pointer-events: none; +} + +%t a[contenteditable=false] { + cursor: text; +} + +%t img { + max-width: 100%; + height: auto; +} + +%t `+x+` figcaption textarea { + resize: none; +} + +%t `+x+` figcaption textarea.trix-autoresize-clone { + position: absolute; + left: -9999px; + max-height: 0px; +} + +%t `+x+` figcaption[data-trix-placeholder]:empty::before { + content: attr(data-trix-placeholder); + color: graytext; +} + +%t [data-trix-cursor-target] { + display: `+n.display+` !important; + width: `+n.width+` !important; + padding: 0 !important; + margin: 0 !important; + border: none !important; +} + +%t [data-trix-cursor-target=left] { + vertical-align: top !important; + margin-left: -1px !important; +} + +%t [data-trix-cursor-target=right] { + vertical-align: bottom !important; + margin-right: -1px !important; +}`,trixId:{get:function(){return this.hasAttribute("trix-id")?this.getAttribute("trix-id"):(this.setAttribute("trix-id",++v),this.trixId)}},labels:{get:function(){var l,A,f;return A=[],this.id&&this.ownerDocument&&A.push.apply(A,this.ownerDocument.querySelectorAll("label[for='"+this.id+"']")),(l=y(this,{matchingSelector:"label"}))&&((f=l.control)===this||f===null)&&A.push(l),A}},toolbarElement:{get:function(){var l,A,f;return this.hasAttribute("toolbar")?(A=this.ownerDocument)!=null?A.getElementById(this.getAttribute("toolbar")):void 0:this.parentNode?(f="trix-toolbar-"+this.trixId,this.setAttribute("toolbar",f),l=e("trix-toolbar",{id:f}),this.parentNode.insertBefore(l,this),l):void 0}},inputElement:{get:function(){var l,A,f;return this.hasAttribute("input")?(f=this.ownerDocument)!=null?f.getElementById(this.getAttribute("input")):void 0:this.parentNode?(A="trix-input-"+this.trixId,this.setAttribute("input",A),l=e("input",{type:"hidden",id:A}),this.parentNode.insertBefore(l,this.nextElementSibling),l):void 0}},editor:{get:function(){var l;return(l=this.editorController)!=null?l.editor:void 0}},name:{get:function(){var l;return(l=this.inputElement)!=null?l.name:void 0}},value:{get:function(){var l;return(l=this.inputElement)!=null?l.value:void 0},set:function(l){var A;return this.defaultValue=l,(A=this.editor)!=null?A.loadHTML(this.defaultValue):void 0}},notify:function(l,A){return this.editorController?a("trix-"+l,{onElement:this,attributes:A}):void 0},setInputElementValue:function(l){var A;return(A=this.inputElement)!=null?A.value=l:void 0},initialize:function(){return this.hasAttribute("data-trix-internal")?void 0:(t(this),i(this),c(this))},connect:function(){return this.hasAttribute("data-trix-internal")?void 0:(this.editorController||(a("trix-before-initialize",{onElement:this}),this.editorController=new g.EditorController({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame(function(l){return function(){return a("trix-initialize",{onElement:l})}}(this))),this.editorController.registerSelectionManager(),this.registerResetListener(),this.registerClickListener(),u(this))},disconnect:function(){var l;return(l=this.editorController)!=null&&l.unregisterSelectionManager(),this.unregisterResetListener(),this.unregisterClickListener()},registerResetListener:function(){return this.resetListener=this.resetBubbled.bind(this),window.addEventListener("reset",this.resetListener,!1)},unregisterResetListener:function(){return window.removeEventListener("reset",this.resetListener,!1)},registerClickListener:function(){return this.clickListener=this.clickBubbled.bind(this),window.addEventListener("click",this.clickListener,!1)},unregisterClickListener:function(){return window.removeEventListener("click",this.clickListener,!1)},resetBubbled:function(l){var A;if(!l.defaultPrevented&&l.target===((A=this.inputElement)!=null?A.form:void 0))return this.reset()},clickBubbled:function(l){var A;if(!(l.defaultPrevented||this.contains(l.target)||!(A=y(l.target,{matchingSelector:"label"}))||d.call(this.labels,A)<0))return this.focus()},reset:function(){return this.value=this.defaultValue}}}())}.call(this),function(){}.call(this)}).call(this),typeof V=="object"&&V.exports?V.exports=g:typeof define=="function"&&define.amd&&define(g)}.call(q)});var W=ut(Q(),1);W.default.config.blockAttributes.default.tagName="p";W.default.config.blockAttributes.default.breakOnReturn=!0;W.default.config.blockAttributes.heading={tagName:"h2",terminal:!0,breakOnReturn:!0,group:!1};W.default.config.blockAttributes.subHeading={tagName:"h3",terminal:!0,breakOnReturn:!0,group:!1};W.default.config.textAttributes.underline={style:{textDecoration:"underline"},inheritable:!0,parser:I=>window.getComputedStyle(I).textDecoration.includes("underline")};W.default.Block.prototype.breaksOnReturn=function(){let I=this.getLastAttribute();return W.default.getBlockConfig(I||"default")?.breakOnReturn??!1};W.default.LineBreakInsertion.prototype.shouldInsertBlockBreak=function(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?this.startLocation.offset>0:this.shouldBreakFormattedBlock()?!1:this.breaksOnReturn};function ct({state:I}){return{state:I,init:function(){this.$refs.trix?.editor?.loadHTML(this.state),this.$watch("state",()=>{document.activeElement!==this.$refs.trix&&this.$refs.trix?.editor?.loadHTML(this.state)})}}}export{ct as default}; diff --git a/public/js/filament/forms/components/select.js b/public/js/filament/forms/components/select.js new file mode 100644 index 000000000..195088d47 --- /dev/null +++ b/public/js/filament/forms/components/select.js @@ -0,0 +1,6 @@ +var lt=Object.create;var Ge=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var ut=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var ft=(se,ie)=>()=>(ie||se((ie={exports:{}}).exports,ie),ie.exports);var pt=(se,ie,X,me)=>{if(ie&&typeof ie=="object"||typeof ie=="function")for(let j of ut(ie))!dt.call(se,j)&&j!==X&&Ge(se,j,{get:()=>ie[j],enumerable:!(me=ct(ie,j))||me.enumerable});return se};var mt=(se,ie,X)=>(X=se!=null?lt(ht(se)):{},pt(ie||!se||!se.__esModule?Ge(X,"default",{value:se,enumerable:!0}):X,se));var $e=ft((Ae,Ye)=>{(function(ie,X){typeof Ae=="object"&&typeof Ye=="object"?Ye.exports=X():typeof define=="function"&&define.amd?define([],X):typeof Ae=="object"?Ae.Choices=X():ie.Choices=X()})(window,function(){return function(){"use strict";var se={282:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.clearChoices=i.activateChoices=i.filterChoices=i.addChoice=void 0;var _=b(883),h=function(c){var l=c.value,O=c.label,L=c.id,y=c.groupId,D=c.disabled,k=c.elementId,Q=c.customProperties,Z=c.placeholder,ne=c.keyCode;return{type:_.ACTION_TYPES.ADD_CHOICE,value:l,label:O,id:L,groupId:y,disabled:D,elementId:k,customProperties:Q,placeholder:Z,keyCode:ne}};i.addChoice=h;var d=function(c){return{type:_.ACTION_TYPES.FILTER_CHOICES,results:c}};i.filterChoices=d;var a=function(c){return c===void 0&&(c=!0),{type:_.ACTION_TYPES.ACTIVATE_CHOICES,active:c}};i.activateChoices=a;var r=function(){return{type:_.ACTION_TYPES.CLEAR_CHOICES}};i.clearChoices=r},783:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.addGroup=void 0;var _=b(883),h=function(d){var a=d.value,r=d.id,c=d.active,l=d.disabled;return{type:_.ACTION_TYPES.ADD_GROUP,value:a,id:r,active:c,disabled:l}};i.addGroup=h},464:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.highlightItem=i.removeItem=i.addItem=void 0;var _=b(883),h=function(r){var c=r.value,l=r.label,O=r.id,L=r.choiceId,y=r.groupId,D=r.customProperties,k=r.placeholder,Q=r.keyCode;return{type:_.ACTION_TYPES.ADD_ITEM,value:c,label:l,id:O,choiceId:L,groupId:y,customProperties:D,placeholder:k,keyCode:Q}};i.addItem=h;var d=function(r,c){return{type:_.ACTION_TYPES.REMOVE_ITEM,id:r,choiceId:c}};i.removeItem=d;var a=function(r,c){return{type:_.ACTION_TYPES.HIGHLIGHT_ITEM,id:r,highlighted:c}};i.highlightItem=a},137:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.setIsLoading=i.resetTo=i.clearAll=void 0;var _=b(883),h=function(){return{type:_.ACTION_TYPES.CLEAR_ALL}};i.clearAll=h;var d=function(r){return{type:_.ACTION_TYPES.RESET_TO,state:r}};i.resetTo=d;var a=function(r){return{type:_.ACTION_TYPES.SET_IS_LOADING,isLoading:r}};i.setIsLoading=a},373:function(j,i,b){var _=this&&this.__spreadArray||function(g,e,t){if(t||arguments.length===2)for(var n=0,s=e.length,v;n=0?this._store.getGroupById(v):null;return this._store.dispatch((0,l.highlightItem)(n,!0)),t&&this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:n,value:M,label:f,groupValue:u&&u.value?u.value:null}),this},g.prototype.unhighlightItem=function(e){if(!e||!e.id)return this;var t=e.id,n=e.groupId,s=n===void 0?-1:n,v=e.value,P=v===void 0?"":v,M=e.label,K=M===void 0?"":M,f=s>=0?this._store.getGroupById(s):null;return this._store.dispatch((0,l.highlightItem)(t,!1)),this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:t,value:P,label:K,groupValue:f&&f.value?f.value:null}),this},g.prototype.highlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.highlightItem(t)}),this},g.prototype.unhighlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.unhighlightItem(t)}),this},g.prototype.removeActiveItemsByValue=function(e){var t=this;return this._store.activeItems.filter(function(n){return n.value===e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeActiveItems=function(e){var t=this;return this._store.activeItems.filter(function(n){var s=n.id;return s!==e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeHighlightedItems=function(e){var t=this;return e===void 0&&(e=!1),this._store.highlightedActiveItems.forEach(function(n){t._removeItem(n),e&&t._triggerChange(n.value)}),this},g.prototype.showDropdown=function(e){var t=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){t.dropdown.show(),t.containerOuter.open(t.dropdown.distanceFromTopWindow),!e&&t._canSearch&&t.input.focus(),t.passedElement.triggerEvent(y.EVENTS.showDropdown,{})}),this)},g.prototype.hideDropdown=function(e){var t=this;return this.dropdown.isActive?(requestAnimationFrame(function(){t.dropdown.hide(),t.containerOuter.close(),!e&&t._canSearch&&(t.input.removeActiveDescendant(),t.input.blur()),t.passedElement.triggerEvent(y.EVENTS.hideDropdown,{})}),this):this},g.prototype.getValue=function(e){e===void 0&&(e=!1);var t=this._store.activeItems.reduce(function(n,s){var v=e?s.value:s;return n.push(v),n},[]);return this._isSelectOneElement?t[0]:t},g.prototype.setValue=function(e){var t=this;return this.initialised?(e.forEach(function(n){return t._setChoiceOrItem(n)}),this):this},g.prototype.setChoiceByValue=function(e){var t=this;if(!this.initialised||this._isTextElement)return this;var n=Array.isArray(e)?e:[e];return n.forEach(function(s){return t._findAndSelectChoiceByValue(s)}),this},g.prototype.setChoices=function(e,t,n,s){var v=this;if(e===void 0&&(e=[]),t===void 0&&(t="value"),n===void 0&&(n="label"),s===void 0&&(s=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof t!="string"||!t)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(s&&this.clearChoices(),typeof e=="function"){var P=e(this);if(typeof Promise=="function"&&P instanceof Promise)return new Promise(function(M){return requestAnimationFrame(M)}).then(function(){return v._handleLoadingState(!0)}).then(function(){return P}).then(function(M){return v.setChoices(M,t,n,s)}).catch(function(M){v.config.silent||console.error(M)}).then(function(){return v._handleLoadingState(!1)}).then(function(){return v});if(!Array.isArray(P))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: ".concat(typeof P));return this.setChoices(P,t,n,!1)}if(!Array.isArray(e))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),e.forEach(function(M){if(M.choices)v._addGroup({id:M.id?parseInt("".concat(M.id),10):null,group:M,valueKey:t,labelKey:n});else{var K=M;v._addChoice({value:K[t],label:K[n],isSelected:!!K.selected,isDisabled:!!K.disabled,placeholder:!!K.placeholder,customProperties:K.customProperties})}}),this._stopLoading(),this},g.prototype.clearChoices=function(){return this._store.dispatch((0,r.clearChoices)()),this},g.prototype.clearStore=function(){return this._store.dispatch((0,O.clearAll)()),this},g.prototype.clearInput=function(){var e=!this._isSelectOneElement;return this.input.clear(e),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))),this},g.prototype._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var e=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,t=this._isSelectElement,n=this._currentState.items!==this._prevState.items;e&&(t&&this._renderChoices(),n&&this._renderItems(),this._prevState=this._currentState)}},g.prototype._renderChoices=function(){var e=this,t=this._store,n=t.activeGroups,s=t.activeChoices,v=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return e.choiceList.scrollToTop()}),n.length>=1&&!this._isSearching){var P=s.filter(function(C){return C.placeholder===!0&&C.groupId===-1});P.length>=1&&(v=this._createChoicesFragment(P,v)),v=this._createGroupsFragment(n,s,v)}else s.length>=1&&(v=this._createChoicesFragment(s,v));if(v.childNodes&&v.childNodes.length>0){var M=this._store.activeItems,K=this._canAddItem(M,this.input.value);if(K.response)this.choiceList.append(v),this._highlightChoice();else{var f=this._getTemplate("notice",K.notice);this.choiceList.append(f)}}else{var u=void 0,f=void 0;this._isSearching?(f=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,u=this._getTemplate("notice",f,"no-results")):(f=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,u=this._getTemplate("notice",f,"no-choices")),this.choiceList.append(u)}},g.prototype._renderItems=function(){var e=this._store.activeItems||[];this.itemList.clear();var t=this._createItemsFragment(e);t.childNodes&&this.itemList.append(t)},g.prototype._createGroupsFragment=function(e,t,n){var s=this;n===void 0&&(n=document.createDocumentFragment());var v=function(P){return t.filter(function(M){return s._isSelectOneElement?M.groupId===P.id:M.groupId===P.id&&(s.config.renderSelectedChoices==="always"||!M.selected)})};return this.config.shouldSort&&e.sort(this.config.sorter),e.forEach(function(P){var M=v(P);if(M.length>=1){var K=s._getTemplate("choiceGroup",P);n.appendChild(K),s._createChoicesFragment(M,n,!0)}}),n},g.prototype._createChoicesFragment=function(e,t,n){var s=this;t===void 0&&(t=document.createDocumentFragment()),n===void 0&&(n=!1);var v=this.config,P=v.renderSelectedChoices,M=v.searchResultLimit,K=v.renderChoiceLimit,f=this._isSearching?k.sortByScore:this.config.sorter,u=function(z){var ee=P==="auto"?s._isSelectOneElement||!z.selected:!0;if(ee){var ae=s._getTemplate("choice",z,s.config.itemSelectText);t.appendChild(ae)}},C=e;P==="auto"&&!this._isSelectOneElement&&(C=e.filter(function(z){return!z.selected}));var Y=C.reduce(function(z,ee){return ee.placeholder?z.placeholderChoices.push(ee):z.normalChoices.push(ee),z},{placeholderChoices:[],normalChoices:[]}),V=Y.placeholderChoices,U=Y.normalChoices;(this.config.shouldSort||this._isSearching)&&U.sort(f);var $=C.length,W=this._isSelectOneElement?_(_([],V,!0),U,!0):U;this._isSearching?$=M:K&&K>0&&!n&&($=K);for(var J=0;J<$;J+=1)W[J]&&u(W[J]);return t},g.prototype._createItemsFragment=function(e,t){var n=this;t===void 0&&(t=document.createDocumentFragment());var s=this.config,v=s.shouldSortItems,P=s.sorter,M=s.removeItemButton;v&&!this._isSelectOneElement&&e.sort(P),this._isTextElement?this.passedElement.value=e.map(function(f){var u=f.value;return u}).join(this.config.delimiter):this.passedElement.options=e;var K=function(f){var u=n._getTemplate("item",f,M);t.appendChild(u)};return e.forEach(K),t},g.prototype._triggerChange=function(e){e!=null&&this.passedElement.triggerEvent(y.EVENTS.change,{value:e})},g.prototype._selectPlaceholderChoice=function(e){this._addItem({value:e.value,label:e.label,choiceId:e.id,groupId:e.groupId,placeholder:e.placeholder}),this._triggerChange(e.value)},g.prototype._handleButtonAction=function(e,t){if(!(!e||!t||!this.config.removeItems||!this.config.removeItemButton)){var n=t.parentNode&&t.parentNode.dataset.id,s=n&&e.find(function(v){return v.id===parseInt(n,10)});s&&(this._removeItem(s),this._triggerChange(s.value),this._isSelectOneElement&&this._store.placeholderChoice&&this._selectPlaceholderChoice(this._store.placeholderChoice))}},g.prototype._handleItemAction=function(e,t,n){var s=this;if(n===void 0&&(n=!1),!(!e||!t||!this.config.removeItems||this._isSelectOneElement)){var v=t.dataset.id;e.forEach(function(P){P.id===parseInt("".concat(v),10)&&!P.highlighted?s.highlightItem(P):!n&&P.highlighted&&s.unhighlightItem(P)}),this.input.focus()}},g.prototype._handleChoiceAction=function(e,t){if(!(!e||!t)){var n=t.dataset.id,s=n&&this._store.getChoiceById(n);if(s){var v=e[0]&&e[0].keyCode?e[0].keyCode:void 0,P=this.dropdown.isActive;if(s.keyCode=v,this.passedElement.triggerEvent(y.EVENTS.choice,{choice:s}),!s.selected&&!s.disabled){var M=this._canAddItem(e,s.value);M.response&&(this._addItem({value:s.value,label:s.label,choiceId:s.id,groupId:s.groupId,customProperties:s.customProperties,placeholder:s.placeholder,keyCode:s.keyCode}),this._triggerChange(s.value))}this.clearInput(),P&&this._isSelectOneElement&&(this.hideDropdown(!0),this.containerOuter.focus())}}},g.prototype._handleBackspace=function(e){if(!(!this.config.removeItems||!e)){var t=e[e.length-1],n=e.some(function(s){return s.highlighted});this.config.editItems&&!n&&t?(this.input.value=t.value,this.input.setWidth(),this._removeItem(t),this._triggerChange(t.value)):(n||this.highlightItem(t,!1),this.removeHighlightedItems(!0))}},g.prototype._startLoading=function(){this._store.dispatch((0,O.setIsLoading)(!0))},g.prototype._stopLoading=function(){this._store.dispatch((0,O.setIsLoading)(!1))},g.prototype._handleLoadingState=function(e){e===void 0&&(e=!0);var t=this.itemList.getChild(".".concat(this.config.classNames.placeholder));e?(this.disable(),this.containerOuter.addLoadingState(),this._isSelectOneElement?t?t.innerHTML=this.config.loadingText:(t=this._getTemplate("placeholder",this.config.loadingText),t&&this.itemList.append(t)):this.input.placeholder=this.config.loadingText):(this.enable(),this.containerOuter.removeLoadingState(),this._isSelectOneElement?t&&(t.innerHTML=this._placeholderValue||""):this.input.placeholder=this._placeholderValue||"")},g.prototype._handleSearch=function(e){if(this.input.isFocussed){var t=this._store.choices,n=this.config,s=n.searchFloor,v=n.searchChoices,P=t.some(function(K){return!K.active});if(e!==null&&typeof e<"u"&&e.length>=s){var M=v?this._searchChoices(e):0;this.passedElement.triggerEvent(y.EVENTS.search,{value:e,resultCount:M})}else P&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0)))}},g.prototype._canAddItem=function(e,t){var n=!0,s=typeof this.config.addItemText=="function"?this.config.addItemText(t):this.config.addItemText;if(!this._isSelectOneElement){var v=(0,k.existsInArray)(e,t);this.config.maxItemCount>0&&this.config.maxItemCount<=e.length&&(n=!1,s=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&v&&n&&(n=!1,s=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(t):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&n&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(t)&&(n=!1,s=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(t):this.config.customAddItemText)}return{response:n,notice:s}},g.prototype._searchChoices=function(e){var t=typeof e=="string"?e.trim():e,n=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(t.length<1&&t==="".concat(n," "))return 0;var s=this._store.searchableChoices,v=t,P=Object.assign(this.config.fuseOptions,{keys:_([],this.config.searchFields,!0),includeMatches:!0}),M=new a.default(s,P),K=M.search(v);return this._currentValue=t,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch((0,r.filterChoices)(K)),K.length},g.prototype._addEventListeners=function(){var e=document.documentElement;e.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("click",this._onClick,{passive:!0}),e.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},g.prototype._removeEventListeners=function(){var e=document.documentElement;e.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("click",this._onClick),e.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},g.prototype._onKeyDown=function(e){var t=e.keyCode,n=this._store.activeItems,s=this.input.isFocussed,v=this.dropdown.isActive,P=this.itemList.hasChildren(),M=String.fromCharCode(t),K=/[^\x00-\x1F]/.test(M),f=y.KEY_CODES.BACK_KEY,u=y.KEY_CODES.DELETE_KEY,C=y.KEY_CODES.ENTER_KEY,Y=y.KEY_CODES.A_KEY,V=y.KEY_CODES.ESC_KEY,U=y.KEY_CODES.UP_KEY,$=y.KEY_CODES.DOWN_KEY,W=y.KEY_CODES.PAGE_UP_KEY,J=y.KEY_CODES.PAGE_DOWN_KEY;switch(!this._isTextElement&&!v&&K&&(this.showDropdown(),this.input.isFocussed||(this.input.value+=e.key.toLowerCase())),t){case Y:return this._onSelectKey(e,P);case C:return this._onEnterKey(e,n,v);case V:return this._onEscapeKey(v);case U:case W:case $:case J:return this._onDirectionKey(e,v);case u:case f:return this._onDeleteKey(e,n,s);default:}},g.prototype._onKeyUp=function(e){var t=e.target,n=e.keyCode,s=this.input.value,v=this._store.activeItems,P=this._canAddItem(v,s),M=y.KEY_CODES.BACK_KEY,K=y.KEY_CODES.DELETE_KEY;if(this._isTextElement){var f=P.notice&&s;if(f){var u=this._getTemplate("notice",P.notice);this.dropdown.element.innerHTML=u.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var C=n===M||n===K,Y=C&&t&&!t.value,V=!this._isTextElement&&this._isSearching,U=this._canSearch&&P.response;Y&&V?(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))):U&&this._handleSearch(this.input.rawValue)}this._canSearch=this.config.searchEnabled},g.prototype._onSelectKey=function(e,t){var n=e.ctrlKey,s=e.metaKey,v=n||s;if(v&&t){this._canSearch=!1;var P=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;P&&this.highlightAll()}},g.prototype._onEnterKey=function(e,t,n){var s=e.target,v=y.KEY_CODES.ENTER_KEY,P=s&&s.hasAttribute("data-button");if(this._isTextElement&&s&&s.value){var M=this.input.value,K=this._canAddItem(t,M);K.response&&(this.hideDropdown(!0),this._addItem({value:M}),this._triggerChange(M),this.clearInput())}if(P&&(this._handleButtonAction(t,s),e.preventDefault()),n){var f=this.dropdown.getChild(".".concat(this.config.classNames.highlightedState));f&&(t[0]&&(t[0].keyCode=v),this._handleChoiceAction(t,f)),e.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),e.preventDefault())},g.prototype._onEscapeKey=function(e){e&&(this.hideDropdown(!0),this.containerOuter.focus())},g.prototype._onDirectionKey=function(e,t){var n=e.keyCode,s=e.metaKey,v=y.KEY_CODES.DOWN_KEY,P=y.KEY_CODES.PAGE_UP_KEY,M=y.KEY_CODES.PAGE_DOWN_KEY;if(t||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var K=n===v||n===M?1:-1,f=s||n===M||n===P,u="[data-choice-selectable]",C=void 0;if(f)K>0?C=this.dropdown.element.querySelector("".concat(u,":last-of-type")):C=this.dropdown.element.querySelector(u);else{var Y=this.dropdown.element.querySelector(".".concat(this.config.classNames.highlightedState));Y?C=(0,k.getAdjacentEl)(Y,u,K):C=this.dropdown.element.querySelector(u)}C&&((0,k.isScrolledIntoView)(C,this.choiceList.element,K)||this.choiceList.scrollToChildElement(C,K),this._highlightChoice(C)),e.preventDefault()}},g.prototype._onDeleteKey=function(e,t,n){var s=e.target;!this._isSelectOneElement&&!s.value&&n&&(this._handleBackspace(t),e.preventDefault())},g.prototype._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},g.prototype._onTouchEnd=function(e){var t=(e||e.touches[0]).target,n=this._wasTap&&this.containerOuter.element.contains(t);if(n){var s=t===this.containerOuter.element||t===this.containerInner.element;s&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),e.stopPropagation()}this._wasTap=!0},g.prototype._onMouseDown=function(e){var t=e.target;if(t instanceof HTMLElement){if(E&&this.choiceList.element.contains(t)){var n=this.choiceList.element.firstElementChild,s=this._direction==="ltr"?e.offsetX>=n.offsetWidth:e.offsetX0;s&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},g.prototype._onFocus=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v){var P=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&n.containerOuter.addFocusState()},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.addFocusState(),s===n.input.element&&n.showDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.showDropdown(!0),n.containerOuter.addFocusState())},t);P[this.passedElement.element.type]()}},g.prototype._onBlur=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v&&!this._isScrollingOnIe){var P=this._store.activeItems,M=P.some(function(f){return f.highlighted}),K=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),M&&n.unhighlightAll(),n.hideDropdown(!0))},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.removeFocusState(),(s===n.input.element||s===n.containerOuter.element&&!n._canSearch)&&n.hideDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),n.hideDropdown(!0),M&&n.unhighlightAll())},t);K[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},g.prototype._onFormReset=function(){this._store.dispatch((0,O.resetTo)(this._initialState))},g.prototype._highlightChoice=function(e){var t=this;e===void 0&&(e=null);var n=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(n.length){var s=e,v=Array.from(this.dropdown.element.querySelectorAll(".".concat(this.config.classNames.highlightedState)));v.forEach(function(P){P.classList.remove(t.config.classNames.highlightedState),P.setAttribute("aria-selected","false")}),s?this._highlightPosition=n.indexOf(s):(n.length>this._highlightPosition?s=n[this._highlightPosition]:s=n[n.length-1],s||(s=n[0])),s.classList.add(this.config.classNames.highlightedState),s.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(y.EVENTS.highlightChoice,{el:s}),this.dropdown.isActive&&(this.input.setActiveDescendant(s.id),this.containerOuter.setActiveDescendant(s.id))}},g.prototype._addItem=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.choiceId,P=v===void 0?-1:v,M=e.groupId,K=M===void 0?-1:M,f=e.customProperties,u=f===void 0?{}:f,C=e.placeholder,Y=C===void 0?!1:C,V=e.keyCode,U=V===void 0?-1:V,$=typeof t=="string"?t.trim():t,W=this._store.items,J=s||$,z=P||-1,ee=K>=0?this._store.getGroupById(K):null,ae=W?W.length+1:1;this.config.prependValue&&($=this.config.prependValue+$.toString()),this.config.appendValue&&($+=this.config.appendValue.toString()),this._store.dispatch((0,l.addItem)({value:$,label:J,id:ae,choiceId:z,groupId:K,customProperties:u,placeholder:Y,keyCode:U})),this._isSelectOneElement&&this.removeActiveItems(ae),this.passedElement.triggerEvent(y.EVENTS.addItem,{id:ae,value:$,label:J,customProperties:u,groupValue:ee&&ee.value?ee.value:null,keyCode:U})},g.prototype._removeItem=function(e){var t=e.id,n=e.value,s=e.label,v=e.customProperties,P=e.choiceId,M=e.groupId,K=M&&M>=0?this._store.getGroupById(M):null;!t||!P||(this._store.dispatch((0,l.removeItem)(t,P)),this.passedElement.triggerEvent(y.EVENTS.removeItem,{id:t,value:n,label:s,customProperties:v,groupValue:K&&K.value?K.value:null}))},g.prototype._addChoice=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.isSelected,P=v===void 0?!1:v,M=e.isDisabled,K=M===void 0?!1:M,f=e.groupId,u=f===void 0?-1:f,C=e.customProperties,Y=C===void 0?{}:C,V=e.placeholder,U=V===void 0?!1:V,$=e.keyCode,W=$===void 0?-1:$;if(!(typeof t>"u"||t===null)){var J=this._store.choices,z=s||t,ee=J?J.length+1:1,ae="".concat(this._baseId,"-").concat(this._idNames.itemChoice,"-").concat(ee);this._store.dispatch((0,r.addChoice)({id:ee,groupId:u,elementId:ae,value:t,label:z,disabled:K,customProperties:Y,placeholder:U,keyCode:W})),P&&this._addItem({value:t,label:z,choiceId:ee,customProperties:Y,placeholder:U,keyCode:W})}},g.prototype._addGroup=function(e){var t=this,n=e.group,s=e.id,v=e.valueKey,P=v===void 0?"value":v,M=e.labelKey,K=M===void 0?"label":M,f=(0,k.isType)("Object",n)?n.choices:Array.from(n.getElementsByTagName("OPTION")),u=s||Math.floor(new Date().valueOf()*Math.random()),C=n.disabled?n.disabled:!1;if(f){this._store.dispatch((0,c.addGroup)({value:n.label,id:u,active:!0,disabled:C}));var Y=function(V){var U=V.disabled||V.parentNode&&V.parentNode.disabled;t._addChoice({value:V[P],label:(0,k.isType)("Object",V)?V[K]:V.innerHTML,isSelected:V.selected,isDisabled:U,groupId:u,customProperties:V.customProperties,placeholder:V.placeholder})};f.forEach(Y)}else this._store.dispatch((0,c.addGroup)({value:n.label,id:n.id,active:!1,disabled:n.disabled}))},g.prototype._getTemplate=function(e){for(var t,n=[],s=1;s0?this.element.scrollTop+y-O:a.offsetTop;requestAnimationFrame(function(){c._animateScroll(D,r)})}},d.prototype._scrollDown=function(a,r,c){var l=(c-a)/r,O=l>1?l:1;this.element.scrollTop=a+O},d.prototype._scrollUp=function(a,r,c){var l=(a-c)/r,O=l>1?l:1;this.element.scrollTop=a-O},d.prototype._animateScroll=function(a,r){var c=this,l=_.SCROLLING_SPEED,O=this.element.scrollTop,L=!1;r>0?(this._scrollDown(O,l,a),Oa&&(L=!0)),L&&requestAnimationFrame(function(){c._animateScroll(a,r)})},d}();i.default=h},730:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0});var _=b(799),h=function(){function d(a){var r=a.element,c=a.classNames;if(this.element=r,this.classNames=c,!(r instanceof HTMLInputElement)&&!(r instanceof HTMLSelectElement))throw new TypeError("Invalid element passed");this.isDisabled=!1}return Object.defineProperty(d.prototype,"isActive",{get:function(){return this.element.dataset.choice==="active"},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"dir",{get:function(){return this.element.dir},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"value",{get:function(){return this.element.value},set:function(a){this.element.value=a},enumerable:!1,configurable:!0}),d.prototype.conceal=function(){this.element.classList.add(this.classNames.input),this.element.hidden=!0,this.element.tabIndex=-1;var a=this.element.getAttribute("style");a&&this.element.setAttribute("data-choice-orig-style",a),this.element.setAttribute("data-choice","active")},d.prototype.reveal=function(){this.element.classList.remove(this.classNames.input),this.element.hidden=!1,this.element.removeAttribute("tabindex");var a=this.element.getAttribute("data-choice-orig-style");a?(this.element.removeAttribute("data-choice-orig-style"),this.element.setAttribute("style",a)):this.element.removeAttribute("style"),this.element.removeAttribute("data-choice"),this.element.value=this.element.value},d.prototype.enable=function(){this.element.removeAttribute("disabled"),this.element.disabled=!1,this.isDisabled=!1},d.prototype.disable=function(){this.element.setAttribute("disabled",""),this.element.disabled=!0,this.isDisabled=!0},d.prototype.triggerEvent=function(a,r){(0,_.dispatchEvent)(this.element,a,r)},d}();i.default=h},541:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.delimiter,D=r.call(this,{element:O,classNames:L})||this;return D.delimiter=y,D}return Object.defineProperty(c.prototype,"value",{get:function(){return this.element.value},set:function(l){this.element.setAttribute("value",l),this.element.value=l},enumerable:!1,configurable:!0}),c}(d.default);i.default=a},982:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.template,D=r.call(this,{element:O,classNames:L})||this;return D.template=y,D}return Object.defineProperty(c.prototype,"placeholderOption",{get:function(){return this.element.querySelector('option[value=""]')||this.element.querySelector("option[placeholder]")},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"optionGroups",{get:function(){return Array.from(this.element.getElementsByTagName("OPTGROUP"))},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"options",{get:function(){return Array.from(this.element.options)},set:function(l){var O=this,L=document.createDocumentFragment(),y=function(D){var k=O.template(D);L.appendChild(k)};l.forEach(function(D){return y(D)}),this.appendDocFragment(L)},enumerable:!1,configurable:!0}),c.prototype.appendDocFragment=function(l){this.element.innerHTML="",this.element.appendChild(l)},c}(d.default);i.default=a},883:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.SCROLLING_SPEED=i.SELECT_MULTIPLE_TYPE=i.SELECT_ONE_TYPE=i.TEXT_TYPE=i.KEY_CODES=i.ACTION_TYPES=i.EVENTS=void 0,i.EVENTS={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice",unhighlightItem:"unhighlightItem"},i.ACTION_TYPES={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL",RESET_TO:"RESET_TO",SET_IS_LOADING:"SET_IS_LOADING"},i.KEY_CODES={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},i.TEXT_TYPE="text",i.SELECT_ONE_TYPE="select-one",i.SELECT_MULTIPLE_TYPE="select-multiple",i.SCROLLING_SPEED=4},789:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_CONFIG=i.DEFAULT_CLASSNAMES=void 0;var _=b(799);i.DEFAULT_CLASSNAMES={containerOuter:"choices",containerInner:"choices__inner",input:"choices__input",inputCloned:"choices__input--cloned",list:"choices__list",listItems:"choices__list--multiple",listSingle:"choices__list--single",listDropdown:"choices__list--dropdown",item:"choices__item",itemSelectable:"choices__item--selectable",itemDisabled:"choices__item--disabled",itemChoice:"choices__item--choice",placeholder:"choices__placeholder",group:"choices__group",groupHeading:"choices__heading",button:"choices__button",activeState:"is-active",focusState:"is-focused",openState:"is-open",disabledState:"is-disabled",highlightedState:"is-highlighted",selectedState:"is-selected",flippedState:"is-flipped",loadingState:"is-loading",noResults:"has-no-results",noChoices:"has-no-choices"},i.DEFAULT_CONFIG={items:[],choices:[],silent:!1,renderChoiceLimit:-1,maxItemCount:-1,addItems:!0,addItemFilter:null,removeItems:!0,removeItemButton:!1,editItems:!1,allowHTML:!0,duplicateItemsAllowed:!0,delimiter:",",paste:!0,searchEnabled:!0,searchChoices:!0,searchFloor:1,searchResultLimit:4,searchFields:["label","value"],position:"auto",resetScrollPosition:!0,shouldSort:!0,shouldSortItems:!1,sorter:_.sortByAlpha,placeholder:!0,placeholderValue:null,searchPlaceholderValue:null,prependValue:null,appendValue:null,renderSelectedChoices:"auto",loadingText:"Loading...",noResultsText:"No results found",noChoicesText:"No choices to choose from",itemSelectText:"Press to select",uniqueItemText:"Only unique values can be added",customAddItemText:"Only values matching specific conditions can be added",addItemText:function(h){return'Press Enter to add "'.concat((0,_.sanitise)(h),'"')},maxItemText:function(h){return"Only ".concat(h," values can be added")},valueComparer:function(h,d){return h===d},fuseOptions:{includeScore:!0},labelId:"",callbackOnInit:null,callbackOnCreateTemplates:null,classNames:i.DEFAULT_CLASSNAMES}},18:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},978:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},948:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},359:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},285:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},533:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},187:function(j,i,b){var _=this&&this.__createBinding||(Object.create?function(d,a,r,c){c===void 0&&(c=r);var l=Object.getOwnPropertyDescriptor(a,r);(!l||("get"in l?!a.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return a[r]}}),Object.defineProperty(d,c,l)}:function(d,a,r,c){c===void 0&&(c=r),d[c]=a[r]}),h=this&&this.__exportStar||function(d,a){for(var r in d)r!=="default"&&!Object.prototype.hasOwnProperty.call(a,r)&&_(a,d,r)};Object.defineProperty(i,"__esModule",{value:!0}),h(b(18),i),h(b(978),i),h(b(948),i),h(b(359),i),h(b(285),i),h(b(533),i),h(b(287),i),h(b(132),i),h(b(837),i),h(b(598),i),h(b(369),i),h(b(37),i),h(b(47),i),h(b(923),i),h(b(876),i)},287:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},132:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},837:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},598:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},37:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},369:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},47:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},923:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},876:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},799:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.parseCustomProperties=i.diff=i.cloneObject=i.existsInArray=i.dispatchEvent=i.sortByScore=i.sortByAlpha=i.strToEl=i.sanitise=i.isScrolledIntoView=i.getAdjacentEl=i.wrap=i.isType=i.getType=i.generateId=i.generateChars=i.getRandomNumber=void 0;var b=function(E,w){return Math.floor(Math.random()*(w-E)+E)};i.getRandomNumber=b;var _=function(E){return Array.from({length:E},function(){return(0,i.getRandomNumber)(0,36).toString(36)}).join("")};i.generateChars=_;var h=function(E,w){var N=E.id||E.name&&"".concat(E.name,"-").concat((0,i.generateChars)(2))||(0,i.generateChars)(4);return N=N.replace(/(:|\.|\[|\]|,)/g,""),N="".concat(w,"-").concat(N),N};i.generateId=h;var d=function(E){return Object.prototype.toString.call(E).slice(8,-1)};i.getType=d;var a=function(E,w){return w!=null&&(0,i.getType)(w)===E};i.isType=a;var r=function(E,w){return w===void 0&&(w=document.createElement("div")),E.parentNode&&(E.nextSibling?E.parentNode.insertBefore(w,E.nextSibling):E.parentNode.appendChild(w)),w.appendChild(E)};i.wrap=r;var c=function(E,w,N){N===void 0&&(N=1);for(var g="".concat(N>0?"next":"previous","ElementSibling"),e=E[g];e;){if(e.matches(w))return e;e=e[g]}return e};i.getAdjacentEl=c;var l=function(E,w,N){if(N===void 0&&(N=1),!E)return!1;var g;return N>0?g=w.scrollTop+w.offsetHeight>=E.offsetTop+E.offsetHeight:g=E.offsetTop>=w.scrollTop,g};i.isScrolledIntoView=l;var O=function(E){return typeof E!="string"?E:E.replace(/&/g,"&").replace(/>/g,">").replace(/-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(c.choiceId),10)&&(D.selected=!0),D}):h}case"REMOVE_ITEM":{var l=d;return l.choiceId&&l.choiceId>-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(l.choiceId),10)&&(D.selected=!1),D}):h}case"FILTER_CHOICES":{var O=d;return h.map(function(y){var D=y;return D.active=O.results.some(function(k){var Q=k.item,Z=k.score;return Q.id===D.id?(D.score=Z,!0):!1}),D})}case"ACTIVATE_CHOICES":{var L=d;return h.map(function(y){var D=y;return D.active=L.active,D})}case"CLEAR_CHOICES":return i.defaultState;default:return h}}i.default=_},871:function(j,i){var b=this&&this.__spreadArray||function(h,d,a){if(a||arguments.length===2)for(var r=0,c=d.length,l;r0?"treeitem":"option"),Object.assign(t.dataset,{choice:"",id:Q,value:Z,selectText:d}),N?(t.classList.add(D),t.dataset.choiceDisabled="",t.setAttribute("aria-disabled","true")):(t.classList.add(L),t.dataset.choiceSelectable=""),t},input:function(_,h){var d=_.classNames,a=d.input,r=d.inputCloned,c=Object.assign(document.createElement("input"),{type:"search",name:"search_terms",className:"".concat(a," ").concat(r),autocomplete:"off",autocapitalize:"off",spellcheck:!1});return c.setAttribute("role","textbox"),c.setAttribute("aria-autocomplete","list"),c.setAttribute("aria-label",h),c},dropdown:function(_){var h=_.classNames,d=h.list,a=h.listDropdown,r=document.createElement("div");return r.classList.add(d,a),r.setAttribute("aria-expanded","false"),r},notice:function(_,h,d){var a,r=_.allowHTML,c=_.classNames,l=c.item,O=c.itemChoice,L=c.noResults,y=c.noChoices;d===void 0&&(d="");var D=[l,O];return d==="no-choices"?D.push(y):d==="no-results"&&D.push(L),Object.assign(document.createElement("div"),(a={},a[r?"innerHTML":"innerText"]=h,a.className=D.join(" "),a))},option:function(_){var h=_.label,d=_.value,a=_.customProperties,r=_.active,c=_.disabled,l=new Option(h,d,!1,r);return a&&(l.dataset.customProperties="".concat(a)),l.disabled=!!c,l}};i.default=b},996:function(j){var i=function(w){return b(w)&&!_(w)};function b(E){return!!E&&typeof E=="object"}function _(E){var w=Object.prototype.toString.call(E);return w==="[object RegExp]"||w==="[object Date]"||a(E)}var h=typeof Symbol=="function"&&Symbol.for,d=h?Symbol.for("react.element"):60103;function a(E){return E.$$typeof===d}function r(E){return Array.isArray(E)?[]:{}}function c(E,w){return w.clone!==!1&&w.isMergeableObject(E)?Z(r(E),E,w):E}function l(E,w,N){return E.concat(w).map(function(g){return c(g,N)})}function O(E,w){if(!w.customMerge)return Z;var N=w.customMerge(E);return typeof N=="function"?N:Z}function L(E){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(E).filter(function(w){return E.propertyIsEnumerable(w)}):[]}function y(E){return Object.keys(E).concat(L(E))}function D(E,w){try{return w in E}catch{return!1}}function k(E,w){return D(E,w)&&!(Object.hasOwnProperty.call(E,w)&&Object.propertyIsEnumerable.call(E,w))}function Q(E,w,N){var g={};return N.isMergeableObject(E)&&y(E).forEach(function(e){g[e]=c(E[e],N)}),y(w).forEach(function(e){k(E,e)||(D(E,e)&&N.isMergeableObject(w[e])?g[e]=O(e,N)(E[e],w[e],N):g[e]=c(w[e],N))}),g}function Z(E,w,N){N=N||{},N.arrayMerge=N.arrayMerge||l,N.isMergeableObject=N.isMergeableObject||i,N.cloneUnlessOtherwiseSpecified=c;var g=Array.isArray(w),e=Array.isArray(E),t=g===e;return t?g?N.arrayMerge(E,w,N):Q(E,w,N):c(w,N)}Z.all=function(w,N){if(!Array.isArray(w))throw new Error("first argument should be an array");return w.reduce(function(g,e){return Z(g,e,N)},{})};var ne=Z;j.exports=ne},221:function(j,i,b){b.r(i),b.d(i,{default:function(){return Se}});function _(p){return Array.isArray?Array.isArray(p):k(p)==="[object Array]"}let h=1/0;function d(p){if(typeof p=="string")return p;let o=p+"";return o=="0"&&1/p==-h?"-0":o}function a(p){return p==null?"":d(p)}function r(p){return typeof p=="string"}function c(p){return typeof p=="number"}function l(p){return p===!0||p===!1||L(p)&&k(p)=="[object Boolean]"}function O(p){return typeof p=="object"}function L(p){return O(p)&&p!==null}function y(p){return p!=null}function D(p){return!p.trim().length}function k(p){return p==null?p===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(p)}let Q="Extended search is not available",Z="Incorrect 'index' type",ne=p=>`Invalid value for key ${p}`,E=p=>`Pattern length exceeds max of ${p}.`,w=p=>`Missing ${p} property in key`,N=p=>`Property 'weight' in key '${p}' must be a positive integer`,g=Object.prototype.hasOwnProperty;class e{constructor(o){this._keys=[],this._keyMap={};let m=0;o.forEach(S=>{let I=t(S);m+=I.weight,this._keys.push(I),this._keyMap[I.id]=I,m+=I.weight}),this._keys.forEach(S=>{S.weight/=m})}get(o){return this._keyMap[o]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function t(p){let o=null,m=null,S=null,I=1,T=null;if(r(p)||_(p))S=p,o=n(p),m=s(p);else{if(!g.call(p,"name"))throw new Error(w("name"));let A=p.name;if(S=A,g.call(p,"weight")&&(I=p.weight,I<=0))throw new Error(N(A));o=n(A),m=s(A),T=p.getFn}return{path:o,id:m,weight:I,src:S,getFn:T}}function n(p){return _(p)?p:p.split(".")}function s(p){return _(p)?p.join("."):p}function v(p,o){let m=[],S=!1,I=(T,A,R)=>{if(y(T))if(!A[R])m.push(T);else{let F=A[R],H=T[F];if(!y(H))return;if(R===A.length-1&&(r(H)||c(H)||l(H)))m.push(a(H));else if(_(H)){S=!0;for(let B=0,x=H.length;Bp.score===o.score?p.idx{this._keysMap[m.id]=S})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,r(this.docs[0])?this.docs.forEach((o,m)=>{this._addString(o,m)}):this.docs.forEach((o,m)=>{this._addObject(o,m)}),this.norm.clear())}add(o){let m=this.size();r(o)?this._addString(o,m):this._addObject(o,m)}removeAt(o){this.records.splice(o,1);for(let m=o,S=this.size();m{let A=I.getFn?I.getFn(o):this.getFn(o,I.path);if(y(A)){if(_(A)){let R=[],F=[{nestedArrIndex:-1,value:A}];for(;F.length;){let{nestedArrIndex:H,value:B}=F.pop();if(y(B))if(r(B)&&!D(B)){let x={v:B,i:H,n:this.norm.get(B)};R.push(x)}else _(B)&&B.forEach((x,G)=>{F.push({nestedArrIndex:G,value:x})})}S.$[T]=R}else if(r(A)&&!D(A)){let R={v:A,n:this.norm.get(A)};S.$[T]=R}}}),this.records.push(S)}toJSON(){return{keys:this.keys,records:this.records}}}function U(p,o,{getFn:m=u.getFn,fieldNormWeight:S=u.fieldNormWeight}={}){let I=new V({getFn:m,fieldNormWeight:S});return I.setKeys(p.map(t)),I.setSources(o),I.create(),I}function $(p,{getFn:o=u.getFn,fieldNormWeight:m=u.fieldNormWeight}={}){let{keys:S,records:I}=p,T=new V({getFn:o,fieldNormWeight:m});return T.setKeys(S),T.setIndexRecords(I),T}function W(p,{errors:o=0,currentLocation:m=0,expectedLocation:S=0,distance:I=u.distance,ignoreLocation:T=u.ignoreLocation}={}){let A=o/p.length;if(T)return A;let R=Math.abs(S-m);return I?A+R/I:R?1:A}function J(p=[],o=u.minMatchCharLength){let m=[],S=-1,I=-1,T=0;for(let A=p.length;T=o&&m.push([S,I]),S=-1)}return p[T-1]&&T-S>=o&&m.push([S,T-1]),m}let z=32;function ee(p,o,m,{location:S=u.location,distance:I=u.distance,threshold:T=u.threshold,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,includeMatches:F=u.includeMatches,ignoreLocation:H=u.ignoreLocation}={}){if(o.length>z)throw new Error(E(z));let B=o.length,x=p.length,G=Math.max(0,Math.min(S,x)),q=T,re=G,ue=R>1||F,Ee=ue?Array(x):[],ve;for(;(ve=p.indexOf(o,re))>-1;){let he=W(o,{currentLocation:ve,expectedLocation:G,distance:I,ignoreLocation:H});if(q=Math.min(he,q),re=ve+B,ue){let ge=0;for(;ge=Ue;fe-=1){let Le=fe-1,We=m[p.charAt(Le)];if(ue&&(Ee[Le]=+!!We),Oe[fe]=(Oe[fe+1]<<1|1)&We,he&&(Oe[fe]|=(Ie[fe+1]|Ie[fe])<<1|1|Ie[fe+1]),Oe[fe]&at&&(be=W(o,{errors:he,currentLocation:Le,expectedLocation:G,distance:I,ignoreLocation:H}),be<=q)){if(q=be,re=Le,re<=G)break;Ue=Math.max(1,2*G-re)}}if(W(o,{errors:he+1,currentLocation:G,expectedLocation:G,distance:I,ignoreLocation:H})>q)break;Ie=Oe}let Ke={isMatch:re>=0,score:Math.max(.001,be)};if(ue){let he=J(Ee,R);he.length?F&&(Ke.indices=he):Ke.isMatch=!1}return Ke}function ae(p){let o={};for(let m=0,S=p.length;m{this.chunks.push({pattern:G,alphabet:ae(G),startIndex:q})},x=this.pattern.length;if(x>z){let G=0,q=x%z,re=x-q;for(;G{let{isMatch:ve,score:Ie,indices:be}=ee(o,re,ue,{location:I+Ee,distance:T,threshold:A,findAllMatches:R,minMatchCharLength:F,includeMatches:S,ignoreLocation:H});ve&&(G=!0),x+=Ie,ve&&be&&(B=[...B,...be])});let q={isMatch:G,score:G?x/this.chunks.length:1};return G&&S&&(q.indices=B),q}}class le{constructor(o){this.pattern=o}static isMultiMatch(o){return _e(o,this.multiRegex)}static isSingleMatch(o){return _e(o,this.singleRegex)}search(){}}function _e(p,o){let m=p.match(o);return m?m[1]:null}class te extends le{constructor(o){super(o)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(o){let m=o===this.pattern;return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class de extends le{constructor(o){super(o)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(o){let S=o.indexOf(this.pattern)===-1;return{isMatch:S,score:S?0:1,indices:[0,o.length-1]}}}class pe extends le{constructor(o){super(o)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(o){let m=o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class oe extends le{constructor(o){super(o)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(o){let m=!o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class Te extends le{constructor(o){super(o)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(o){let m=o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[o.length-this.pattern.length,o.length-1]}}}class Pe extends le{constructor(o){super(o)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(o){let m=!o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class He extends le{constructor(o,{location:m=u.location,threshold:S=u.threshold,distance:I=u.distance,includeMatches:T=u.includeMatches,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,isCaseSensitive:F=u.isCaseSensitive,ignoreLocation:H=u.ignoreLocation}={}){super(o),this._bitapSearch=new ce(o,{location:m,threshold:S,distance:I,includeMatches:T,findAllMatches:A,minMatchCharLength:R,isCaseSensitive:F,ignoreLocation:H})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(o){return this._bitapSearch.searchIn(o)}}class Be extends le{constructor(o){super(o)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(o){let m=0,S,I=[],T=this.pattern.length;for(;(S=o.indexOf(this.pattern,m))>-1;)m=S+T,I.push([S,m-1]);let A=!!I.length;return{isMatch:A,score:A?0:1,indices:I}}}let Me=[te,Be,pe,oe,Pe,Te,de,He],Ve=Me.length,Xe=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Je="|";function Qe(p,o={}){return p.split(Je).map(m=>{let S=m.trim().split(Xe).filter(T=>T&&!!T.trim()),I=[];for(let T=0,A=S.length;T!!(p[Ce.AND]||p[Ce.OR]),tt=p=>!!p[je.PATH],it=p=>!_(p)&&O(p)&&!Re(p),ke=p=>({[Ce.AND]:Object.keys(p).map(o=>({[o]:p[o]}))});function xe(p,o,{auto:m=!0}={}){let S=I=>{let T=Object.keys(I),A=tt(I);if(!A&&T.length>1&&!Re(I))return S(ke(I));if(it(I)){let F=A?I[je.PATH]:T[0],H=A?I[je.PATTERN]:I[F];if(!r(H))throw new Error(ne(F));let B={keyId:s(F),pattern:H};return m&&(B.searcher=Ne(H,o)),B}let R={children:[],operator:T[0]};return T.forEach(F=>{let H=I[F];_(H)&&H.forEach(B=>{R.children.push(S(B))})}),R};return Re(p)||(p=ke(p)),S(p)}function nt(p,{ignoreFieldNorm:o=u.ignoreFieldNorm}){p.forEach(m=>{let S=1;m.matches.forEach(({key:I,norm:T,score:A})=>{let R=I?I.weight:null;S*=Math.pow(A===0&&R?Number.EPSILON:A,(R||1)*(o?1:T))}),m.score=S})}function rt(p,o){let m=p.matches;o.matches=[],y(m)&&m.forEach(S=>{if(!y(S.indices)||!S.indices.length)return;let{indices:I,value:T}=S,A={indices:I,value:T};S.key&&(A.key=S.key.src),S.idx>-1&&(A.refIndex=S.idx),o.matches.push(A)})}function st(p,o){o.score=p.score}function ot(p,o,{includeMatches:m=u.includeMatches,includeScore:S=u.includeScore}={}){let I=[];return m&&I.push(rt),S&&I.push(st),p.map(T=>{let{idx:A}=T,R={item:o[A],refIndex:A};return I.length&&I.forEach(F=>{F(T,R)}),R})}class Se{constructor(o,m={},S){this.options={...u,...m},this.options.useExtendedSearch,this._keyStore=new e(this.options.keys),this.setCollection(o,S)}setCollection(o,m){if(this._docs=o,m&&!(m instanceof V))throw new Error(Z);this._myIndex=m||U(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(o){y(o)&&(this._docs.push(o),this._myIndex.add(o))}remove(o=()=>!1){let m=[];for(let S=0,I=this._docs.length;S-1&&(F=F.slice(0,m)),ot(F,this._docs,{includeMatches:S,includeScore:I})}_searchStringList(o){let m=Ne(o,this.options),{records:S}=this._myIndex,I=[];return S.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=m.searchIn(T);F&&I.push({item:T,idx:A,matches:[{score:H,value:T,norm:R,indices:B}]})}),I}_searchLogical(o){let m=xe(o,this.options),S=(R,F,H)=>{if(!R.children){let{keyId:x,searcher:G}=R,q=this._findMatches({key:this._keyStore.get(x),value:this._myIndex.getValueForItemAtKeyId(F,x),searcher:G});return q&&q.length?[{idx:H,item:F,matches:q}]:[]}let B=[];for(let x=0,G=R.children.length;x{if(y(R)){let H=S(m,R,F);H.length&&(T[F]||(T[F]={idx:F,item:R,matches:[]},A.push(T[F])),H.forEach(({matches:B})=>{T[F].matches.push(...B)}))}}),A}_searchObjectList(o){let m=Ne(o,this.options),{keys:S,records:I}=this._myIndex,T=[];return I.forEach(({$:A,i:R})=>{if(!y(A))return;let F=[];S.forEach((H,B)=>{F.push(...this._findMatches({key:H,value:A[B],searcher:m}))}),F.length&&T.push({idx:R,item:A,matches:F})}),T}_findMatches({key:o,value:m,searcher:S}){if(!y(m))return[];let I=[];if(_(m))m.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=S.searchIn(T);F&&I.push({score:H,key:o,value:T,idx:A,norm:R,indices:B})});else{let{v:T,n:A}=m,{isMatch:R,score:F,indices:H}=S.searchIn(T);R&&I.push({score:F,key:o,value:T,norm:A,indices:H})}return I}}Se.version="6.6.2",Se.createIndex=U,Se.parseIndex=$,Se.config=u,Se.parseQuery=xe,et(qe)},791:function(j,i,b){b.r(i),b.d(i,{__DO_NOT_USE__ActionTypes:function(){return y},applyMiddleware:function(){return M},bindActionCreators:function(){return v},combineReducers:function(){return n},compose:function(){return P},createStore:function(){return w},legacy_createStore:function(){return N}});function _(f){"@babel/helpers - typeof";return _=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},_(f)}function h(f,u){if(_(f)!=="object"||f===null)return f;var C=f[Symbol.toPrimitive];if(C!==void 0){var Y=C.call(f,u||"default");if(_(Y)!=="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(f)}function d(f){var u=h(f,"string");return _(u)==="symbol"?u:String(u)}function a(f,u,C){return u=d(u),u in f?Object.defineProperty(f,u,{value:C,enumerable:!0,configurable:!0,writable:!0}):f[u]=C,f}function r(f,u){var C=Object.keys(f);if(Object.getOwnPropertySymbols){var Y=Object.getOwnPropertySymbols(f);u&&(Y=Y.filter(function(V){return Object.getOwnPropertyDescriptor(f,V).enumerable})),C.push.apply(C,Y)}return C}function c(f){for(var u=1;u"u"&&(C=u,u=void 0),typeof C<"u"){if(typeof C!="function")throw new Error(l(1));return C(w)(f,u)}if(typeof f!="function")throw new Error(l(2));var V=f,U=u,$=[],W=$,J=!1;function z(){W===$&&(W=$.slice())}function ee(){if(J)throw new Error(l(3));return U}function ae(te){if(typeof te!="function")throw new Error(l(4));if(J)throw new Error(l(5));var de=!0;return z(),W.push(te),function(){if(de){if(J)throw new Error(l(6));de=!1,z();var oe=W.indexOf(te);W.splice(oe,1),$=null}}}function ce(te){if(!D(te))throw new Error(l(7));if(typeof te.type>"u")throw new Error(l(8));if(J)throw new Error(l(9));try{J=!0,U=V(U,te)}finally{J=!1}for(var de=$=W,pe=0;pe0)return"Unexpected "+($.length>1?"keys":"key")+" "+('"'+$.join('", "')+'" found in '+U+". ")+"Expected to find one of the known reducer keys instead: "+('"'+V.join('", "')+'". Unexpected keys will be ignored.')}function t(f){Object.keys(f).forEach(function(u){var C=f[u],Y=C(void 0,{type:y.INIT});if(typeof Y>"u")throw new Error(l(12));if(typeof C(void 0,{type:y.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(l(13))})}function n(f){for(var u=Object.keys(f),C={},Y=0;Y"u"){var Te=ee&&ee.type;throw new Error(l(14))}le[te]=oe,ce=ce||oe!==pe}return ce=ce||U.length!==Object.keys(z).length,ce?le:z}}function s(f,u){return function(){return u(f.apply(this,arguments))}}function v(f,u){if(typeof f=="function")return s(f,u);if(typeof f!="object"||f===null)throw new Error(l(16));var C={};for(var Y in f){var V=f[Y];typeof V=="function"&&(C[Y]=s(V,u))}return C}function P(){for(var f=arguments.length,u=new Array(f),C=0;Cwindow.pluralize(O,e,{count:e}),noChoicesText:E,noResultsText:L,placeholderValue:k,position:Q??"auto",removeItemButton:se,renderChoiceLimit:D,searchEnabled:h,searchFields:w??["label"],searchPlaceholderValue:E,searchResultLimit:D,shouldSort:!1,searchFloor:a?0:1}),await this.refreshChoices({withInitialOptions:!0}),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)),this.refreshPlaceholder(),b&&this.select.showDropdown(),this.$refs.input.addEventListener("change",()=>{this.refreshPlaceholder(),!this.isStateBeingUpdated&&(this.isStateBeingUpdated=!0,this.state=this.select.getValue(!0)??null,this.$nextTick(()=>this.isStateBeingUpdated=!1))}),d&&this.$refs.input.addEventListener("showDropdown",async()=>{this.select.clearChoices(),await this.select.setChoices([{label:c,value:"",disabled:!0}]),await this.refreshChoices()}),a&&(this.$refs.input.addEventListener("search",async e=>{let t=e.detail.value?.trim();this.isSearching=!0,this.select.clearChoices(),await this.select.setChoices([{label:[null,void 0,""].includes(t)?c:ne,value:"",disabled:!0}])}),this.$refs.input.addEventListener("search",Alpine.debounce(async e=>{await this.refreshChoices({search:e.detail.value?.trim()}),this.isSearching=!1},Z))),_||window.addEventListener("filament-forms::select.refreshSelectedOptionLabel",async e=>{e.detail.livewireId===r&&e.detail.statePath===g&&await this.refreshChoices({withInitialOptions:!d})}),this.$watch("state",async()=>{this.select&&(this.refreshPlaceholder(),!this.isStateBeingUpdated&&await this.refreshChoices({withInitialOptions:!d}))})},destroy:function(){this.select.destroy(),this.select=null},refreshChoices:async function(e={}){let t=await this.getChoices(e);this.select&&(this.select.clearStore(),this.refreshPlaceholder(),this.setChoices(t),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)))},setChoices:function(e){this.select.setChoices(e,"value","label",!0)},getChoices:async function(e={}){let t=await this.getExistingOptions(e);return t.concat(await this.getMissingOptions(t))},getExistingOptions:async function({search:e,withInitialOptions:t}){if(t)return y;let n=[];return e!==""&&e!==null&&e!==void 0?n=await i(e):n=await j(),n.map(s=>s.choices?(s.choices=s.choices.map(v=>(v.selected=Array.isArray(this.state)?this.state.includes(v.value):this.state===v.value,v)),s):(s.selected=Array.isArray(this.state)?this.state.includes(s.value):this.state===s.value,s))},refreshPlaceholder:function(){_||(this.select._renderItems(),[null,void 0,""].includes(this.state)&&(this.$el.querySelector(".choices__list--single").innerHTML=`
${k??""}
`))},formatState:function(e){return _?(e??[]).map(t=>t?.toString()):e?.toString()},getMissingOptions:async function(e){let t=this.formatState(this.state);if([null,void 0,"",[],{}].includes(t))return{};let n=new Set;return e.forEach(s=>{if(s.choices){s.choices.forEach(v=>n.add(v.value));return}n.add(s.value)}),_?t.every(s=>n.has(s))?{}:(await me()).filter(s=>!n.has(s.value)).map(s=>(s.selected=!0,s)):n.has(t)?n:[{label:await X(),value:t,selected:!0}]}}}export{vt as default}; +/*! Bundled license information: + +choices.js/public/assets/scripts/choices.js: + (*! choices.js v10.2.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme *) +*/ diff --git a/public/js/filament/forms/components/tags-input.js b/public/js/filament/forms/components/tags-input.js new file mode 100644 index 000000000..c19c04a13 --- /dev/null +++ b/public/js/filament/forms/components/tags-input.js @@ -0,0 +1 @@ +function i({state:a,splitKeys:n}){return{newTag:"",state:a,createTag:function(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.newTag=""}},deleteTag:function(t){this.state=this.state.filter(e=>e!==t)},reorderTags:function(t){let e=this.state.splice(t.oldIndex,1)[0];this.state.splice(t.newIndex,0,e),this.state=[...this.state]},input:{["x-on:blur"]:"createTag()",["x-model"]:"newTag",["x-on:keydown"](t){["Enter",...n].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),this.createTag())},["x-on:paste"](){this.$nextTick(()=>{if(n.length===0){this.createTag();return}let t=n.map(e=>e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(t,"g")).forEach(e=>{this.newTag=e,this.createTag()})})}}}}export{i as default}; diff --git a/public/js/filament/forms/components/textarea.js b/public/js/filament/forms/components/textarea.js new file mode 100644 index 000000000..e93fa52c9 --- /dev/null +++ b/public/js/filament/forms/components/textarea.js @@ -0,0 +1 @@ +function t({initialHeight:e}){return{init:function(){this.render()},render:function(){this.$el.scrollHeight>0&&(this.$el.style.height=e+"rem",this.$el.style.height=this.$el.scrollHeight+"px")}}}export{t as default}; diff --git a/public/js/filament/notifications/notifications.js b/public/js/filament/notifications/notifications.js new file mode 100644 index 000000000..5effd39fa --- /dev/null +++ b/public/js/filament/notifications/notifications.js @@ -0,0 +1 @@ +(()=>{var O=Object.create;var $=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var d=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports);var j=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Y(t))!W.call(i,n)&&n!==e&&$(i,n,{get:()=>t[n],enumerable:!(s=V(t,n))||s.enumerable});return i};var J=(i,t,e)=>(e=i!=null?O(H(i)):{},j(t||!i||!i.__esModule?$(e,"default",{value:i,enumerable:!0}):e,i));var S=d((ut,_)=>{var v,g=typeof global<"u"&&(global.crypto||global.msCrypto);g&&g.getRandomValues&&(y=new Uint8Array(16),v=function(){return g.getRandomValues(y),y});var y;v||(T=new Array(16),v=function(){for(var i=0,t;i<16;i++)i&3||(t=Math.random()*4294967296),T[i]=t>>>((i&3)<<3)&255;return T});var T;_.exports=v});var C=d((ct,U)=>{var P=[];for(f=0;f<256;++f)P[f]=(f+256).toString(16).substr(1);var f;function K(i,t){var e=t||0,s=P;return s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]}U.exports=K});var R=d((lt,F)=>{var Q=S(),X=C(),a=Q(),Z=[a[0]|1,a[1],a[2],a[3],a[4],a[5]],b=(a[6]<<8|a[7])&16383,D=0,A=0;function tt(i,t,e){var s=t&&e||0,n=t||[];i=i||{};var r=i.clockseq!==void 0?i.clockseq:b,o=i.msecs!==void 0?i.msecs:new Date().getTime(),h=i.nsecs!==void 0?i.nsecs:A+1,l=o-D+(h-A)/1e4;if(l<0&&i.clockseq===void 0&&(r=r+1&16383),(l<0||o>D)&&i.nsecs===void 0&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");D=o,A=h,b=r,o+=122192928e5;var c=((o&268435455)*1e4+h)%4294967296;n[s++]=c>>>24&255,n[s++]=c>>>16&255,n[s++]=c>>>8&255,n[s++]=c&255;var u=o/4294967296*1e4&268435455;n[s++]=u>>>8&255,n[s++]=u&255,n[s++]=u>>>24&15|16,n[s++]=u>>>16&255,n[s++]=r>>>8|128,n[s++]=r&255;for(var N=i.node||Z,m=0;m<6;++m)n[s+m]=N[m];return t||X(n)}F.exports=tt});var I=d((dt,G)=>{var it=S(),et=C();function st(i,t,e){var s=t&&e||0;typeof i=="string"&&(t=i=="binary"?new Array(16):null,i=null),i=i||{};var n=i.random||(i.rng||it)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t)for(var r=0;r<16;++r)t[s+r]=n[r];return t||et(n)}G.exports=st});var B=d((ft,z)=>{var nt=R(),M=I(),E=M;E.v1=nt;E.v4=M;z.exports=E});function k(i,t=()=>{}){let e=!1;return function(){e?t.apply(this,arguments):(e=!0,i.apply(this,arguments))}}var q=i=>{i.data("notificationComponent",({notification:t})=>({isShown:!1,computedStyle:null,transitionDuration:null,transitionEasing:null,init:function(){this.computedStyle=window.getComputedStyle(this.$el),this.transitionDuration=parseFloat(this.computedStyle.transitionDuration)*1e3,this.transitionEasing=this.computedStyle.transitionTimingFunction,this.configureTransitions(),this.configureAnimations(),t.duration&&t.duration!=="persistent"&&setTimeout(()=>this.close(),t.duration),this.isShown=!0},configureTransitions:function(){let e=this.computedStyle.display,s=()=>{i.mutateDom(()=>{this.$el.style.setProperty("display",e),this.$el.style.setProperty("visibility","visible")}),this.$el._x_isShown=!0},n=()=>{i.mutateDom(()=>{this.$el._x_isShown?this.$el.style.setProperty("visibility","hidden"):this.$el.style.setProperty("display","none")})},r=k(o=>o?s():n(),o=>{this.$el._x_toggleAndCascadeWithTransitions(this.$el,o,s,n)});i.effect(()=>r(this.isShown))},configureAnimations:function(){let e;Livewire.hook("commit",({component:s,commit:n,succeed:r,fail:o,respond:h})=>{if(!s.snapshot.data.isFilamentNotificationsComponent)return;let l=()=>this.$el.getBoundingClientRect().top,c=l();h(()=>{e=()=>{this.isShown&&this.$el.animate([{transform:`translateY(${c-l()}px)`},{transform:"translateY(0px)"}],{duration:this.transitionDuration,easing:this.transitionEasing})},this.$el.getAnimations().forEach(u=>u.finish())}),r(({snapshot:u,effect:N})=>{e()})})},close:function(){this.isShown=!1,setTimeout(()=>window.dispatchEvent(new CustomEvent("notificationClosed",{detail:{id:t.id}})),this.transitionDuration)},markAsRead:function(){window.dispatchEvent(new CustomEvent("markedNotificationAsRead",{detail:{id:t.id}}))},markAsUnread:function(){window.dispatchEvent(new CustomEvent("markedNotificationAsUnread",{detail:{id:t.id}}))}}))};var L=J(B(),1),p=class{constructor(){return this.id((0,L.v4)()),this}id(t){return this.id=t,this}title(t){return this.title=t,this}body(t){return this.body=t,this}actions(t){return this.actions=t,this}status(t){return this.status=t,this}color(t){return this.color=t,this}icon(t){return this.icon=t,this}iconColor(t){return this.iconColor=t,this}duration(t){return this.duration=t,this}seconds(t){return this.duration(t*1e3),this}persistent(){return this.duration("persistent"),this}danger(){return this.status("danger"),this}info(){return this.status("info"),this}success(){return this.status("success"),this}warning(){return this.status("warning"),this}view(t){return this.view=t,this}viewData(t){return this.viewData=t,this}send(){return window.dispatchEvent(new CustomEvent("notificationSent",{detail:{notification:this}})),this}},w=class{constructor(t){return this.name(t),this}name(t){return this.name=t,this}color(t){return this.color=t,this}dispatch(t,e){return this.event(t),this.eventData(e),this}dispatchSelf(t,e){return this.dispatch(t,e),this.dispatchDirection="self",this}dispatchTo(t,e,s){return this.dispatch(e,s),this.dispatchDirection="to",this.dispatchToComponent=t,this}emit(t,e){return this.dispatch(t,e),this}emitSelf(t,e){return this.dispatchSelf(t,e),this}emitTo(t,e,s){return this.dispatchTo(t,e,s),this}dispatchDirection(t){return this.dispatchDirection=t,this}dispatchToComponent(t){return this.dispatchToComponent=t,this}event(t){return this.event=t,this}eventData(t){return this.eventData=t,this}extraAttributes(t){return this.extraAttributes=t,this}icon(t){return this.icon=t,this}iconPosition(t){return this.iconPosition=t,this}outlined(t=!0){return this.isOutlined=t,this}disabled(t=!0){return this.isDisabled=t,this}label(t){return this.label=t,this}close(t=!0){return this.shouldClose=t,this}openUrlInNewTab(t=!0){return this.shouldOpenUrlInNewTab=t,this}size(t){return this.size=t,this}url(t){return this.url=t,this}view(t){return this.view=t,this}button(){return this.view("filament-notifications::actions.button-action"),this}grouped(){return this.view("filament-notifications::actions.grouped-action"),this}link(){return this.view("filament-notifications::actions.link-action"),this}},x=class{constructor(t){return this.actions(t),this}actions(t){return this.actions=t.map(e=>e.grouped()),this}color(t){return this.color=t,this}icon(t){return this.icon=t,this}iconPosition(t){return this.iconPosition=t,this}label(t){return this.label=t,this}tooltip(t){return this.tooltip=t,this}};window.FilamentNotificationAction=w;window.FilamentNotificationActionGroup=x;window.FilamentNotification=p;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(q)});})(); diff --git a/public/js/filament/support/async-alpine.js b/public/js/filament/support/async-alpine.js new file mode 100644 index 000000000..048f75c05 --- /dev/null +++ b/public/js/filament/support/async-alpine.js @@ -0,0 +1 @@ +(()=>{(()=>{var d=Object.defineProperty,m=t=>d(t,"__esModule",{value:!0}),f=(t,e)=>{m(t);for(var i in e)d(t,i,{get:e[i],enumerable:!0})},o={};f(o,{eager:()=>g,event:()=>w,idle:()=>y,media:()=>b,visible:()=>E});var c=()=>!0,g=c,v=({component:t,argument:e})=>new Promise(i=>{if(e)window.addEventListener(e,()=>i(),{once:!0});else{let n=a=>{a.detail.id===t.id&&(window.removeEventListener("async-alpine:load",n),i())};window.addEventListener("async-alpine:load",n)}}),w=v,x=()=>new Promise(t=>{"requestIdleCallback"in window?window.requestIdleCallback(t):setTimeout(t,200)}),y=x,A=({argument:t})=>new Promise(e=>{if(!t)return console.log("Async Alpine: media strategy requires a media query. Treating as 'eager'"),e();let i=window.matchMedia(`(${t})`);i.matches?e():i.addEventListener("change",e,{once:!0})}),b=A,$=({component:t,argument:e})=>new Promise(i=>{let n=e||"0px 0px 0px 0px",a=new IntersectionObserver(r=>{r[0].isIntersecting&&(a.disconnect(),i())},{rootMargin:n});a.observe(t.el)}),E=$;function P(t){let e=q(t),i=u(e);return i.type==="method"?{type:"expression",operator:"&&",parameters:[i]}:i}function q(t){let e=/\s*([()])\s*|\s*(\|\||&&|\|)\s*|\s*((?:[^()&|]+\([^()]+\))|[^()&|]+)\s*/g,i=[],n;for(;(n=e.exec(t))!==null;){let[,a,r,s]=n;if(a!==void 0)i.push({type:"parenthesis",value:a});else if(r!==void 0)i.push({type:"operator",value:r==="|"?"&&":r});else{let p={type:"method",method:s.trim()};s.includes("(")&&(p.method=s.substring(0,s.indexOf("(")).trim(),p.argument=s.substring(s.indexOf("(")+1,s.indexOf(")"))),s.method==="immediate"&&(s.method="eager"),i.push(p)}}return i}function u(t){let e=h(t);for(;t.length>0&&(t[0].value==="&&"||t[0].value==="|"||t[0].value==="||");){let i=t.shift().value,n=h(t);e.type==="expression"&&e.operator===i?e.parameters.push(n):e={type:"expression",operator:i,parameters:[e,n]}}return e}function h(t){if(t[0].value==="("){t.shift();let e=u(t);return t[0].value===")"&&t.shift(),e}else return t.shift()}var _="__internal_",l={Alpine:null,_options:{prefix:"ax-",alpinePrefix:"x-",root:"load",inline:"load-src",defaultStrategy:"eager"},_alias:!1,_data:{},_realIndex:0,get _index(){return this._realIndex++},init(t,e={}){return this.Alpine=t,this._options={...this._options,...e},this},start(){return this._processInline(),this._setupComponents(),this._mutations(),this},data(t,e=!1){return this._data[t]={loaded:!1,download:e},this},url(t,e){!t||!e||(this._data[t]||this.data(t),this._data[t].download=()=>import(this._parseUrl(e)))},alias(t){this._alias=t},_processInline(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.inline}]`);for(let e of t)this._inlineElement(e)},_inlineElement(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`),i=t.getAttribute(`${this._options.prefix}${this._options.inline}`);if(!e||!i)return;let n=this._parseName(e);this.url(n,i)},_setupComponents(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.root}]`);for(let e of t)this._setupComponent(e)},_setupComponent(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`);t.setAttribute(`${this._options.alpinePrefix}ignore`,"");let i=this._parseName(e),n=t.getAttribute(`${this._options.prefix}${this._options.root}`)||this._options.defaultStrategy;this._componentStrategy({name:i,strategy:n,el:t,id:t.id||this._index})},async _componentStrategy(t){let e=P(t.strategy);await this._generateRequirements(t,e),await this._download(t.name),this._activate(t)},_generateRequirements(t,e){if(e.type==="expression"){if(e.operator==="&&")return Promise.all(e.parameters.map(i=>this._generateRequirements(t,i)));if(e.operator==="||")return Promise.any(e.parameters.map(i=>this._generateRequirements(t,i)))}return o[e.method]?o[e.method]({component:t,argument:e.argument}):!1},async _download(t){if(t.startsWith(_)||(this._handleAlias(t),!this._data[t]||this._data[t].loaded))return;let e=await this._getModule(t);this.Alpine.data(t,e),this._data[t].loaded=!0},async _getModule(t){if(!this._data[t])return;let e=await this._data[t].download(t);return typeof e=="function"?e:e[t]||e.default||Object.values(e)[0]||!1},_activate(t){this.Alpine.destroyTree(t.el),t.el.removeAttribute(`${this._options.alpinePrefix}ignore`),t.el._x_ignore=!1,this.Alpine.initTree(t.el)},_mutations(){new MutationObserver(t=>{for(let e of t)if(e.addedNodes)for(let i of e.addedNodes)i.nodeType===1&&(i.hasAttribute(`${this._options.prefix}${this._options.root}`)&&this._mutationEl(i),i.querySelectorAll(`[${this._options.prefix}${this._options.root}]`).forEach(n=>this._mutationEl(n)))}).observe(document,{attributes:!0,childList:!0,subtree:!0})},_mutationEl(t){t.hasAttribute(`${this._options.prefix}${this._options.inline}`)&&this._inlineElement(t),this._setupComponent(t)},_handleAlias(t){if(!(!this._alias||this._data[t])){if(typeof this._alias=="function"){this.data(t,this._alias);return}this.url(t,this._alias.replaceAll("[name]",t))}},_parseName(t){return(t||"").split(/[({]/g)[0]||`${_}${this._index}`},_parseUrl(t){return new RegExp("^(?:[a-z+]+:)?//","i").test(t)?t:new URL(t,document.baseURI).href}};document.addEventListener("alpine:init",()=>{window.AsyncAlpine=l,l.init(Alpine,window.AsyncAlpineOptions||{}),document.dispatchEvent(new CustomEvent("async-alpine:init")),l.start()})})();})(); diff --git a/public/js/filament/support/support.js b/public/js/filament/support/support.js new file mode 100644 index 000000000..4b0b30cdd --- /dev/null +++ b/public/js/filament/support/support.js @@ -0,0 +1,46 @@ +(()=>{var Io=Object.create;var Oi=Object.defineProperty;var Fo=Object.getOwnPropertyDescriptor;var No=Object.getOwnPropertyNames;var Lo=Object.getPrototypeOf,ko=Object.prototype.hasOwnProperty;var Ur=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var jo=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of No(t))!ko.call(e,o)&&o!==n&&Oi(e,o,{get:()=>t[o],enumerable:!(r=Fo(t,o))||r.enumerable});return e};var Bo=(e,t,n)=>(n=e!=null?Io(Lo(e)):{},jo(t||!e||!e.__esModule?Oi(n,"default",{value:e,enumerable:!0}):n,e));var eo=Ur(()=>{});var to=Ur(()=>{});var no=Ur((hs,pr)=>{(function(){"use strict";var e="input is invalid type",t="finalize already called",n=typeof window=="object",r=n?window:{};r.JS_MD5_NO_WINDOW&&(n=!1);var o=!n&&typeof self=="object",i=!r.JS_MD5_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;i?r=global:o&&(r=self);var s=!r.JS_MD5_NO_COMMON_JS&&typeof pr=="object"&&pr.exports,c=typeof define=="function"&&define.amd,v=!r.JS_MD5_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",p="0123456789abcdef".split(""),x=[128,32768,8388608,-2147483648],b=[0,8,16,24],E=["hex","array","digest","buffer","arrayBuffer","base64"],_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),C=[],M;if(v){var U=new ArrayBuffer(68);M=new Uint8Array(U),C=new Uint32Array(U)}var V=Array.isArray;(r.JS_MD5_NO_NODE_JS||!V)&&(V=function(l){return Object.prototype.toString.call(l)==="[object Array]"});var B=ArrayBuffer.isView;v&&(r.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW||!B)&&(B=function(l){return typeof l=="object"&&l.buffer&&l.buffer.constructor===ArrayBuffer});var Q=function(l){var d=typeof l;if(d==="string")return[l,!0];if(d!=="object"||l===null)throw new Error(e);if(v&&l.constructor===ArrayBuffer)return[new Uint8Array(l),!1];if(!V(l)&&!B(l))throw new Error(e);return[l,!1]},q=function(l){return function(d){return new R(!0).update(d)[l]()}},xe=function(){var l=q("hex");i&&(l=se(l)),l.create=function(){return new R},l.update=function(u){return l.create().update(u)};for(var d=0;d>>6,ze[T++]=128|u&63):u<55296||u>=57344?(ze[T++]=224|u>>>12,ze[T++]=128|u>>>6&63,ze[T++]=128|u&63):(u=65536+((u&1023)<<10|l.charCodeAt(++H)&1023),ze[T++]=240|u>>>18,ze[T++]=128|u>>>12&63,ze[T++]=128|u>>>6&63,ze[T++]=128|u&63);else for(T=this.start;H>>2]|=u<>>2]|=(192|u>>>6)<>>2]|=(128|u&63)<=57344?(G[T>>>2]|=(224|u>>>12)<>>2]|=(128|u>>>6&63)<>>2]|=(128|u&63)<>>2]|=(240|u>>>18)<>>2]|=(128|u>>>12&63)<>>2]|=(128|u>>>6&63)<>>2]|=(128|u&63)<>>2]|=l[H]<=64?(this.start=T-64,this.hash(),this.hashed=!0):this.start=T}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},R.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var l=this.blocks,d=this.lastByteIndex;l[d>>>2]|=x[d&3],d>=56&&(this.hashed||this.hash(),l[0]=l[16],l[16]=l[1]=l[2]=l[3]=l[4]=l[5]=l[6]=l[7]=l[8]=l[9]=l[10]=l[11]=l[12]=l[13]=l[14]=l[15]=0),l[14]=this.bytes<<3,l[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},R.prototype.hash=function(){var l,d,h,u,H,T,P=this.blocks;this.first?(l=P[0]-680876937,l=(l<<7|l>>>25)-271733879<<0,u=(-1732584194^l&2004318071)+P[1]-117830708,u=(u<<12|u>>>20)+l<<0,h=(-271733879^u&(l^-271733879))+P[2]-1126478375,h=(h<<17|h>>>15)+u<<0,d=(l^h&(u^l))+P[3]-1316259209,d=(d<<22|d>>>10)+h<<0):(l=this.h0,d=this.h1,h=this.h2,u=this.h3,l+=(u^d&(h^u))+P[0]-680876936,l=(l<<7|l>>>25)+d<<0,u+=(h^l&(d^h))+P[1]-389564586,u=(u<<12|u>>>20)+l<<0,h+=(d^u&(l^d))+P[2]+606105819,h=(h<<17|h>>>15)+u<<0,d+=(l^h&(u^l))+P[3]-1044525330,d=(d<<22|d>>>10)+h<<0),l+=(u^d&(h^u))+P[4]-176418897,l=(l<<7|l>>>25)+d<<0,u+=(h^l&(d^h))+P[5]+1200080426,u=(u<<12|u>>>20)+l<<0,h+=(d^u&(l^d))+P[6]-1473231341,h=(h<<17|h>>>15)+u<<0,d+=(l^h&(u^l))+P[7]-45705983,d=(d<<22|d>>>10)+h<<0,l+=(u^d&(h^u))+P[8]+1770035416,l=(l<<7|l>>>25)+d<<0,u+=(h^l&(d^h))+P[9]-1958414417,u=(u<<12|u>>>20)+l<<0,h+=(d^u&(l^d))+P[10]-42063,h=(h<<17|h>>>15)+u<<0,d+=(l^h&(u^l))+P[11]-1990404162,d=(d<<22|d>>>10)+h<<0,l+=(u^d&(h^u))+P[12]+1804603682,l=(l<<7|l>>>25)+d<<0,u+=(h^l&(d^h))+P[13]-40341101,u=(u<<12|u>>>20)+l<<0,h+=(d^u&(l^d))+P[14]-1502002290,h=(h<<17|h>>>15)+u<<0,d+=(l^h&(u^l))+P[15]+1236535329,d=(d<<22|d>>>10)+h<<0,l+=(h^u&(d^h))+P[1]-165796510,l=(l<<5|l>>>27)+d<<0,u+=(d^h&(l^d))+P[6]-1069501632,u=(u<<9|u>>>23)+l<<0,h+=(l^d&(u^l))+P[11]+643717713,h=(h<<14|h>>>18)+u<<0,d+=(u^l&(h^u))+P[0]-373897302,d=(d<<20|d>>>12)+h<<0,l+=(h^u&(d^h))+P[5]-701558691,l=(l<<5|l>>>27)+d<<0,u+=(d^h&(l^d))+P[10]+38016083,u=(u<<9|u>>>23)+l<<0,h+=(l^d&(u^l))+P[15]-660478335,h=(h<<14|h>>>18)+u<<0,d+=(u^l&(h^u))+P[4]-405537848,d=(d<<20|d>>>12)+h<<0,l+=(h^u&(d^h))+P[9]+568446438,l=(l<<5|l>>>27)+d<<0,u+=(d^h&(l^d))+P[14]-1019803690,u=(u<<9|u>>>23)+l<<0,h+=(l^d&(u^l))+P[3]-187363961,h=(h<<14|h>>>18)+u<<0,d+=(u^l&(h^u))+P[8]+1163531501,d=(d<<20|d>>>12)+h<<0,l+=(h^u&(d^h))+P[13]-1444681467,l=(l<<5|l>>>27)+d<<0,u+=(d^h&(l^d))+P[2]-51403784,u=(u<<9|u>>>23)+l<<0,h+=(l^d&(u^l))+P[7]+1735328473,h=(h<<14|h>>>18)+u<<0,d+=(u^l&(h^u))+P[12]-1926607734,d=(d<<20|d>>>12)+h<<0,H=d^h,l+=(H^u)+P[5]-378558,l=(l<<4|l>>>28)+d<<0,u+=(H^l)+P[8]-2022574463,u=(u<<11|u>>>21)+l<<0,T=u^l,h+=(T^d)+P[11]+1839030562,h=(h<<16|h>>>16)+u<<0,d+=(T^h)+P[14]-35309556,d=(d<<23|d>>>9)+h<<0,H=d^h,l+=(H^u)+P[1]-1530992060,l=(l<<4|l>>>28)+d<<0,u+=(H^l)+P[4]+1272893353,u=(u<<11|u>>>21)+l<<0,T=u^l,h+=(T^d)+P[7]-155497632,h=(h<<16|h>>>16)+u<<0,d+=(T^h)+P[10]-1094730640,d=(d<<23|d>>>9)+h<<0,H=d^h,l+=(H^u)+P[13]+681279174,l=(l<<4|l>>>28)+d<<0,u+=(H^l)+P[0]-358537222,u=(u<<11|u>>>21)+l<<0,T=u^l,h+=(T^d)+P[3]-722521979,h=(h<<16|h>>>16)+u<<0,d+=(T^h)+P[6]+76029189,d=(d<<23|d>>>9)+h<<0,H=d^h,l+=(H^u)+P[9]-640364487,l=(l<<4|l>>>28)+d<<0,u+=(H^l)+P[12]-421815835,u=(u<<11|u>>>21)+l<<0,T=u^l,h+=(T^d)+P[15]+530742520,h=(h<<16|h>>>16)+u<<0,d+=(T^h)+P[2]-995338651,d=(d<<23|d>>>9)+h<<0,l+=(h^(d|~u))+P[0]-198630844,l=(l<<6|l>>>26)+d<<0,u+=(d^(l|~h))+P[7]+1126891415,u=(u<<10|u>>>22)+l<<0,h+=(l^(u|~d))+P[14]-1416354905,h=(h<<15|h>>>17)+u<<0,d+=(u^(h|~l))+P[5]-57434055,d=(d<<21|d>>>11)+h<<0,l+=(h^(d|~u))+P[12]+1700485571,l=(l<<6|l>>>26)+d<<0,u+=(d^(l|~h))+P[3]-1894986606,u=(u<<10|u>>>22)+l<<0,h+=(l^(u|~d))+P[10]-1051523,h=(h<<15|h>>>17)+u<<0,d+=(u^(h|~l))+P[1]-2054922799,d=(d<<21|d>>>11)+h<<0,l+=(h^(d|~u))+P[8]+1873313359,l=(l<<6|l>>>26)+d<<0,u+=(d^(l|~h))+P[15]-30611744,u=(u<<10|u>>>22)+l<<0,h+=(l^(u|~d))+P[6]-1560198380,h=(h<<15|h>>>17)+u<<0,d+=(u^(h|~l))+P[13]+1309151649,d=(d<<21|d>>>11)+h<<0,l+=(h^(d|~u))+P[4]-145523070,l=(l<<6|l>>>26)+d<<0,u+=(d^(l|~h))+P[11]-1120210379,u=(u<<10|u>>>22)+l<<0,h+=(l^(u|~d))+P[2]+718787259,h=(h<<15|h>>>17)+u<<0,d+=(u^(h|~l))+P[9]-343485551,d=(d<<21|d>>>11)+h<<0,this.first?(this.h0=l+1732584193<<0,this.h1=d-271733879<<0,this.h2=h-1732584194<<0,this.h3=u+271733878<<0,this.first=!1):(this.h0=this.h0+l<<0,this.h1=this.h1+d<<0,this.h2=this.h2+h<<0,this.h3=this.h3+u<<0)},R.prototype.hex=function(){this.finalize();var l=this.h0,d=this.h1,h=this.h2,u=this.h3;return p[l>>>4&15]+p[l&15]+p[l>>>12&15]+p[l>>>8&15]+p[l>>>20&15]+p[l>>>16&15]+p[l>>>28&15]+p[l>>>24&15]+p[d>>>4&15]+p[d&15]+p[d>>>12&15]+p[d>>>8&15]+p[d>>>20&15]+p[d>>>16&15]+p[d>>>28&15]+p[d>>>24&15]+p[h>>>4&15]+p[h&15]+p[h>>>12&15]+p[h>>>8&15]+p[h>>>20&15]+p[h>>>16&15]+p[h>>>28&15]+p[h>>>24&15]+p[u>>>4&15]+p[u&15]+p[u>>>12&15]+p[u>>>8&15]+p[u>>>20&15]+p[u>>>16&15]+p[u>>>28&15]+p[u>>>24&15]},R.prototype.toString=R.prototype.hex,R.prototype.digest=function(){this.finalize();var l=this.h0,d=this.h1,h=this.h2,u=this.h3;return[l&255,l>>>8&255,l>>>16&255,l>>>24&255,d&255,d>>>8&255,d>>>16&255,d>>>24&255,h&255,h>>>8&255,h>>>16&255,h>>>24&255,u&255,u>>>8&255,u>>>16&255,u>>>24&255]},R.prototype.array=R.prototype.digest,R.prototype.arrayBuffer=function(){this.finalize();var l=new ArrayBuffer(16),d=new Uint32Array(l);return d[0]=this.h0,d[1]=this.h1,d[2]=this.h2,d[3]=this.h3,l},R.prototype.buffer=R.prototype.arrayBuffer,R.prototype.base64=function(){for(var l,d,h,u="",H=this.array(),T=0;T<15;)l=H[T++],d=H[T++],h=H[T++],u+=_[l>>>2]+_[(l<<4|d>>>4)&63]+_[(d<<2|h>>>6)&63]+_[h&63];return l=H[T],u+=_[l>>>2]+_[l<<4&63]+"==",u};function fe(l,d){var h,u=Q(l);if(l=u[0],u[1]){var H=[],T=l.length,P=0,G;for(h=0;h>>6,H[P++]=128|G&63):G<55296||G>=57344?(H[P++]=224|G>>>12,H[P++]=128|G>>>6&63,H[P++]=128|G&63):(G=65536+((G&1023)<<10|l.charCodeAt(++h)&1023),H[P++]=240|G>>>18,H[P++]=128|G>>>12&63,H[P++]=128|G>>>6&63,H[P++]=128|G&63);l=H}l.length>64&&(l=new R(!0).update(l).array());var ze=[],Dt=[];for(h=0;h<64;++h){var jt=l[h]||0;ze[h]=92^jt,Dt[h]=54^jt}R.call(this,d),this.update(Dt),this.oKeyPad=ze,this.inner=!0,this.sharedMemory=d}fe.prototype=new R,fe.prototype.finalize=function(){if(R.prototype.finalize.call(this),this.inner){this.inner=!1;var l=this.array();R.call(this,this.sharedMemory),this.update(this.oKeyPad),this.update(l),R.prototype.finalize.call(this)}};var ce=xe();ce.md5=ce,ce.md5.hmac=be(),s?pr.exports=ce:(r.md5=ce,c&&define(function(){return ce}))})()});function Ot(e){return e.split("-")[0]}function cn(e){return e.split("-")[1]}function On(e){return["top","bottom"].includes(Ot(e))?"x":"y"}function Gr(e){return e==="y"?"height":"width"}function Si(e,t,n){let{reference:r,floating:o}=e,i=r.x+r.width/2-o.width/2,s=r.y+r.height/2-o.height/2,c=On(t),v=Gr(c),p=r[v]/2-o[v]/2,x=Ot(t),b=c==="x",E;switch(x){case"top":E={x:i,y:r.y-o.height};break;case"bottom":E={x:i,y:r.y+r.height};break;case"right":E={x:r.x+r.width,y:s};break;case"left":E={x:r.x-o.width,y:s};break;default:E={x:r.x,y:r.y}}switch(cn(t)){case"start":E[c]-=p*(n&&b?-1:1);break;case"end":E[c]+=p*(n&&b?-1:1);break}return E}var Ho=async(e,t,n)=>{let{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:s}=n,c=await(s.isRTL==null?void 0:s.isRTL(t));if(s==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),i.filter(C=>{let{name:M}=C;return M==="autoPlacement"||M==="flip"}).length>1)throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let v=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:p,y:x}=Si(v,r,c),b=r,E={},_=0;for(let C=0;C100)throw new Error(["Floating UI: The middleware lifecycle appears to be","running in an infinite loop. This is usually caused by a `reset`","continually being returned without a break condition."].join(" "));let{name:M,fn:U}=i[C],{x:V,y:B,data:Q,reset:q}=await U({x:p,y:x,initialPlacement:r,placement:b,strategy:o,middlewareData:E,rects:v,platform:s,elements:{reference:e,floating:t}});if(p=V??p,x=B??x,E={...E,[M]:{...E[M],...Q}},q){typeof q=="object"&&(q.placement&&(b=q.placement),q.rects&&(v=q.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:o}):q.rects),{x:p,y:x}=Si(v,b,c)),C=-1;continue}}return{x:p,y:x,placement:b,strategy:o,middlewareData:E}};function $o(e){return{top:0,right:0,bottom:0,left:0,...e}}function Kr(e){return typeof e!="number"?$o(e):{top:e,right:e,bottom:e,left:e}}function Bn(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function En(e,t){var n;t===void 0&&(t={});let{x:r,y:o,platform:i,rects:s,elements:c,strategy:v}=e,{boundary:p="clippingAncestors",rootBoundary:x="viewport",elementContext:b="floating",altBoundary:E=!1,padding:_=0}=t,C=Kr(_),U=c[E?b==="floating"?"reference":"floating":b],V=Bn(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(U)))==null||n?U:U.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:p,rootBoundary:x,strategy:v})),B=Bn(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:b==="floating"?{...s.floating,x:r,y:o}:s.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),strategy:v}):s[b]);return{top:V.top-B.top+C.top,bottom:B.bottom-V.bottom+C.bottom,left:V.left-B.left+C.left,right:B.right-V.right+C.right}}var Ni=Math.min,Jt=Math.max;function Yr(e,t,n){return Jt(e,Ni(t,n))}var Li=e=>({name:"arrow",options:e,async fn(t){let{element:n,padding:r=0}=e??{},{x:o,y:i,placement:s,rects:c,platform:v}=t;if(n==null)return console.warn("Floating UI: No `element` was passed to the `arrow` middleware."),{};let p=Kr(r),x={x:o,y:i},b=On(s),E=Gr(b),_=await v.getDimensions(n),C=b==="y"?"top":"left",M=b==="y"?"bottom":"right",U=c.reference[E]+c.reference[b]-x[b]-c.floating[E],V=x[b]-c.reference[b],B=await(v.getOffsetParent==null?void 0:v.getOffsetParent(n)),Q=B?b==="y"?B.clientHeight||0:B.clientWidth||0:0,q=U/2-V/2,xe=p[C],se=Q-_[E]-p[M],ie=Q/2-_[E]/2+q,be=Yr(xe,ie,se);return{data:{[b]:be,centerOffset:ie-be}}}}),Wo={left:"right",right:"left",bottom:"top",top:"bottom"};function lr(e){return e.replace(/left|right|bottom|top/g,t=>Wo[t])}function ki(e,t,n){n===void 0&&(n=!1);let r=cn(e),o=On(e),i=Gr(o),s=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=lr(s)),{main:s,cross:lr(s)}}var Vo={start:"end",end:"start"};function Xr(e){return e.replace(/start|end/g,t=>Vo[t])}var ji=["top","right","bottom","left"],Uo=ji.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);function zo(e,t,n){return(e?[...n.filter(o=>cn(o)===e),...n.filter(o=>cn(o)!==e)]:n.filter(o=>Ot(o)===o)).filter(o=>e?cn(o)===e||(t?Xr(o)!==o:!1):!0)}var Jr=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,r,o,i,s;let{x:c,y:v,rects:p,middlewareData:x,placement:b,platform:E,elements:_}=t,{alignment:C=null,allowedPlacements:M=Uo,autoAlignment:U=!0,...V}=e,B=zo(C,U,M),Q=await En(t,V),q=(n=(r=x.autoPlacement)==null?void 0:r.index)!=null?n:0,xe=B[q];if(xe==null)return{};let{main:se,cross:ie}=ki(xe,p,await(E.isRTL==null?void 0:E.isRTL(_.floating)));if(b!==xe)return{x:c,y:v,reset:{placement:B[0]}};let be=[Q[Ot(xe)],Q[se],Q[ie]],R=[...(o=(i=x.autoPlacement)==null?void 0:i.overflows)!=null?o:[],{placement:xe,overflows:be}],fe=B[q+1];if(fe)return{data:{index:q+1,overflows:R},reset:{placement:fe}};let ce=R.slice().sort((h,u)=>h.overflows[0]-u.overflows[0]),l=(s=ce.find(h=>{let{overflows:u}=h;return u.every(H=>H<=0)}))==null?void 0:s.placement,d=l??ce[0].placement;return d!==b?{data:{index:q+1,overflows:R},reset:{placement:d}}:{}}}};function Yo(e){let t=lr(e);return[Xr(e),t,Xr(t)]}var Bi=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;let{placement:r,middlewareData:o,rects:i,initialPlacement:s,platform:c,elements:v}=t,{mainAxis:p=!0,crossAxis:x=!0,fallbackPlacements:b,fallbackStrategy:E="bestFit",flipAlignment:_=!0,...C}=e,M=Ot(r),V=b||(M===s||!_?[lr(s)]:Yo(s)),B=[s,...V],Q=await En(t,C),q=[],xe=((n=o.flip)==null?void 0:n.overflows)||[];if(p&&q.push(Q[M]),x){let{main:R,cross:fe}=ki(r,i,await(c.isRTL==null?void 0:c.isRTL(v.floating)));q.push(Q[R],Q[fe])}if(xe=[...xe,{placement:r,overflows:q}],!q.every(R=>R<=0)){var se,ie;let R=((se=(ie=o.flip)==null?void 0:ie.index)!=null?se:0)+1,fe=B[R];if(fe)return{data:{index:R,overflows:xe},reset:{placement:fe}};let ce="bottom";switch(E){case"bestFit":{var be;let l=(be=xe.map(d=>[d,d.overflows.filter(h=>h>0).reduce((h,u)=>h+u,0)]).sort((d,h)=>d[1]-h[1])[0])==null?void 0:be[0].placement;l&&(ce=l);break}case"initialPlacement":ce=s;break}if(r!==ce)return{reset:{placement:ce}}}return{}}}};function Ai(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ci(e){return ji.some(t=>e[t]>=0)}var Hi=function(e){let{strategy:t="referenceHidden",...n}=e===void 0?{}:e;return{name:"hide",async fn(r){let{rects:o}=r;switch(t){case"referenceHidden":{let i=await En(r,{...n,elementContext:"reference"}),s=Ai(i,o.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ci(s)}}}case"escaped":{let i=await En(r,{...n,altBoundary:!0}),s=Ai(i,o.floating);return{data:{escapedOffsets:s,escaped:Ci(s)}}}default:return{}}}}};function Xo(e,t,n,r){r===void 0&&(r=!1);let o=Ot(e),i=cn(e),s=On(e)==="x",c=["left","top"].includes(o)?-1:1,v=r&&s?-1:1,p=typeof n=="function"?n({...t,placement:e}):n,{mainAxis:x,crossAxis:b,alignmentAxis:E}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...p};return i&&typeof E=="number"&&(b=i==="end"?E*-1:E),s?{x:b*v,y:x*c}:{x:x*c,y:b*v}}var $i=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:n,y:r,placement:o,rects:i,platform:s,elements:c}=t,v=Xo(o,i,e,await(s.isRTL==null?void 0:s.isRTL(c.floating)));return{x:n+v.x,y:r+v.y,data:v}}}};function qo(e){return e==="x"?"y":"x"}var Wi=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:U=>{let{x:V,y:B}=U;return{x:V,y:B}}},...v}=e,p={x:n,y:r},x=await En(t,v),b=On(Ot(o)),E=qo(b),_=p[b],C=p[E];if(i){let U=b==="y"?"top":"left",V=b==="y"?"bottom":"right",B=_+x[U],Q=_-x[V];_=Yr(B,_,Q)}if(s){let U=E==="y"?"top":"left",V=E==="y"?"bottom":"right",B=C+x[U],Q=C-x[V];C=Yr(B,C,Q)}let M=c.fn({...t,[b]:_,[E]:C});return{...M,data:{x:M.x-n,y:M.y-r}}}}},Vi=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){let{placement:n,rects:r,platform:o,elements:i}=t,{apply:s,...c}=e,v=await En(t,c),p=Ot(n),x=cn(n),b,E;p==="top"||p==="bottom"?(b=p,E=x===(await(o.isRTL==null?void 0:o.isRTL(i.floating))?"start":"end")?"left":"right"):(E=p,b=x==="end"?"top":"bottom");let _=Jt(v.left,0),C=Jt(v.right,0),M=Jt(v.top,0),U=Jt(v.bottom,0),V={height:r.floating.height-(["left","right"].includes(n)?2*(M!==0||U!==0?M+U:Jt(v.top,v.bottom)):v[b]),width:r.floating.width-(["top","bottom"].includes(n)?2*(_!==0||C!==0?_+C:Jt(v.left,v.right)):v[E])},B=await o.getDimensions(i.floating);s?.({...V,...r});let Q=await o.getDimensions(i.floating);return B.width!==Q.width||B.height!==Q.height?{reset:{rects:!0}}:{}}}},Ui=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(t){var n;let{placement:r,elements:o,rects:i,platform:s,strategy:c}=t,{padding:v=2,x:p,y:x}=e,b=Bn(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({rect:i.reference,offsetParent:await(s.getOffsetParent==null?void 0:s.getOffsetParent(o.floating)),strategy:c}):i.reference),E=(n=await(s.getClientRects==null?void 0:s.getClientRects(o.reference)))!=null?n:[],_=Kr(v);function C(){if(E.length===2&&E[0].left>E[1].right&&p!=null&&x!=null){var U;return(U=E.find(V=>p>V.left-_.left&&pV.top-_.top&&x=2){if(On(r)==="x"){let ce=E[0],l=E[E.length-1],d=Ot(r)==="top",h=ce.top,u=l.bottom,H=d?ce.left:l.left,T=d?ce.right:l.right,P=T-H,G=u-h;return{top:h,bottom:u,left:H,right:T,width:P,height:G,x:H,y:h}}let V=Ot(r)==="left",B=Jt(...E.map(ce=>ce.right)),Q=Ni(...E.map(ce=>ce.left)),q=E.filter(ce=>V?ce.left===Q:ce.right===B),xe=q[0].top,se=q[q.length-1].bottom,ie=Q,be=B,R=be-ie,fe=se-xe;return{top:xe,bottom:se,left:ie,right:be,width:R,height:fe,x:ie,y:xe}}return b}let M=await s.getElementRects({reference:{getBoundingClientRect:C},floating:o.floating,strategy:c});return i.reference.x!==M.reference.x||i.reference.y!==M.reference.y||i.reference.width!==M.reference.width||i.reference.height!==M.reference.height?{reset:{rects:M}}:{}}}};function zi(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Ft(e){if(e==null)return window;if(!zi(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function Hn(e){return Ft(e).getComputedStyle(e)}function Rt(e){return zi(e)?"":e?(e.nodeName||"").toLowerCase():""}function St(e){return e instanceof Ft(e).HTMLElement}function Qt(e){return e instanceof Ft(e).Element}function Go(e){return e instanceof Ft(e).Node}function Qr(e){if(typeof ShadowRoot>"u")return!1;let t=Ft(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function cr(e){let{overflow:t,overflowX:n,overflowY:r}=Hn(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function Ko(e){return["table","td","th"].includes(Rt(e))}function Yi(e){let t=navigator.userAgent.toLowerCase().includes("firefox"),n=Hn(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&(n.filter?n.filter!=="none":!1)}function Xi(){return!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}var Di=Math.min,kn=Math.max,fr=Math.round;function It(e,t,n){var r,o,i,s;t===void 0&&(t=!1),n===void 0&&(n=!1);let c=e.getBoundingClientRect(),v=1,p=1;t&&St(e)&&(v=e.offsetWidth>0&&fr(c.width)/e.offsetWidth||1,p=e.offsetHeight>0&&fr(c.height)/e.offsetHeight||1);let x=Qt(e)?Ft(e):window,b=!Xi()&&n,E=(c.left+(b&&(r=(o=x.visualViewport)==null?void 0:o.offsetLeft)!=null?r:0))/v,_=(c.top+(b&&(i=(s=x.visualViewport)==null?void 0:s.offsetTop)!=null?i:0))/p,C=c.width/v,M=c.height/p;return{width:C,height:M,top:_,right:E+C,bottom:_+M,left:E,x:E,y:_}}function Zt(e){return((Go(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return Qt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function qi(e){return It(Zt(e)).left+dr(e).scrollLeft}function Jo(e){let t=It(e);return fr(t.width)!==e.offsetWidth||fr(t.height)!==e.offsetHeight}function Qo(e,t,n){let r=St(t),o=Zt(t),i=It(e,r&&Jo(t),n==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(r||!r&&n!=="fixed")if((Rt(t)!=="body"||cr(o))&&(s=dr(t)),St(t)){let v=It(t,!0);c.x=v.x+t.clientLeft,c.y=v.y+t.clientTop}else o&&(c.x=qi(o));return{x:i.left+s.scrollLeft-c.x,y:i.top+s.scrollTop-c.y,width:i.width,height:i.height}}function Gi(e){return Rt(e)==="html"?e:e.assignedSlot||e.parentNode||(Qr(e)?e.host:null)||Zt(e)}function _i(e){return!St(e)||getComputedStyle(e).position==="fixed"?null:e.offsetParent}function Zo(e){let t=Gi(e);for(Qr(t)&&(t=t.host);St(t)&&!["html","body"].includes(Rt(t));){if(Yi(t))return t;t=t.parentNode}return null}function qr(e){let t=Ft(e),n=_i(e);for(;n&&Ko(n)&&getComputedStyle(n).position==="static";)n=_i(n);return n&&(Rt(n)==="html"||Rt(n)==="body"&&getComputedStyle(n).position==="static"&&!Yi(n))?t:n||Zo(e)||t}function Ti(e){if(St(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=It(e);return{width:t.width,height:t.height}}function ea(e){let{rect:t,offsetParent:n,strategy:r}=e,o=St(n),i=Zt(n);if(n===i)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((o||!o&&r!=="fixed")&&((Rt(n)!=="body"||cr(i))&&(s=dr(n)),St(n))){let v=It(n,!0);c.x=v.x+n.clientLeft,c.y=v.y+n.clientTop}return{...t,x:t.x-s.scrollLeft+c.x,y:t.y-s.scrollTop+c.y}}function ta(e,t){let n=Ft(e),r=Zt(e),o=n.visualViewport,i=r.clientWidth,s=r.clientHeight,c=0,v=0;if(o){i=o.width,s=o.height;let p=Xi();(p||!p&&t==="fixed")&&(c=o.offsetLeft,v=o.offsetTop)}return{width:i,height:s,x:c,y:v}}function na(e){var t;let n=Zt(e),r=dr(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=kn(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=kn(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),c=-r.scrollLeft+qi(e),v=-r.scrollTop;return Hn(o||n).direction==="rtl"&&(c+=kn(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:s,x:c,y:v}}function Ki(e){let t=Gi(e);return["html","body","#document"].includes(Rt(t))?e.ownerDocument.body:St(t)&&cr(t)?t:Ki(t)}function ur(e,t){var n;t===void 0&&(t=[]);let r=Ki(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=Ft(r),s=o?[i].concat(i.visualViewport||[],cr(r)?r:[]):r,c=t.concat(s);return o?c:c.concat(ur(s))}function ra(e,t){let n=t==null||t.getRootNode==null?void 0:t.getRootNode();if(e!=null&&e.contains(t))return!0;if(n&&Qr(n)){let r=t;do{if(r&&e===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function ia(e,t){let n=It(e,!1,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft;return{top:r,left:o,x:o,y:r,right:o+e.clientWidth,bottom:r+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}function Pi(e,t,n){return t==="viewport"?Bn(ta(e,n)):Qt(t)?ia(t,n):Bn(na(Zt(e)))}function oa(e){let t=ur(e),r=["absolute","fixed"].includes(Hn(e).position)&&St(e)?qr(e):e;return Qt(r)?t.filter(o=>Qt(o)&&ra(o,r)&&Rt(o)!=="body"):[]}function aa(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e,s=[...n==="clippingAncestors"?oa(t):[].concat(n),r],c=s[0],v=s.reduce((p,x)=>{let b=Pi(t,x,o);return p.top=kn(b.top,p.top),p.right=Di(b.right,p.right),p.bottom=Di(b.bottom,p.bottom),p.left=kn(b.left,p.left),p},Pi(t,c,o));return{width:v.right-v.left,height:v.bottom-v.top,x:v.left,y:v.top}}var sa={getClippingRect:aa,convertOffsetParentRelativeRectToViewportRelativeRect:ea,isElement:Qt,getDimensions:Ti,getOffsetParent:qr,getDocumentElement:Zt,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:Qo(t,qr(n),r),floating:{...Ti(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Hn(e).direction==="rtl"};function Mi(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:s=!0,animationFrame:c=!1}=r,v=!1,p=o&&!c,x=i&&!c,b=s&&!c,E=p||x?[...Qt(e)?ur(e):[],...ur(t)]:[];E.forEach(V=>{p&&V.addEventListener("scroll",n,{passive:!0}),x&&V.addEventListener("resize",n)});let _=null;b&&(_=new ResizeObserver(n),Qt(e)&&_.observe(e),_.observe(t));let C,M=c?It(e):null;c&&U();function U(){if(v)return;let V=It(e);M&&(V.x!==M.x||V.y!==M.y||V.width!==M.width||V.height!==M.height)&&n(),M=V,C=requestAnimationFrame(U)}return()=>{var V;v=!0,E.forEach(B=>{p&&B.removeEventListener("scroll",n),x&&B.removeEventListener("resize",n)}),(V=_)==null||V.disconnect(),_=null,c&&cancelAnimationFrame(C)}}var Ri=(e,t,n)=>Ho(e,t,{platform:sa,...n}),la=e=>{let t={placement:"bottom",middleware:[]},n=Object.keys(e),r=o=>e[o];return n.includes("offset")&&t.middleware.push($i(r("offset"))),n.includes("placement")&&(t.placement=r("placement")),n.includes("autoPlacement")&&!n.includes("flip")&&t.middleware.push(Jr(r("autoPlacement"))),n.includes("flip")&&t.middleware.push(Bi(r("flip"))),n.includes("shift")&&t.middleware.push(Wi(r("shift"))),n.includes("inline")&&t.middleware.push(Ui(r("inline"))),n.includes("arrow")&&t.middleware.push(Li(r("arrow"))),n.includes("hide")&&t.middleware.push(Hi(r("hide"))),n.includes("size")&&t.middleware.push(Vi(r("size"))),t},fa=(e,t)=>{let n={component:{trap:!1},float:{placement:"bottom",strategy:"absolute",middleware:[]}},r=o=>e[e.indexOf(o)+1];return e.includes("trap")&&(n.component.trap=!0),e.includes("teleport")&&(n.float.strategy="fixed"),e.includes("offset")&&n.float.middleware.push($i(t.offset||10)),e.includes("placement")&&(n.float.placement=r("placement")),e.includes("autoPlacement")&&!e.includes("flip")&&n.float.middleware.push(Jr(t.autoPlacement)),e.includes("flip")&&n.float.middleware.push(Bi(t.flip)),e.includes("shift")&&n.float.middleware.push(Wi(t.shift)),e.includes("inline")&&n.float.middleware.push(Ui(t.inline)),e.includes("arrow")&&n.float.middleware.push(Li(t.arrow)),e.includes("hide")&&n.float.middleware.push(Hi(t.hide)),e.includes("size")&&n.float.middleware.push(Vi(t.size)),n},ua=e=>{var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".split(""),n="";e||(e=Math.floor(Math.random()*t.length));for(var r=0;r{(t===void 0||t.includes(n))&&(r.forEach(o=>o()),delete e._x_attributeCleanups[n])})}var Zr=new MutationObserver(Ji),ei=!1;function va(){Zr.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ei=!0}function ga(){ma(),Zr.disconnect(),ei=!1}var jn=[],zr=!1;function ma(){jn=jn.concat(Zr.takeRecords()),jn.length&&!zr&&(zr=!0,queueMicrotask(()=>{ba(),zr=!1}))}function ba(){Ji(jn),jn.length=0}function Ii(e){if(!ei)return e();ga();let t=e();return va(),t}var ya=!1,Fi=[];function Ji(e){if(ya){Fi=Fi.concat(e);return}let t=[],n=[],r=new Map,o=new Map;for(let i=0;is.nodeType===1&&t.push(s)),e[i].removedNodes.forEach(s=>s.nodeType===1&&n.push(s))),e[i].type==="attributes")){let s=e[i].target,c=e[i].attributeName,v=e[i].oldValue,p=()=>{r.has(s)||r.set(s,[]),r.get(s).push({name:c,value:s.getAttribute(c)})},x=()=>{o.has(s)||o.set(s,[]),o.get(s).push(c)};s.hasAttribute(c)&&v===null?p():s.hasAttribute(c)?(x(),p()):x()}o.forEach((i,s)=>{ha(s,i)}),r.forEach((i,s)=>{ca.forEach(c=>c(s,i))});for(let i of n)if(!t.includes(i)&&(da.forEach(s=>s(i)),i._x_cleanups))for(;i._x_cleanups.length;)i._x_cleanups.pop()();t.forEach(i=>{i._x_ignoreSelf=!0,i._x_ignore=!0});for(let i of t)n.includes(i)||i.isConnected&&(delete i._x_ignoreSelf,delete i._x_ignore,pa.forEach(s=>s(i)),i._x_ignore=!0,i._x_ignoreSelf=!0);t.forEach(i=>{delete i._x_ignoreSelf,delete i._x_ignore}),t=null,n=null,r=null,o=null}function wa(e,t=()=>{}){let n=!1;return function(){n?t.apply(this,arguments):(n=!0,e.apply(this,arguments))}}function xa(e){let t={dismissable:!0,trap:!1};function n(i,s,c=null){if(s){if(s.hasAttribute("aria-expanded")||s.setAttribute("aria-expanded",!1),c.hasAttribute("id"))s.setAttribute("aria-controls",c.getAttribute("id"));else{let v=`panel-${ua(8)}`;s.setAttribute("aria-controls",v),c.setAttribute("id",v)}c.setAttribute("aria-modal",!0),c.setAttribute("role","dialog")}}let r=document.querySelectorAll('[\\@click^="$float"]'),o=document.querySelectorAll('[x-on\\:click^="$float"]');[...r,...o].forEach(i=>{let s=i.parentElement.closest("[x-data]"),c=s.querySelector('[x-ref="panel"]');n(s,i,c)}),e.magic("float",i=>(s={},c={})=>{let v={...t,...c},p=Object.keys(s).length>0?la(s):{middleware:[Jr()]},x=i,b=i.parentElement.closest("[x-data]"),E=b.querySelector('[x-ref="panel"]');function _(){return E.style.display=="block"}function C(){E.style.display="",x.setAttribute("aria-expanded",!1),v.trap&&E.setAttribute("x-trap",!1),Mi(i,E,V)}function M(){E.style.display="block",x.setAttribute("aria-expanded",!0),v.trap&&E.setAttribute("x-trap",!0),V()}function U(){_()?C():M()}async function V(){return await Ri(i,E,p).then(({middlewareData:B,placement:Q,x:q,y:xe})=>{if(B.arrow){let se=B.arrow?.x,ie=B.arrow?.y,be=p.middleware.filter(fe=>fe.name=="arrow")[0].options.element,R={top:"bottom",right:"left",bottom:"top",left:"right"}[Q.split("-")[0]];Object.assign(be.style,{left:se!=null?`${se}px`:"",top:ie!=null?`${ie}px`:"",right:"",bottom:"",[R]:"-4px"})}if(B.hide){let{referenceHidden:se}=B.hide;Object.assign(E.style,{visibility:se?"hidden":"visible"})}Object.assign(E.style,{left:`${q}px`,top:`${xe}px`})})}v.dismissable&&(window.addEventListener("click",B=>{!b.contains(B.target)&&_()&&U()}),window.addEventListener("keydown",B=>{B.key==="Escape"&&_()&&U()},!0)),U()}),e.directive("float",(i,{modifiers:s,expression:c},{evaluate:v,effect:p})=>{let x=c?v(c):{},b=s.length>0?fa(s,x):{},E=null;b.float.strategy=="fixed"&&(i.style.position="fixed");let _=R=>i.parentElement&&!i.parentElement.closest("[x-data]").contains(R.target)?i.close():null,C=R=>R.key==="Escape"?i.close():null,M=i.getAttribute("x-ref"),U=i.parentElement.closest("[x-data]"),V=U.querySelectorAll(`[\\@click^="$refs.${M}"]`),B=U.querySelectorAll(`[x-on\\:click^="$refs.${M}"]`);i.style.setProperty("display","none"),n(U,[...V,...B][0],i),i._x_isShown=!1,i.trigger=null,i._x_doHide||(i._x_doHide=()=>{Ii(()=>{i.style.setProperty("display","none",s.includes("important")?"important":void 0)})}),i._x_doShow||(i._x_doShow=()=>{Ii(()=>{i.style.setProperty("display","block",s.includes("important")?"important":void 0)})});let Q=()=>{i._x_doHide(),i._x_isShown=!1},q=()=>{i._x_doShow(),i._x_isShown=!0},xe=()=>setTimeout(q),se=wa(R=>R?q():Q(),R=>{typeof i._x_toggleAndCascadeWithTransitions=="function"?i._x_toggleAndCascadeWithTransitions(i,R,q,Q):R?xe():Q()}),ie,be=!0;p(()=>v(R=>{!be&&R===ie||(s.includes("immediate")&&(R?xe():Q()),se(R),ie=R,be=!1)})),i.open=async function(R){i.trigger=R.currentTarget?R.currentTarget:R,se(!0),i.trigger.setAttribute("aria-expanded",!0),b.component.trap&&i.setAttribute("x-trap",!0),E=Mi(i.trigger,i,()=>{Ri(i.trigger,i,b.float).then(({middlewareData:fe,placement:ce,x:l,y:d})=>{if(fe.arrow){let h=fe.arrow?.x,u=fe.arrow?.y,H=b.float.middleware.filter(P=>P.name=="arrow")[0].options.element,T={top:"bottom",right:"left",bottom:"top",left:"right"}[ce.split("-")[0]];Object.assign(H.style,{left:h!=null?`${h}px`:"",top:u!=null?`${u}px`:"",right:"",bottom:"",[T]:"-4px"})}if(fe.hide){let{referenceHidden:h}=fe.hide;Object.assign(i.style,{visibility:h?"hidden":"visible"})}Object.assign(i.style,{left:`${l}px`,top:`${d}px`})})}),window.addEventListener("click",_),window.addEventListener("keydown",C,!0)},i.close=function(){se(!1),i.trigger.setAttribute("aria-expanded",!1),b.component.trap&&i.setAttribute("x-trap",!1),E(),window.removeEventListener("click",_),window.removeEventListener("keydown",C,!1)},i.toggle=function(R){i._x_isShown?i.close():i.open(R)}})}var Qi=xa;function Ea(e){e.store("lazyLoadedAssets",{loaded:new Set,check(s){return Array.isArray(s)?s.every(c=>this.loaded.has(c)):this.loaded.has(s)},markLoaded(s){Array.isArray(s)?s.forEach(c=>this.loaded.add(c)):this.loaded.add(s)}});function t(s){return new CustomEvent(s,{bubbles:!0,composed:!0,cancelable:!0})}function n(s,c={},v,p){let x=document.createElement(s);for(let[b,E]of Object.entries(c))x[b]=E;return v&&(p?v.insertBefore(x,p):v.appendChild(x)),x}function r(s,c,v={},p=null,x=null){let b=s==="link"?`link[href="${c}"]`:`script[src="${c}"]`;if(document.querySelector(b)||e.store("lazyLoadedAssets").check(c))return Promise.resolve();let E=n(s,{...v,href:c},p,x);return new Promise((_,C)=>{E.onload=()=>{e.store("lazyLoadedAssets").markLoaded(c),_()},E.onerror=()=>{C(new Error(`Failed to load ${s}: ${c}`))}})}async function o(s,c,v=null,p=null){let x={type:"text/css",rel:"stylesheet"};c&&(x.media=c);let b=document.head,E=null;if(v&&p){let _=document.querySelector(`link[href*="${p}"]`);_?(b=_.parentNode,E=v==="before"?_:_.nextSibling):console.warn(`Target (${p}) not found for ${s}. Appending to head.`)}await r("link",s,x,b,E)}async function i(s,c,v=null,p=null){let x,b;v&&p&&(x=document.querySelector(`script[src*="${p}"]`),x?b=v==="before"?x:x.nextSibling:console.warn(`Target (${p}) not found for ${s}. Appending to body.`));let E=c.has("body-start")?"prepend":"append";await r("script",s,{},x||document[c.has("body-end")?"body":"head"],b)}e.directive("load-css",(s,{expression:c},{evaluate:v})=>{let p=v(c),x=s.media,b=s.getAttribute("data-dispatch"),E=s.getAttribute("data-css-before")?"before":s.getAttribute("data-css-after")?"after":null,_=s.getAttribute("data-css-before")||s.getAttribute("data-css-after")||null;Promise.all(p.map(C=>o(C,x,E,_))).then(()=>{b&&window.dispatchEvent(t(b+"-css"))}).catch(C=>{console.error(C)})}),e.directive("load-js",(s,{expression:c,modifiers:v},{evaluate:p})=>{let x=p(c),b=new Set(v),E=s.getAttribute("data-js-before")?"before":s.getAttribute("data-js-after")?"after":null,_=s.getAttribute("data-js-before")||s.getAttribute("data-js-after")||null,C=s.getAttribute("data-dispatch");Promise.all(x.map(M=>i(M,b,E,_))).then(()=>{C&&window.dispatchEvent(t(C+"-js"))}).catch(M=>{console.error(M)})})}var Zi=Ea;var Ro=Bo(no(),1);function ro(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Ct(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function Aa(e,t){if(e==null)return{};var n=Sa(e,t),r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var Ca="1.15.2";function Nt(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var kt=Nt(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Gn=Nt(/Edge/i),io=Nt(/firefox/i),Un=Nt(/safari/i)&&!Nt(/chrome/i)&&!Nt(/android/i),po=Nt(/iP(ad|od|hone)/i),ho=Nt(/chrome/i)&&Nt(/android/i),vo={capture:!1,passive:!1};function Ce(e,t,n){e.addEventListener(t,n,!kt&&vo)}function Oe(e,t,n){e.removeEventListener(t,n,!kt&&vo)}function Or(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function Da(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function bt(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Or(e,t):Or(e,t))||r&&e===n)return e;if(e===n)break}while(e=Da(e))}return null}var oo=/\s+/g;function st(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(oo," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(oo," ")}}function ne(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function _n(e,t){var n="";if(typeof e=="string")n=e;else do{var r=ne(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function go(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,i=r.length;if(n)for(;o=i:s=o<=i,!s)return r;if(r===At())break;r=nn(r,!1)}return!1}function Tn(e,t,n,r){for(var o=0,i=0,s=e.children;i2&&arguments[2]!==void 0?arguments[2]:{},o=r.evt,i=Aa(r,Na);Kn.pluginEvent.bind(re)(t,n,Ct({dragEl:N,parentEl:Ue,ghostEl:ue,rootEl:ke,nextEl:hn,lastDownEl:yr,cloneEl:We,cloneHidden:tn,dragStarted:$n,putSortable:Qe,activeSortable:re.active,originalEvent:o,oldIndex:Dn,oldDraggableIndex:Yn,newIndex:lt,newDraggableIndex:en,hideGhostForTarget:So,unhideGhostForTarget:Ao,cloneNowHidden:function(){tn=!0},cloneNowShown:function(){tn=!1},dispatchSortableEvent:function(c){rt({sortable:n,name:c,originalEvent:o})}},i))};function rt(e){Fa(Ct({putSortable:Qe,cloneEl:We,targetEl:N,rootEl:ke,oldIndex:Dn,oldDraggableIndex:Yn,newIndex:lt,newDraggableIndex:en},e))}var N,Ue,ue,ke,hn,yr,We,tn,Dn,lt,Yn,en,hr,Qe,Cn=!1,Sr=!1,Ar=[],dn,mt,ri,ii,lo,fo,$n,An,Xn,qn=!1,vr=!1,wr,tt,oi=[],ui=!1,Cr=[],_r=typeof document<"u",gr=po,uo=Gn||kt?"cssFloat":"float",La=_r&&!ho&&!po&&"draggable"in document.createElement("div"),xo=function(){if(_r){if(kt)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),Eo=function(t,n){var r=ne(t),o=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),i=Tn(t,0,n),s=Tn(t,1,n),c=i&&ne(i),v=s&&ne(s),p=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+qe(i).width,x=v&&parseInt(v.marginLeft)+parseInt(v.marginRight)+qe(s).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&c.float&&c.float!=="none"){var b=c.float==="left"?"left":"right";return s&&(v.clear==="both"||v.clear===b)?"vertical":"horizontal"}return i&&(c.display==="block"||c.display==="flex"||c.display==="table"||c.display==="grid"||p>=o&&r[uo]==="none"||s&&r[uo]==="none"&&p+x>o)?"vertical":"horizontal"},ka=function(t,n,r){var o=r?t.left:t.top,i=r?t.right:t.bottom,s=r?t.width:t.height,c=r?n.left:n.top,v=r?n.right:n.bottom,p=r?n.width:n.height;return o===c||i===v||o+s/2===c+p/2},ja=function(t,n){var r;return Ar.some(function(o){var i=o[ft].options.emptyInsertThreshold;if(!(!i||hi(o))){var s=qe(o),c=t>=s.left-i&&t<=s.right+i,v=n>=s.top-i&&n<=s.bottom+i;if(c&&v)return r=o}}),r},Oo=function(t){function n(i,s){return function(c,v,p,x){var b=c.options.group.name&&v.options.group.name&&c.options.group.name===v.options.group.name;if(i==null&&(s||b))return!0;if(i==null||i===!1)return!1;if(s&&i==="clone")return i;if(typeof i=="function")return n(i(c,v,p,x),s)(c,v,p,x);var E=(s?c:v).options.group.name;return i===!0||typeof i=="string"&&i===E||i.join&&i.indexOf(E)>-1}}var r={},o=t.group;(!o||br(o)!="object")&&(o={name:o}),r.name=o.name,r.checkPull=n(o.pull,!0),r.checkPut=n(o.put),r.revertClone=o.revertClone,t.group=r},So=function(){!xo&&ue&&ne(ue,"display","none")},Ao=function(){!xo&&ue&&ne(ue,"display","")};_r&&!ho&&document.addEventListener("click",function(e){if(Sr)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Sr=!1,!1},!0);var pn=function(t){if(N){t=t.touches?t.touches[0]:t;var n=ja(t.clientX,t.clientY);if(n){var r={};for(var o in t)t.hasOwnProperty(o)&&(r[o]=t[o]);r.target=r.rootEl=n,r.preventDefault=void 0,r.stopPropagation=void 0,n[ft]._onDragOver(r)}}},Ba=function(t){N&&N.parentNode[ft]._isOutsideThisEl(t.target)};function re(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=Lt({},t),e[ft]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Eo(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,c){s.setData("Text",c.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:re.supportPointer!==!1&&"PointerEvent"in window&&!Un,emptyInsertThreshold:5};Kn.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);Oo(t);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=t.forceFallback?!1:La,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?Ce(e,"pointerdown",this._onTapStart):(Ce(e,"mousedown",this._onTapStart),Ce(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(Ce(e,"dragover",this),Ce(e,"dragenter",this)),Ar.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Lt(this,Ma())}re.prototype={constructor:re,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(An=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,N):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,r=this.el,o=this.options,i=o.preventOnFilter,s=t.type,c=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,v=(c||t).target,p=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||v,x=o.filter;if(Xa(r),!N&&!(/mousedown|pointerdown/.test(s)&&t.button!==0||o.disabled)&&!p.isContentEditable&&!(!this.nativeDraggable&&Un&&v&&v.tagName.toUpperCase()==="SELECT")&&(v=bt(v,o.draggable,r,!1),!(v&&v.animated)&&yr!==v)){if(Dn=ct(v),Yn=ct(v,o.draggable),typeof x=="function"){if(x.call(this,t,v,this)){rt({sortable:n,rootEl:p,name:"filter",targetEl:v,toEl:r,fromEl:r}),ot("filter",n,{evt:t}),i&&t.cancelable&&t.preventDefault();return}}else if(x&&(x=x.split(",").some(function(b){if(b=bt(p,b.trim(),r,!1),b)return rt({sortable:n,rootEl:b,name:"filter",targetEl:v,fromEl:r,toEl:r}),ot("filter",n,{evt:t}),!0}),x)){i&&t.cancelable&&t.preventDefault();return}o.handle&&!bt(p,o.handle,r,!1)||this._prepareDragStart(t,c,v)}}},_prepareDragStart:function(t,n,r){var o=this,i=o.el,s=o.options,c=i.ownerDocument,v;if(r&&!N&&r.parentNode===i){var p=qe(r);if(ke=i,N=r,Ue=N.parentNode,hn=N.nextSibling,yr=r,hr=s.group,re.dragged=N,dn={target:N,clientX:(n||t).clientX,clientY:(n||t).clientY},lo=dn.clientX-p.left,fo=dn.clientY-p.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,N.style["will-change"]="all",v=function(){if(ot("delayEnded",o,{evt:t}),re.eventCanceled){o._onDrop();return}o._disableDelayedDragEvents(),!io&&o.nativeDraggable&&(N.draggable=!0),o._triggerDragStart(t,n),rt({sortable:o,name:"choose",originalEvent:t}),st(N,s.chosenClass,!0)},s.ignore.split(",").forEach(function(x){go(N,x.trim(),ai)}),Ce(c,"dragover",pn),Ce(c,"mousemove",pn),Ce(c,"touchmove",pn),Ce(c,"mouseup",o._onDrop),Ce(c,"touchend",o._onDrop),Ce(c,"touchcancel",o._onDrop),io&&this.nativeDraggable&&(this.options.touchStartThreshold=4,N.draggable=!0),ot("delayStart",this,{evt:t}),s.delay&&(!s.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Gn||kt))){if(re.eventCanceled){this._onDrop();return}Ce(c,"mouseup",o._disableDelayedDrag),Ce(c,"touchend",o._disableDelayedDrag),Ce(c,"touchcancel",o._disableDelayedDrag),Ce(c,"mousemove",o._delayedDragTouchMoveHandler),Ce(c,"touchmove",o._delayedDragTouchMoveHandler),s.supportPointer&&Ce(c,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(v,s.delay)}else v()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){N&&ai(N),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;Oe(t,"mouseup",this._disableDelayedDrag),Oe(t,"touchend",this._disableDelayedDrag),Oe(t,"touchcancel",this._disableDelayedDrag),Oe(t,"mousemove",this._delayedDragTouchMoveHandler),Oe(t,"touchmove",this._delayedDragTouchMoveHandler),Oe(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?Ce(document,"pointermove",this._onTouchMove):n?Ce(document,"touchmove",this._onTouchMove):Ce(document,"mousemove",this._onTouchMove):(Ce(N,"dragend",this),Ce(ke,"dragstart",this._onDragStart));try{document.selection?xr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(Cn=!1,ke&&N){ot("dragStarted",this,{evt:n}),this.nativeDraggable&&Ce(document,"dragover",Ba);var r=this.options;!t&&st(N,r.dragClass,!1),st(N,r.ghostClass,!0),re.active=this,t&&this._appendGhost(),rt({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(mt){this._lastX=mt.clientX,this._lastY=mt.clientY,So();for(var t=document.elementFromPoint(mt.clientX,mt.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(mt.clientX,mt.clientY),t!==n);)n=t;if(N.parentNode[ft]._isOutsideThisEl(t),n)do{if(n[ft]){var r=void 0;if(r=n[ft]._onDragOver({clientX:mt.clientX,clientY:mt.clientY,target:t,rootEl:n}),r&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);Ao()}},_onTouchMove:function(t){if(dn){var n=this.options,r=n.fallbackTolerance,o=n.fallbackOffset,i=t.touches?t.touches[0]:t,s=ue&&_n(ue,!0),c=ue&&s&&s.a,v=ue&&s&&s.d,p=gr&&tt&&so(tt),x=(i.clientX-dn.clientX+o.x)/(c||1)+(p?p[0]-oi[0]:0)/(c||1),b=(i.clientY-dn.clientY+o.y)/(v||1)+(p?p[1]-oi[1]:0)/(v||1);if(!re.active&&!Cn){if(r&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(rt({rootEl:Ue,name:"add",toEl:Ue,fromEl:ke,originalEvent:t}),rt({sortable:this,name:"remove",toEl:Ue,originalEvent:t}),rt({rootEl:Ue,name:"sort",toEl:Ue,fromEl:ke,originalEvent:t}),rt({sortable:this,name:"sort",toEl:Ue,originalEvent:t})),Qe&&Qe.save()):lt!==Dn&<>=0&&(rt({sortable:this,name:"update",toEl:Ue,originalEvent:t}),rt({sortable:this,name:"sort",toEl:Ue,originalEvent:t})),re.active&&((lt==null||lt===-1)&&(lt=Dn,en=Yn),rt({sortable:this,name:"end",toEl:Ue,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){ot("nulling",this),ke=N=Ue=ue=hn=We=yr=tn=dn=mt=$n=lt=en=Dn=Yn=An=Xn=Qe=hr=re.dragged=re.ghost=re.clone=re.active=null,Cr.forEach(function(t){t.checked=!0}),Cr.length=ri=ii=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":N&&(this._onDragOver(t),Ha(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,r=this.el.children,o=0,i=r.length,s=this.options;oo.right+i||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+i||e.clientX>r.right&&e.clientY>r.top}function Ua(e,t,n,r,o,i,s,c){var v=r?e.clientY:e.clientX,p=r?n.height:n.width,x=r?n.top:n.left,b=r?n.bottom:n.right,E=!1;if(!s){if(c&&wrx+p*i/2:vb-wr)return-Xn}else if(v>x+p*(1-o)/2&&vb-p*i/2)?v>x+p/2?1:-1:0}function za(e){return ct(N){e.directive("sortable",t=>{let n=parseInt(t.dataset?.sortableAnimationDuration);n!==0&&!n&&(n=300),t.sortable=mi.create(t,{draggable:"[x-sortable-item]",handle:"[x-sortable-handle]",dataIdAttr:"x-sortable-item",animation:n,ghostClass:"fi-sortable-ghost"})})};var Ga=Object.create,wi=Object.defineProperty,Ka=Object.getPrototypeOf,Ja=Object.prototype.hasOwnProperty,Qa=Object.getOwnPropertyNames,Za=Object.getOwnPropertyDescriptor,es=e=>wi(e,"__esModule",{value:!0}),_o=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),ts=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Qa(t))!Ja.call(e,r)&&r!=="default"&&wi(e,r,{get:()=>t[r],enumerable:!(n=Za(t,r))||n.enumerable});return e},To=e=>ts(es(wi(e!=null?Ga(Ka(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),ns=_o(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(f){var a=f.getBoundingClientRect();return{width:a.width,height:a.height,top:a.top,right:a.right,bottom:a.bottom,left:a.left,x:a.left,y:a.top}}function n(f){if(f==null)return window;if(f.toString()!=="[object Window]"){var a=f.ownerDocument;return a&&a.defaultView||window}return f}function r(f){var a=n(f),m=a.pageXOffset,A=a.pageYOffset;return{scrollLeft:m,scrollTop:A}}function o(f){var a=n(f).Element;return f instanceof a||f instanceof Element}function i(f){var a=n(f).HTMLElement;return f instanceof a||f instanceof HTMLElement}function s(f){if(typeof ShadowRoot>"u")return!1;var a=n(f).ShadowRoot;return f instanceof a||f instanceof ShadowRoot}function c(f){return{scrollLeft:f.scrollLeft,scrollTop:f.scrollTop}}function v(f){return f===n(f)||!i(f)?r(f):c(f)}function p(f){return f?(f.nodeName||"").toLowerCase():null}function x(f){return((o(f)?f.ownerDocument:f.document)||window.document).documentElement}function b(f){return t(x(f)).left+r(f).scrollLeft}function E(f){return n(f).getComputedStyle(f)}function _(f){var a=E(f),m=a.overflow,A=a.overflowX,D=a.overflowY;return/auto|scroll|overlay|hidden/.test(m+D+A)}function C(f,a,m){m===void 0&&(m=!1);var A=x(a),D=t(f),F=i(a),$={scrollLeft:0,scrollTop:0},k={x:0,y:0};return(F||!F&&!m)&&((p(a)!=="body"||_(A))&&($=v(a)),i(a)?(k=t(a),k.x+=a.clientLeft,k.y+=a.clientTop):A&&(k.x=b(A))),{x:D.left+$.scrollLeft-k.x,y:D.top+$.scrollTop-k.y,width:D.width,height:D.height}}function M(f){var a=t(f),m=f.offsetWidth,A=f.offsetHeight;return Math.abs(a.width-m)<=1&&(m=a.width),Math.abs(a.height-A)<=1&&(A=a.height),{x:f.offsetLeft,y:f.offsetTop,width:m,height:A}}function U(f){return p(f)==="html"?f:f.assignedSlot||f.parentNode||(s(f)?f.host:null)||x(f)}function V(f){return["html","body","#document"].indexOf(p(f))>=0?f.ownerDocument.body:i(f)&&_(f)?f:V(U(f))}function B(f,a){var m;a===void 0&&(a=[]);var A=V(f),D=A===((m=f.ownerDocument)==null?void 0:m.body),F=n(A),$=D?[F].concat(F.visualViewport||[],_(A)?A:[]):A,k=a.concat($);return D?k:k.concat(B(U($)))}function Q(f){return["table","td","th"].indexOf(p(f))>=0}function q(f){return!i(f)||E(f).position==="fixed"?null:f.offsetParent}function xe(f){var a=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,m=navigator.userAgent.indexOf("Trident")!==-1;if(m&&i(f)){var A=E(f);if(A.position==="fixed")return null}for(var D=U(f);i(D)&&["html","body"].indexOf(p(D))<0;){var F=E(D);if(F.transform!=="none"||F.perspective!=="none"||F.contain==="paint"||["transform","perspective"].indexOf(F.willChange)!==-1||a&&F.willChange==="filter"||a&&F.filter&&F.filter!=="none")return D;D=D.parentNode}return null}function se(f){for(var a=n(f),m=q(f);m&&Q(m)&&E(m).position==="static";)m=q(m);return m&&(p(m)==="html"||p(m)==="body"&&E(m).position==="static")?a:m||xe(f)||a}var ie="top",be="bottom",R="right",fe="left",ce="auto",l=[ie,be,R,fe],d="start",h="end",u="clippingParents",H="viewport",T="popper",P="reference",G=l.reduce(function(f,a){return f.concat([a+"-"+d,a+"-"+h])},[]),ze=[].concat(l,[ce]).reduce(function(f,a){return f.concat([a,a+"-"+d,a+"-"+h])},[]),Dt="beforeRead",jt="read",Tr="afterRead",Pr="beforeMain",Mr="main",Bt="afterMain",Jn="beforeWrite",Rr="write",Qn="afterWrite",_t=[Dt,jt,Tr,Pr,Mr,Bt,Jn,Rr,Qn];function Ir(f){var a=new Map,m=new Set,A=[];f.forEach(function(F){a.set(F.name,F)});function D(F){m.add(F.name);var $=[].concat(F.requires||[],F.requiresIfExists||[]);$.forEach(function(k){if(!m.has(k)){var Y=a.get(k);Y&&D(Y)}}),A.push(F)}return f.forEach(function(F){m.has(F.name)||D(F)}),A}function dt(f){var a=Ir(f);return _t.reduce(function(m,A){return m.concat(a.filter(function(D){return D.phase===A}))},[])}function Ht(f){var a;return function(){return a||(a=new Promise(function(m){Promise.resolve().then(function(){a=void 0,m(f())})})),a}}function yt(f){for(var a=arguments.length,m=new Array(a>1?a-1:0),A=1;A=0,A=m&&i(f)?se(f):f;return o(A)?a.filter(function(D){return o(D)&&Pn(D,A)&&p(D)!=="body"}):[]}function gn(f,a,m){var A=a==="clippingParents"?vn(f):[].concat(a),D=[].concat(A,[m]),F=D[0],$=D.reduce(function(k,Y){var te=nr(f,Y);return k.top=pt(te.top,k.top),k.right=rn(te.right,k.right),k.bottom=rn(te.bottom,k.bottom),k.left=pt(te.left,k.left),k},nr(f,F));return $.width=$.right-$.left,$.height=$.bottom-$.top,$.x=$.left,$.y=$.top,$}function on(f){return f.split("-")[1]}function ut(f){return["top","bottom"].indexOf(f)>=0?"x":"y"}function rr(f){var a=f.reference,m=f.element,A=f.placement,D=A?it(A):null,F=A?on(A):null,$=a.x+a.width/2-m.width/2,k=a.y+a.height/2-m.height/2,Y;switch(D){case ie:Y={x:$,y:a.y-m.height};break;case be:Y={x:$,y:a.y+a.height};break;case R:Y={x:a.x+a.width,y:k};break;case fe:Y={x:a.x-m.width,y:k};break;default:Y={x:a.x,y:a.y}}var te=D?ut(D):null;if(te!=null){var W=te==="y"?"height":"width";switch(F){case d:Y[te]=Y[te]-(a[W]/2-m[W]/2);break;case h:Y[te]=Y[te]+(a[W]/2-m[W]/2);break}}return Y}function ir(){return{top:0,right:0,bottom:0,left:0}}function or(f){return Object.assign({},ir(),f)}function ar(f,a){return a.reduce(function(m,A){return m[A]=f,m},{})}function Vt(f,a){a===void 0&&(a={});var m=a,A=m.placement,D=A===void 0?f.placement:A,F=m.boundary,$=F===void 0?u:F,k=m.rootBoundary,Y=k===void 0?H:k,te=m.elementContext,W=te===void 0?T:te,De=m.altBoundary,Ne=De===void 0?!1:De,Ae=m.padding,we=Ae===void 0?0:Ae,Me=or(typeof we!="number"?we:ar(we,l)),Ee=W===T?P:T,Be=f.elements.reference,Re=f.rects.popper,He=f.elements[Ne?Ee:W],ae=gn(o(He)?He:He.contextElement||x(f.elements.popper),$,Y),Pe=t(Be),_e=rr({reference:Pe,element:Re,strategy:"absolute",placement:D}),Le=Wt(Object.assign({},Re,_e)),Fe=W===T?Le:Pe,Ye={top:ae.top-Fe.top+Me.top,bottom:Fe.bottom-ae.bottom+Me.bottom,left:ae.left-Fe.left+Me.left,right:Fe.right-ae.right+Me.right},$e=f.modifiersData.offset;if(W===T&&$e){var Ve=$e[D];Object.keys(Ye).forEach(function(gt){var et=[R,be].indexOf(gt)>=0?1:-1,Pt=[ie,be].indexOf(gt)>=0?"y":"x";Ye[gt]+=Ve[Pt]*et})}return Ye}var sr="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",jr="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",mn={placement:"bottom",modifiers:[],strategy:"absolute"};function an(){for(var f=arguments.length,a=new Array(f),m=0;m100){console.error(jr);break}if(W.reset===!0){W.reset=!1,Pe=-1;continue}var _e=W.orderedModifiers[Pe],Le=_e.fn,Fe=_e.options,Ye=Fe===void 0?{}:Fe,$e=_e.name;typeof Le=="function"&&(W=Le({state:W,options:Ye,name:$e,instance:Ae})||W)}}},update:Ht(function(){return new Promise(function(Ee){Ae.forceUpdate(),Ee(W)})}),destroy:function(){Me(),Ne=!0}};if(!an(k,Y))return console.error(sr),Ae;Ae.setOptions(te).then(function(Ee){!Ne&&te.onFirstUpdate&&te.onFirstUpdate(Ee)});function we(){W.orderedModifiers.forEach(function(Ee){var Be=Ee.name,Re=Ee.options,He=Re===void 0?{}:Re,ae=Ee.effect;if(typeof ae=="function"){var Pe=ae({state:W,name:Be,instance:Ae,options:He}),_e=function(){};De.push(Pe||_e)}})}function Me(){De.forEach(function(Ee){return Ee()}),De=[]}return Ae}}var yn={passive:!0};function Br(f){var a=f.state,m=f.instance,A=f.options,D=A.scroll,F=D===void 0?!0:D,$=A.resize,k=$===void 0?!0:$,Y=n(a.elements.popper),te=[].concat(a.scrollParents.reference,a.scrollParents.popper);return F&&te.forEach(function(W){W.addEventListener("scroll",m.update,yn)}),k&&Y.addEventListener("resize",m.update,yn),function(){F&&te.forEach(function(W){W.removeEventListener("scroll",m.update,yn)}),k&&Y.removeEventListener("resize",m.update,yn)}}var Mn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Br,data:{}};function Hr(f){var a=f.state,m=f.name;a.modifiersData[m]=rr({reference:a.rects.reference,element:a.rects.popper,strategy:"absolute",placement:a.placement})}var Rn={name:"popperOffsets",enabled:!0,phase:"read",fn:Hr,data:{}},$r={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Wr(f){var a=f.x,m=f.y,A=window,D=A.devicePixelRatio||1;return{x:$t($t(a*D)/D)||0,y:$t($t(m*D)/D)||0}}function In(f){var a,m=f.popper,A=f.popperRect,D=f.placement,F=f.offsets,$=f.position,k=f.gpuAcceleration,Y=f.adaptive,te=f.roundOffsets,W=te===!0?Wr(F):typeof te=="function"?te(F):F,De=W.x,Ne=De===void 0?0:De,Ae=W.y,we=Ae===void 0?0:Ae,Me=F.hasOwnProperty("x"),Ee=F.hasOwnProperty("y"),Be=fe,Re=ie,He=window;if(Y){var ae=se(m),Pe="clientHeight",_e="clientWidth";ae===n(m)&&(ae=x(m),E(ae).position!=="static"&&(Pe="scrollHeight",_e="scrollWidth")),ae=ae,D===ie&&(Re=be,we-=ae[Pe]-A.height,we*=k?1:-1),D===fe&&(Be=R,Ne-=ae[_e]-A.width,Ne*=k?1:-1)}var Le=Object.assign({position:$},Y&&$r);if(k){var Fe;return Object.assign({},Le,(Fe={},Fe[Re]=Ee?"0":"",Fe[Be]=Me?"0":"",Fe.transform=(He.devicePixelRatio||1)<2?"translate("+Ne+"px, "+we+"px)":"translate3d("+Ne+"px, "+we+"px, 0)",Fe))}return Object.assign({},Le,(a={},a[Re]=Ee?we+"px":"",a[Be]=Me?Ne+"px":"",a.transform="",a))}function g(f){var a=f.state,m=f.options,A=m.gpuAcceleration,D=A===void 0?!0:A,F=m.adaptive,$=F===void 0?!0:F,k=m.roundOffsets,Y=k===void 0?!0:k,te=E(a.elements.popper).transitionProperty||"";$&&["transform","top","right","bottom","left"].some(function(De){return te.indexOf(De)>=0})&&console.warn(["Popper: Detected CSS transitions on at least one of the following",'CSS properties: "transform", "top", "right", "bottom", "left".',` + +`,'Disable the "computeStyles" modifier\'s `adaptive` option to allow',"for smooth transitions, or remove these properties from the CSS","transition declaration on the popper element if only transitioning","opacity or background-color for example.",` + +`,"We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "));var W={placement:it(a.placement),popper:a.elements.popper,popperRect:a.rects.popper,gpuAcceleration:D};a.modifiersData.popperOffsets!=null&&(a.styles.popper=Object.assign({},a.styles.popper,In(Object.assign({},W,{offsets:a.modifiersData.popperOffsets,position:a.options.strategy,adaptive:$,roundOffsets:Y})))),a.modifiersData.arrow!=null&&(a.styles.arrow=Object.assign({},a.styles.arrow,In(Object.assign({},W,{offsets:a.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:Y})))),a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-placement":a.placement})}var y={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:g,data:{}};function O(f){var a=f.state;Object.keys(a.elements).forEach(function(m){var A=a.styles[m]||{},D=a.attributes[m]||{},F=a.elements[m];!i(F)||!p(F)||(Object.assign(F.style,A),Object.keys(D).forEach(function($){var k=D[$];k===!1?F.removeAttribute($):F.setAttribute($,k===!0?"":k)}))})}function I(f){var a=f.state,m={popper:{position:a.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(a.elements.popper.style,m.popper),a.styles=m,a.elements.arrow&&Object.assign(a.elements.arrow.style,m.arrow),function(){Object.keys(a.elements).forEach(function(A){var D=a.elements[A],F=a.attributes[A]||{},$=Object.keys(a.styles.hasOwnProperty(A)?a.styles[A]:m[A]),k=$.reduce(function(Y,te){return Y[te]="",Y},{});!i(D)||!p(D)||(Object.assign(D.style,k),Object.keys(F).forEach(function(Y){D.removeAttribute(Y)}))})}}var z={name:"applyStyles",enabled:!0,phase:"write",fn:O,effect:I,requires:["computeStyles"]};function j(f,a,m){var A=it(f),D=[fe,ie].indexOf(A)>=0?-1:1,F=typeof m=="function"?m(Object.assign({},a,{placement:f})):m,$=F[0],k=F[1];return $=$||0,k=(k||0)*D,[fe,R].indexOf(A)>=0?{x:k,y:$}:{x:$,y:k}}function L(f){var a=f.state,m=f.options,A=f.name,D=m.offset,F=D===void 0?[0,0]:D,$=ze.reduce(function(W,De){return W[De]=j(De,a.rects,F),W},{}),k=$[a.placement],Y=k.x,te=k.y;a.modifiersData.popperOffsets!=null&&(a.modifiersData.popperOffsets.x+=Y,a.modifiersData.popperOffsets.y+=te),a.modifiersData[A]=$}var ge={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:L},oe={left:"right",right:"left",bottom:"top",top:"bottom"};function de(f){return f.replace(/left|right|bottom|top/g,function(a){return oe[a]})}var me={start:"end",end:"start"};function Te(f){return f.replace(/start|end/g,function(a){return me[a]})}function je(f,a){a===void 0&&(a={});var m=a,A=m.placement,D=m.boundary,F=m.rootBoundary,$=m.padding,k=m.flipVariations,Y=m.allowedAutoPlacements,te=Y===void 0?ze:Y,W=on(A),De=W?k?G:G.filter(function(we){return on(we)===W}):l,Ne=De.filter(function(we){return te.indexOf(we)>=0});Ne.length===0&&(Ne=De,console.error(["Popper: The `allowedAutoPlacements` option did not allow any","placements. Ensure the `placement` option matches the variation","of the allowed placements.",'For example, "auto" cannot be used to allow "bottom-start".','Use "auto-start" instead.'].join(" ")));var Ae=Ne.reduce(function(we,Me){return we[Me]=Vt(f,{placement:Me,boundary:D,rootBoundary:F,padding:$})[it(Me)],we},{});return Object.keys(Ae).sort(function(we,Me){return Ae[we]-Ae[Me]})}function Se(f){if(it(f)===ce)return[];var a=de(f);return[Te(f),a,Te(a)]}function Ie(f){var a=f.state,m=f.options,A=f.name;if(!a.modifiersData[A]._skip){for(var D=m.mainAxis,F=D===void 0?!0:D,$=m.altAxis,k=$===void 0?!0:$,Y=m.fallbackPlacements,te=m.padding,W=m.boundary,De=m.rootBoundary,Ne=m.altBoundary,Ae=m.flipVariations,we=Ae===void 0?!0:Ae,Me=m.allowedAutoPlacements,Ee=a.options.placement,Be=it(Ee),Re=Be===Ee,He=Y||(Re||!we?[de(Ee)]:Se(Ee)),ae=[Ee].concat(He).reduce(function(J,ve){return J.concat(it(ve)===ce?je(a,{placement:ve,boundary:W,rootBoundary:De,padding:te,flipVariations:we,allowedAutoPlacements:Me}):ve)},[]),Pe=a.rects.reference,_e=a.rects.popper,Le=new Map,Fe=!0,Ye=ae[0],$e=0;$e=0,ln=Pt?"width":"height",Xt=Vt(a,{placement:Ve,boundary:W,rootBoundary:De,altBoundary:Ne,padding:te}),Mt=Pt?et?R:fe:et?be:ie;Pe[ln]>_e[ln]&&(Mt=de(Mt));var Fn=de(Mt),qt=[];if(F&&qt.push(Xt[gt]<=0),k&&qt.push(Xt[Mt]<=0,Xt[Fn]<=0),qt.every(function(J){return J})){Ye=Ve,Fe=!1;break}Le.set(Ve,qt)}if(Fe)for(var wn=we?3:1,Nn=function(ve){var ye=ae.find(function(Ke){var Je=Le.get(Ke);if(Je)return Je.slice(0,ve).every(function(xt){return xt})});if(ye)return Ye=ye,"break"},S=wn;S>0;S--){var X=Nn(S);if(X==="break")break}a.placement!==Ye&&(a.modifiersData[A]._skip=!0,a.placement=Ye,a.reset=!0)}}var Z={name:"flip",enabled:!0,phase:"main",fn:Ie,requiresIfExists:["offset"],data:{_skip:!1}};function pe(f){return f==="x"?"y":"x"}function he(f,a,m){return pt(f,rn(a,m))}function K(f){var a=f.state,m=f.options,A=f.name,D=m.mainAxis,F=D===void 0?!0:D,$=m.altAxis,k=$===void 0?!1:$,Y=m.boundary,te=m.rootBoundary,W=m.altBoundary,De=m.padding,Ne=m.tether,Ae=Ne===void 0?!0:Ne,we=m.tetherOffset,Me=we===void 0?0:we,Ee=Vt(a,{boundary:Y,rootBoundary:te,padding:De,altBoundary:W}),Be=it(a.placement),Re=on(a.placement),He=!Re,ae=ut(Be),Pe=pe(ae),_e=a.modifiersData.popperOffsets,Le=a.rects.reference,Fe=a.rects.popper,Ye=typeof Me=="function"?Me(Object.assign({},a.rects,{placement:a.placement})):Me,$e={x:0,y:0};if(_e){if(F||k){var Ve=ae==="y"?ie:fe,gt=ae==="y"?be:R,et=ae==="y"?"height":"width",Pt=_e[ae],ln=_e[ae]+Ee[Ve],Xt=_e[ae]-Ee[gt],Mt=Ae?-Fe[et]/2:0,Fn=Re===d?Le[et]:Fe[et],qt=Re===d?-Fe[et]:-Le[et],wn=a.elements.arrow,Nn=Ae&&wn?M(wn):{width:0,height:0},S=a.modifiersData["arrow#persistent"]?a.modifiersData["arrow#persistent"].padding:ir(),X=S[Ve],J=S[gt],ve=he(0,Le[et],Nn[et]),ye=He?Le[et]/2-Mt-ve-X-Ye:Fn-ve-X-Ye,Ke=He?-Le[et]/2+Mt+ve+J+Ye:qt+ve+J+Ye,Je=a.elements.arrow&&se(a.elements.arrow),xt=Je?ae==="y"?Je.clientTop||0:Je.clientLeft||0:0,Ln=a.modifiersData.offset?a.modifiersData.offset[a.placement][ae]:0,Et=_e[ae]+ye-Ln-xt,xn=_e[ae]+Ke-Ln;if(F){var fn=he(Ae?rn(ln,Et):ln,Pt,Ae?pt(Xt,xn):Xt);_e[ae]=fn,$e[ae]=fn-Pt}if(k){var Gt=ae==="x"?ie:fe,Vr=ae==="x"?be:R,Kt=_e[Pe],un=Kt+Ee[Gt],xi=Kt-Ee[Vr],Ei=he(Ae?rn(un,Et):un,Kt,Ae?pt(xi,xn):xi);_e[Pe]=Ei,$e[Pe]=Ei-Kt}}a.modifiersData[A]=$e}}var ee={name:"preventOverflow",enabled:!0,phase:"main",fn:K,requiresIfExists:["offset"]},w=function(a,m){return a=typeof a=="function"?a(Object.assign({},m.rects,{placement:m.placement})):a,or(typeof a!="number"?a:ar(a,l))};function Ge(f){var a,m=f.state,A=f.name,D=f.options,F=m.elements.arrow,$=m.modifiersData.popperOffsets,k=it(m.placement),Y=ut(k),te=[fe,R].indexOf(k)>=0,W=te?"height":"width";if(!(!F||!$)){var De=w(D.padding,m),Ne=M(F),Ae=Y==="y"?ie:fe,we=Y==="y"?be:R,Me=m.rects.reference[W]+m.rects.reference[Y]-$[Y]-m.rects.popper[W],Ee=$[Y]-m.rects.reference[Y],Be=se(F),Re=Be?Y==="y"?Be.clientHeight||0:Be.clientWidth||0:0,He=Me/2-Ee/2,ae=De[Ae],Pe=Re-Ne[W]-De[we],_e=Re/2-Ne[W]/2+He,Le=he(ae,_e,Pe),Fe=Y;m.modifiersData[A]=(a={},a[Fe]=Le,a.centerOffset=Le-_e,a)}}function le(f){var a=f.state,m=f.options,A=m.element,D=A===void 0?"[data-popper-arrow]":A;if(D!=null&&!(typeof D=="string"&&(D=a.elements.popper.querySelector(D),!D))){if(i(D)||console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).',"To use an SVG arrow, wrap it in an HTMLElement that will be used as","the arrow."].join(" ")),!Pn(a.elements.popper,D)){console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper',"element."].join(" "));return}a.elements.arrow=D}}var Tt={name:"arrow",enabled:!0,phase:"main",fn:Ge,effect:le,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ht(f,a,m){return m===void 0&&(m={x:0,y:0}),{top:f.top-a.height-m.y,right:f.right-a.width+m.x,bottom:f.bottom-a.height+m.y,left:f.left-a.width-m.x}}function Ut(f){return[ie,R,be,fe].some(function(a){return f[a]>=0})}function zt(f){var a=f.state,m=f.name,A=a.rects.reference,D=a.rects.popper,F=a.modifiersData.preventOverflow,$=Vt(a,{elementContext:"reference"}),k=Vt(a,{altBoundary:!0}),Y=ht($,A),te=ht(k,D,F),W=Ut(Y),De=Ut(te);a.modifiersData[m]={referenceClippingOffsets:Y,popperEscapeOffsets:te,isReferenceHidden:W,hasPopperEscaped:De},a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-reference-hidden":W,"data-popper-escaped":De})}var Yt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:zt},nt=[Mn,Rn,y,z],at=bn({defaultModifiers:nt}),vt=[Mn,Rn,y,z,ge,Z,ee,Tt,Yt],sn=bn({defaultModifiers:vt});e.applyStyles=z,e.arrow=Tt,e.computeStyles=y,e.createPopper=sn,e.createPopperLite=at,e.defaultModifiers=vt,e.detectOverflow=Vt,e.eventListeners=Mn,e.flip=Z,e.hide=Yt,e.offset=ge,e.popperGenerator=bn,e.popperOffsets=Rn,e.preventOverflow=ee}),Po=_o(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=ns(),n='',r="tippy-box",o="tippy-content",i="tippy-backdrop",s="tippy-arrow",c="tippy-svg-arrow",v={passive:!0,capture:!0};function p(g,y){return{}.hasOwnProperty.call(g,y)}function x(g,y,O){if(Array.isArray(g)){var I=g[y];return I??(Array.isArray(O)?O[y]:O)}return g}function b(g,y){var O={}.toString.call(g);return O.indexOf("[object")===0&&O.indexOf(y+"]")>-1}function E(g,y){return typeof g=="function"?g.apply(void 0,y):g}function _(g,y){if(y===0)return g;var O;return function(I){clearTimeout(O),O=setTimeout(function(){g(I)},y)}}function C(g,y){var O=Object.assign({},g);return y.forEach(function(I){delete O[I]}),O}function M(g){return g.split(/\s+/).filter(Boolean)}function U(g){return[].concat(g)}function V(g,y){g.indexOf(y)===-1&&g.push(y)}function B(g){return g.filter(function(y,O){return g.indexOf(y)===O})}function Q(g){return g.split("-")[0]}function q(g){return[].slice.call(g)}function xe(g){return Object.keys(g).reduce(function(y,O){return g[O]!==void 0&&(y[O]=g[O]),y},{})}function se(){return document.createElement("div")}function ie(g){return["Element","Fragment"].some(function(y){return b(g,y)})}function be(g){return b(g,"NodeList")}function R(g){return b(g,"MouseEvent")}function fe(g){return!!(g&&g._tippy&&g._tippy.reference===g)}function ce(g){return ie(g)?[g]:be(g)?q(g):Array.isArray(g)?g:q(document.querySelectorAll(g))}function l(g,y){g.forEach(function(O){O&&(O.style.transitionDuration=y+"ms")})}function d(g,y){g.forEach(function(O){O&&O.setAttribute("data-state",y)})}function h(g){var y,O=U(g),I=O[0];return!(I==null||(y=I.ownerDocument)==null)&&y.body?I.ownerDocument:document}function u(g,y){var O=y.clientX,I=y.clientY;return g.every(function(z){var j=z.popperRect,L=z.popperState,ge=z.props,oe=ge.interactiveBorder,de=Q(L.placement),me=L.modifiersData.offset;if(!me)return!0;var Te=de==="bottom"?me.top.y:0,je=de==="top"?me.bottom.y:0,Se=de==="right"?me.left.x:0,Ie=de==="left"?me.right.x:0,Z=j.top-I+Te>oe,pe=I-j.bottom-je>oe,he=j.left-O+Se>oe,K=O-j.right-Ie>oe;return Z||pe||he||K})}function H(g,y,O){var I=y+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(z){g[I](z,O)})}var T={isTouch:!1},P=0;function G(){T.isTouch||(T.isTouch=!0,window.performance&&document.addEventListener("mousemove",ze))}function ze(){var g=performance.now();g-P<20&&(T.isTouch=!1,document.removeEventListener("mousemove",ze)),P=g}function Dt(){var g=document.activeElement;if(fe(g)){var y=g._tippy;g.blur&&!y.state.isVisible&&g.blur()}}function jt(){document.addEventListener("touchstart",G,v),window.addEventListener("blur",Dt)}var Tr=typeof window<"u"&&typeof document<"u",Pr=Tr?navigator.userAgent:"",Mr=/MSIE |Trident\//.test(Pr);function Bt(g){var y=g==="destroy"?"n already-":" ";return[g+"() was called on a"+y+"destroyed instance. This is a no-op but","indicates a potential memory leak."].join(" ")}function Jn(g){var y=/[ \t]{2,}/g,O=/^[ \t]*/gm;return g.replace(y," ").replace(O,"").trim()}function Rr(g){return Jn(` + %ctippy.js + + %c`+Jn(g)+` + + %c\u{1F477}\u200D This is a development-only message. It will be removed in production. + `)}function Qn(g){return[Rr(g),"color: #00C584; font-size: 1.3em; font-weight: bold;","line-height: 1.5","color: #a6a095;"]}var _t;Ir();function Ir(){_t=new Set}function dt(g,y){if(g&&!_t.has(y)){var O;_t.add(y),(O=console).warn.apply(O,Qn(y))}}function Ht(g,y){if(g&&!_t.has(y)){var O;_t.add(y),(O=console).error.apply(O,Qn(y))}}function yt(g){var y=!g,O=Object.prototype.toString.call(g)==="[object Object]"&&!g.addEventListener;Ht(y,["tippy() was passed","`"+String(g)+"`","as its targets (first) argument. Valid types are: String, Element,","Element[], or NodeList."].join(" ")),Ht(O,["tippy() was passed a plain object which is not supported as an argument","for virtual positioning. Use props.getReferenceClientRect instead."].join(" "))}var wt={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Fr={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Ze=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},wt,{},Fr),Nr=Object.keys(Ze),Lr=function(y){pt(y,[]);var O=Object.keys(y);O.forEach(function(I){Ze[I]=y[I]})};function it(g){var y=g.plugins||[],O=y.reduce(function(I,z){var j=z.name,L=z.defaultValue;return j&&(I[j]=g[j]!==void 0?g[j]:L),I},{});return Object.assign({},g,{},O)}function kr(g,y){var O=y?Object.keys(it(Object.assign({},Ze,{plugins:y}))):Nr,I=O.reduce(function(z,j){var L=(g.getAttribute("data-tippy-"+j)||"").trim();if(!L)return z;if(j==="content")z[j]=L;else try{z[j]=JSON.parse(L)}catch{z[j]=L}return z},{});return I}function Zn(g,y){var O=Object.assign({},y,{content:E(y.content,[g])},y.ignoreAttributes?{}:kr(g,y.plugins));return O.aria=Object.assign({},Ze.aria,{},O.aria),O.aria={expanded:O.aria.expanded==="auto"?y.interactive:O.aria.expanded,content:O.aria.content==="auto"?y.interactive?null:"describedby":O.aria.content},O}function pt(g,y){g===void 0&&(g={}),y===void 0&&(y=[]);var O=Object.keys(g);O.forEach(function(I){var z=C(Ze,Object.keys(wt)),j=!p(z,I);j&&(j=y.filter(function(L){return L.name===I}).length===0),dt(j,["`"+I+"`","is not a valid prop. You may have spelled it incorrectly, or if it's","a plugin, forgot to pass it in an array as props.plugins.",` + +`,`All props: https://atomiks.github.io/tippyjs/v6/all-props/ +`,"Plugins: https://atomiks.github.io/tippyjs/v6/plugins/"].join(" "))})}var rn=function(){return"innerHTML"};function $t(g,y){g[rn()]=y}function er(g){var y=se();return g===!0?y.className=s:(y.className=c,ie(g)?y.appendChild(g):$t(y,g)),y}function Pn(g,y){ie(y.content)?($t(g,""),g.appendChild(y.content)):typeof y.content!="function"&&(y.allowHTML?$t(g,y.content):g.textContent=y.content)}function Wt(g){var y=g.firstElementChild,O=q(y.children);return{box:y,content:O.find(function(I){return I.classList.contains(o)}),arrow:O.find(function(I){return I.classList.contains(s)||I.classList.contains(c)}),backdrop:O.find(function(I){return I.classList.contains(i)})}}function tr(g){var y=se(),O=se();O.className=r,O.setAttribute("data-state","hidden"),O.setAttribute("tabindex","-1");var I=se();I.className=o,I.setAttribute("data-state","hidden"),Pn(I,g.props),y.appendChild(O),O.appendChild(I),z(g.props,g.props);function z(j,L){var ge=Wt(y),oe=ge.box,de=ge.content,me=ge.arrow;L.theme?oe.setAttribute("data-theme",L.theme):oe.removeAttribute("data-theme"),typeof L.animation=="string"?oe.setAttribute("data-animation",L.animation):oe.removeAttribute("data-animation"),L.inertia?oe.setAttribute("data-inertia",""):oe.removeAttribute("data-inertia"),oe.style.maxWidth=typeof L.maxWidth=="number"?L.maxWidth+"px":L.maxWidth,L.role?oe.setAttribute("role",L.role):oe.removeAttribute("role"),(j.content!==L.content||j.allowHTML!==L.allowHTML)&&Pn(de,g.props),L.arrow?me?j.arrow!==L.arrow&&(oe.removeChild(me),oe.appendChild(er(L.arrow))):oe.appendChild(er(L.arrow)):me&&oe.removeChild(me)}return{popper:y,onUpdate:z}}tr.$$tippy=!0;var nr=1,vn=[],gn=[];function on(g,y){var O=Zn(g,Object.assign({},Ze,{},it(xe(y)))),I,z,j,L=!1,ge=!1,oe=!1,de=!1,me,Te,je,Se=[],Ie=_(Re,O.interactiveDebounce),Z,pe=nr++,he=null,K=B(O.plugins),ee={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},w={id:pe,reference:g,popper:se(),popperInstance:he,props:O,state:ee,plugins:K,clearDelayTimeouts:Pt,setProps:ln,setContent:Xt,show:Mt,hide:Fn,hideWithInteractivity:qt,enable:gt,disable:et,unmount:wn,destroy:Nn};if(!O.render)return Ht(!0,"render() function has not been supplied."),w;var Ge=O.render(w),le=Ge.popper,Tt=Ge.onUpdate;le.setAttribute("data-tippy-root",""),le.id="tippy-"+w.id,w.popper=le,g._tippy=w,le._tippy=w;var ht=K.map(function(S){return S.fn(w)}),Ut=g.hasAttribute("aria-expanded");return Me(),D(),a(),m("onCreate",[w]),O.showOnCreate&&$e(),le.addEventListener("mouseenter",function(){w.props.interactive&&w.state.isVisible&&w.clearDelayTimeouts()}),le.addEventListener("mouseleave",function(S){w.props.interactive&&w.props.trigger.indexOf("mouseenter")>=0&&(vt().addEventListener("mousemove",Ie),Ie(S))}),w;function zt(){var S=w.props.touch;return Array.isArray(S)?S:[S,0]}function Yt(){return zt()[0]==="hold"}function nt(){var S;return!!((S=w.props.render)!=null&&S.$$tippy)}function at(){return Z||g}function vt(){var S=at().parentNode;return S?h(S):document}function sn(){return Wt(le)}function f(S){return w.state.isMounted&&!w.state.isVisible||T.isTouch||me&&me.type==="focus"?0:x(w.props.delay,S?0:1,Ze.delay)}function a(){le.style.pointerEvents=w.props.interactive&&w.state.isVisible?"":"none",le.style.zIndex=""+w.props.zIndex}function m(S,X,J){if(J===void 0&&(J=!0),ht.forEach(function(ye){ye[S]&&ye[S].apply(void 0,X)}),J){var ve;(ve=w.props)[S].apply(ve,X)}}function A(){var S=w.props.aria;if(S.content){var X="aria-"+S.content,J=le.id,ve=U(w.props.triggerTarget||g);ve.forEach(function(ye){var Ke=ye.getAttribute(X);if(w.state.isVisible)ye.setAttribute(X,Ke?Ke+" "+J:J);else{var Je=Ke&&Ke.replace(J,"").trim();Je?ye.setAttribute(X,Je):ye.removeAttribute(X)}})}}function D(){if(!(Ut||!w.props.aria.expanded)){var S=U(w.props.triggerTarget||g);S.forEach(function(X){w.props.interactive?X.setAttribute("aria-expanded",w.state.isVisible&&X===at()?"true":"false"):X.removeAttribute("aria-expanded")})}}function F(){vt().removeEventListener("mousemove",Ie),vn=vn.filter(function(S){return S!==Ie})}function $(S){if(!(T.isTouch&&(oe||S.type==="mousedown"))&&!(w.props.interactive&&le.contains(S.target))){if(at().contains(S.target)){if(T.isTouch||w.state.isVisible&&w.props.trigger.indexOf("click")>=0)return}else m("onClickOutside",[w,S]);w.props.hideOnClick===!0&&(w.clearDelayTimeouts(),w.hide(),ge=!0,setTimeout(function(){ge=!1}),w.state.isMounted||W())}}function k(){oe=!0}function Y(){oe=!1}function te(){var S=vt();S.addEventListener("mousedown",$,!0),S.addEventListener("touchend",$,v),S.addEventListener("touchstart",Y,v),S.addEventListener("touchmove",k,v)}function W(){var S=vt();S.removeEventListener("mousedown",$,!0),S.removeEventListener("touchend",$,v),S.removeEventListener("touchstart",Y,v),S.removeEventListener("touchmove",k,v)}function De(S,X){Ae(S,function(){!w.state.isVisible&&le.parentNode&&le.parentNode.contains(le)&&X()})}function Ne(S,X){Ae(S,X)}function Ae(S,X){var J=sn().box;function ve(ye){ye.target===J&&(H(J,"remove",ve),X())}if(S===0)return X();H(J,"remove",Te),H(J,"add",ve),Te=ve}function we(S,X,J){J===void 0&&(J=!1);var ve=U(w.props.triggerTarget||g);ve.forEach(function(ye){ye.addEventListener(S,X,J),Se.push({node:ye,eventType:S,handler:X,options:J})})}function Me(){Yt()&&(we("touchstart",Be,{passive:!0}),we("touchend",He,{passive:!0})),M(w.props.trigger).forEach(function(S){if(S!=="manual")switch(we(S,Be),S){case"mouseenter":we("mouseleave",He);break;case"focus":we(Mr?"focusout":"blur",ae);break;case"focusin":we("focusout",ae);break}})}function Ee(){Se.forEach(function(S){var X=S.node,J=S.eventType,ve=S.handler,ye=S.options;X.removeEventListener(J,ve,ye)}),Se=[]}function Be(S){var X,J=!1;if(!(!w.state.isEnabled||Pe(S)||ge)){var ve=((X=me)==null?void 0:X.type)==="focus";me=S,Z=S.currentTarget,D(),!w.state.isVisible&&R(S)&&vn.forEach(function(ye){return ye(S)}),S.type==="click"&&(w.props.trigger.indexOf("mouseenter")<0||L)&&w.props.hideOnClick!==!1&&w.state.isVisible?J=!0:$e(S),S.type==="click"&&(L=!J),J&&!ve&&Ve(S)}}function Re(S){var X=S.target,J=at().contains(X)||le.contains(X);if(!(S.type==="mousemove"&&J)){var ve=Ye().concat(le).map(function(ye){var Ke,Je=ye._tippy,xt=(Ke=Je.popperInstance)==null?void 0:Ke.state;return xt?{popperRect:ye.getBoundingClientRect(),popperState:xt,props:O}:null}).filter(Boolean);u(ve,S)&&(F(),Ve(S))}}function He(S){var X=Pe(S)||w.props.trigger.indexOf("click")>=0&&L;if(!X){if(w.props.interactive){w.hideWithInteractivity(S);return}Ve(S)}}function ae(S){w.props.trigger.indexOf("focusin")<0&&S.target!==at()||w.props.interactive&&S.relatedTarget&&le.contains(S.relatedTarget)||Ve(S)}function Pe(S){return T.isTouch?Yt()!==S.type.indexOf("touch")>=0:!1}function _e(){Le();var S=w.props,X=S.popperOptions,J=S.placement,ve=S.offset,ye=S.getReferenceClientRect,Ke=S.moveTransition,Je=nt()?Wt(le).arrow:null,xt=ye?{getBoundingClientRect:ye,contextElement:ye.contextElement||at()}:g,Ln={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(fn){var Gt=fn.state;if(nt()){var Vr=sn(),Kt=Vr.box;["placement","reference-hidden","escaped"].forEach(function(un){un==="placement"?Kt.setAttribute("data-placement",Gt.placement):Gt.attributes.popper["data-popper-"+un]?Kt.setAttribute("data-"+un,""):Kt.removeAttribute("data-"+un)}),Gt.attributes.popper={}}}},Et=[{name:"offset",options:{offset:ve}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Ke}},Ln];nt()&&Je&&Et.push({name:"arrow",options:{element:Je,padding:3}}),Et.push.apply(Et,X?.modifiers||[]),w.popperInstance=t.createPopper(xt,le,Object.assign({},X,{placement:J,onFirstUpdate:je,modifiers:Et}))}function Le(){w.popperInstance&&(w.popperInstance.destroy(),w.popperInstance=null)}function Fe(){var S=w.props.appendTo,X,J=at();w.props.interactive&&S===Ze.appendTo||S==="parent"?X=J.parentNode:X=E(S,[J]),X.contains(le)||X.appendChild(le),_e(),dt(w.props.interactive&&S===Ze.appendTo&&J.nextElementSibling!==le,["Interactive tippy element may not be accessible via keyboard","navigation because it is not directly after the reference element","in the DOM source order.",` + +`,"Using a wrapper
or tag around the reference element","solves this by creating a new parentNode context.",` + +`,"Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle","keyboard navigation.",` + +`,"See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity"].join(" "))}function Ye(){return q(le.querySelectorAll("[data-tippy-root]"))}function $e(S){w.clearDelayTimeouts(),S&&m("onTrigger",[w,S]),te();var X=f(!0),J=zt(),ve=J[0],ye=J[1];T.isTouch&&ve==="hold"&&ye&&(X=ye),X?I=setTimeout(function(){w.show()},X):w.show()}function Ve(S){if(w.clearDelayTimeouts(),m("onUntrigger",[w,S]),!w.state.isVisible){W();return}if(!(w.props.trigger.indexOf("mouseenter")>=0&&w.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(S.type)>=0&&L)){var X=f(!1);X?z=setTimeout(function(){w.state.isVisible&&w.hide()},X):j=requestAnimationFrame(function(){w.hide()})}}function gt(){w.state.isEnabled=!0}function et(){w.hide(),w.state.isEnabled=!1}function Pt(){clearTimeout(I),clearTimeout(z),cancelAnimationFrame(j)}function ln(S){if(dt(w.state.isDestroyed,Bt("setProps")),!w.state.isDestroyed){m("onBeforeUpdate",[w,S]),Ee();var X=w.props,J=Zn(g,Object.assign({},w.props,{},S,{ignoreAttributes:!0}));w.props=J,Me(),X.interactiveDebounce!==J.interactiveDebounce&&(F(),Ie=_(Re,J.interactiveDebounce)),X.triggerTarget&&!J.triggerTarget?U(X.triggerTarget).forEach(function(ve){ve.removeAttribute("aria-expanded")}):J.triggerTarget&&g.removeAttribute("aria-expanded"),D(),a(),Tt&&Tt(X,J),w.popperInstance&&(_e(),Ye().forEach(function(ve){requestAnimationFrame(ve._tippy.popperInstance.forceUpdate)})),m("onAfterUpdate",[w,S])}}function Xt(S){w.setProps({content:S})}function Mt(){dt(w.state.isDestroyed,Bt("show"));var S=w.state.isVisible,X=w.state.isDestroyed,J=!w.state.isEnabled,ve=T.isTouch&&!w.props.touch,ye=x(w.props.duration,0,Ze.duration);if(!(S||X||J||ve)&&!at().hasAttribute("disabled")&&(m("onShow",[w],!1),w.props.onShow(w)!==!1)){if(w.state.isVisible=!0,nt()&&(le.style.visibility="visible"),a(),te(),w.state.isMounted||(le.style.transition="none"),nt()){var Ke=sn(),Je=Ke.box,xt=Ke.content;l([Je,xt],0)}je=function(){var Et;if(!(!w.state.isVisible||de)){if(de=!0,le.offsetHeight,le.style.transition=w.props.moveTransition,nt()&&w.props.animation){var xn=sn(),fn=xn.box,Gt=xn.content;l([fn,Gt],ye),d([fn,Gt],"visible")}A(),D(),V(gn,w),(Et=w.popperInstance)==null||Et.forceUpdate(),w.state.isMounted=!0,m("onMount",[w]),w.props.animation&&nt()&&Ne(ye,function(){w.state.isShown=!0,m("onShown",[w])})}},Fe()}}function Fn(){dt(w.state.isDestroyed,Bt("hide"));var S=!w.state.isVisible,X=w.state.isDestroyed,J=!w.state.isEnabled,ve=x(w.props.duration,1,Ze.duration);if(!(S||X||J)&&(m("onHide",[w],!1),w.props.onHide(w)!==!1)){if(w.state.isVisible=!1,w.state.isShown=!1,de=!1,L=!1,nt()&&(le.style.visibility="hidden"),F(),W(),a(),nt()){var ye=sn(),Ke=ye.box,Je=ye.content;w.props.animation&&(l([Ke,Je],ve),d([Ke,Je],"hidden"))}A(),D(),w.props.animation?nt()&&De(ve,w.unmount):w.unmount()}}function qt(S){dt(w.state.isDestroyed,Bt("hideWithInteractivity")),vt().addEventListener("mousemove",Ie),V(vn,Ie),Ie(S)}function wn(){dt(w.state.isDestroyed,Bt("unmount")),w.state.isVisible&&w.hide(),w.state.isMounted&&(Le(),Ye().forEach(function(S){S._tippy.unmount()}),le.parentNode&&le.parentNode.removeChild(le),gn=gn.filter(function(S){return S!==w}),w.state.isMounted=!1,m("onHidden",[w]))}function Nn(){dt(w.state.isDestroyed,Bt("destroy")),!w.state.isDestroyed&&(w.clearDelayTimeouts(),w.unmount(),Ee(),delete g._tippy,w.state.isDestroyed=!0,m("onDestroy",[w]))}}function ut(g,y){y===void 0&&(y={});var O=Ze.plugins.concat(y.plugins||[]);yt(g),pt(y,O),jt();var I=Object.assign({},y,{plugins:O}),z=ce(g),j=ie(I.content),L=z.length>1;dt(j&&L,["tippy() was passed an Element as the `content` prop, but more than","one tippy instance was created by this invocation. This means the","content element will only be appended to the last tippy instance.",` + +`,"Instead, pass the .innerHTML of the element, or use a function that","returns a cloned version of the element instead.",` + +`,`1) content: element.innerHTML +`,"2) content: () => element.cloneNode(true)"].join(" "));var ge=z.reduce(function(oe,de){var me=de&&on(de,I);return me&&oe.push(me),oe},[]);return ie(g)?ge[0]:ge}ut.defaultProps=Ze,ut.setDefaultProps=Lr,ut.currentInput=T;var rr=function(y){var O=y===void 0?{}:y,I=O.exclude,z=O.duration;gn.forEach(function(j){var L=!1;if(I&&(L=fe(I)?j.reference===I:j.popper===I.popper),!L){var ge=j.props.duration;j.setProps({duration:z}),j.hide(),j.state.isDestroyed||j.setProps({duration:ge})}})},ir=Object.assign({},t.applyStyles,{effect:function(y){var O=y.state,I={popper:{position:O.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(O.elements.popper.style,I.popper),O.styles=I,O.elements.arrow&&Object.assign(O.elements.arrow.style,I.arrow)}}),or=function(y,O){var I;O===void 0&&(O={}),Ht(!Array.isArray(y),["The first argument passed to createSingleton() must be an array of","tippy instances. The passed value was",String(y)].join(" "));var z=y,j=[],L,ge=O.overrides,oe=[],de=!1;function me(){j=z.map(function(K){return K.reference})}function Te(K){z.forEach(function(ee){K?ee.enable():ee.disable()})}function je(K){return z.map(function(ee){var w=ee.setProps;return ee.setProps=function(Ge){w(Ge),ee.reference===L&&K.setProps(Ge)},function(){ee.setProps=w}})}function Se(K,ee){var w=j.indexOf(ee);if(ee!==L){L=ee;var Ge=(ge||[]).concat("content").reduce(function(le,Tt){return le[Tt]=z[w].props[Tt],le},{});K.setProps(Object.assign({},Ge,{getReferenceClientRect:typeof Ge.getReferenceClientRect=="function"?Ge.getReferenceClientRect:function(){return ee.getBoundingClientRect()}}))}}Te(!1),me();var Ie={fn:function(){return{onDestroy:function(){Te(!0)},onHidden:function(){L=null},onClickOutside:function(w){w.props.showOnCreate&&!de&&(de=!0,L=null)},onShow:function(w){w.props.showOnCreate&&!de&&(de=!0,Se(w,j[0]))},onTrigger:function(w,Ge){Se(w,Ge.currentTarget)}}}},Z=ut(se(),Object.assign({},C(O,["overrides"]),{plugins:[Ie].concat(O.plugins||[]),triggerTarget:j,popperOptions:Object.assign({},O.popperOptions,{modifiers:[].concat(((I=O.popperOptions)==null?void 0:I.modifiers)||[],[ir])})})),pe=Z.show;Z.show=function(K){if(pe(),!L&&K==null)return Se(Z,j[0]);if(!(L&&K==null)){if(typeof K=="number")return j[K]&&Se(Z,j[K]);if(z.includes(K)){var ee=K.reference;return Se(Z,ee)}if(j.includes(K))return Se(Z,K)}},Z.showNext=function(){var K=j[0];if(!L)return Z.show(0);var ee=j.indexOf(L);Z.show(j[ee+1]||K)},Z.showPrevious=function(){var K=j[j.length-1];if(!L)return Z.show(K);var ee=j.indexOf(L),w=j[ee-1]||K;Z.show(w)};var he=Z.setProps;return Z.setProps=function(K){ge=K.overrides||ge,he(K)},Z.setInstances=function(K){Te(!0),oe.forEach(function(ee){return ee()}),z=K,Te(!1),me(),je(Z),Z.setProps({triggerTarget:j})},oe=je(Z),Z},ar={mouseover:"mouseenter",focusin:"focus",click:"click"};function Vt(g,y){Ht(!(y&&y.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" "));var O=[],I=[],z=!1,j=y.target,L=C(y,["target"]),ge=Object.assign({},L,{trigger:"manual",touch:!1}),oe=Object.assign({},L,{showOnCreate:!0}),de=ut(g,ge),me=U(de);function Te(pe){if(!(!pe.target||z)){var he=pe.target.closest(j);if(he){var K=he.getAttribute("data-tippy-trigger")||y.trigger||Ze.trigger;if(!he._tippy&&!(pe.type==="touchstart"&&typeof oe.touch=="boolean")&&!(pe.type!=="touchstart"&&K.indexOf(ar[pe.type])<0)){var ee=ut(he,oe);ee&&(I=I.concat(ee))}}}}function je(pe,he,K,ee){ee===void 0&&(ee=!1),pe.addEventListener(he,K,ee),O.push({node:pe,eventType:he,handler:K,options:ee})}function Se(pe){var he=pe.reference;je(he,"touchstart",Te,v),je(he,"mouseover",Te),je(he,"focusin",Te),je(he,"click",Te)}function Ie(){O.forEach(function(pe){var he=pe.node,K=pe.eventType,ee=pe.handler,w=pe.options;he.removeEventListener(K,ee,w)}),O=[]}function Z(pe){var he=pe.destroy,K=pe.enable,ee=pe.disable;pe.destroy=function(w){w===void 0&&(w=!0),w&&I.forEach(function(Ge){Ge.destroy()}),I=[],Ie(),he()},pe.enable=function(){K(),I.forEach(function(w){return w.enable()}),z=!1},pe.disable=function(){ee(),I.forEach(function(w){return w.disable()}),z=!0},Se(pe)}return me.forEach(Z),de}var sr={name:"animateFill",defaultValue:!1,fn:function(y){var O;if(!((O=y.props.render)!=null&&O.$$tippy))return Ht(y.props.animateFill,"The `animateFill` plugin requires the default render function."),{};var I=Wt(y.popper),z=I.box,j=I.content,L=y.props.animateFill?jr():null;return{onCreate:function(){L&&(z.insertBefore(L,z.firstElementChild),z.setAttribute("data-animatefill",""),z.style.overflow="hidden",y.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(L){var oe=z.style.transitionDuration,de=Number(oe.replace("ms",""));j.style.transitionDelay=Math.round(de/10)+"ms",L.style.transitionDuration=oe,d([L],"visible")}},onShow:function(){L&&(L.style.transitionDuration="0ms")},onHide:function(){L&&d([L],"hidden")}}}};function jr(){var g=se();return g.className=i,d([g],"hidden"),g}var mn={clientX:0,clientY:0},an=[];function bn(g){var y=g.clientX,O=g.clientY;mn={clientX:y,clientY:O}}function yn(g){g.addEventListener("mousemove",bn)}function Br(g){g.removeEventListener("mousemove",bn)}var Mn={name:"followCursor",defaultValue:!1,fn:function(y){var O=y.reference,I=h(y.props.triggerTarget||O),z=!1,j=!1,L=!0,ge=y.props;function oe(){return y.props.followCursor==="initial"&&y.state.isVisible}function de(){I.addEventListener("mousemove",je)}function me(){I.removeEventListener("mousemove",je)}function Te(){z=!0,y.setProps({getReferenceClientRect:null}),z=!1}function je(Z){var pe=Z.target?O.contains(Z.target):!0,he=y.props.followCursor,K=Z.clientX,ee=Z.clientY,w=O.getBoundingClientRect(),Ge=K-w.left,le=ee-w.top;(pe||!y.props.interactive)&&y.setProps({getReferenceClientRect:function(){var ht=O.getBoundingClientRect(),Ut=K,zt=ee;he==="initial"&&(Ut=ht.left+Ge,zt=ht.top+le);var Yt=he==="horizontal"?ht.top:zt,nt=he==="vertical"?ht.right:Ut,at=he==="horizontal"?ht.bottom:zt,vt=he==="vertical"?ht.left:Ut;return{width:nt-vt,height:at-Yt,top:Yt,right:nt,bottom:at,left:vt}}})}function Se(){y.props.followCursor&&(an.push({instance:y,doc:I}),yn(I))}function Ie(){an=an.filter(function(Z){return Z.instance!==y}),an.filter(function(Z){return Z.doc===I}).length===0&&Br(I)}return{onCreate:Se,onDestroy:Ie,onBeforeUpdate:function(){ge=y.props},onAfterUpdate:function(pe,he){var K=he.followCursor;z||K!==void 0&&ge.followCursor!==K&&(Ie(),K?(Se(),y.state.isMounted&&!j&&!oe()&&de()):(me(),Te()))},onMount:function(){y.props.followCursor&&!j&&(L&&(je(mn),L=!1),oe()||de())},onTrigger:function(pe,he){R(he)&&(mn={clientX:he.clientX,clientY:he.clientY}),j=he.type==="focus"},onHidden:function(){y.props.followCursor&&(Te(),me(),L=!0)}}}};function Hr(g,y){var O;return{popperOptions:Object.assign({},g.popperOptions,{modifiers:[].concat((((O=g.popperOptions)==null?void 0:O.modifiers)||[]).filter(function(I){var z=I.name;return z!==y.name}),[y])})}}var Rn={name:"inlinePositioning",defaultValue:!1,fn:function(y){var O=y.reference;function I(){return!!y.props.inlinePositioning}var z,j=-1,L=!1,ge={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(je){var Se=je.state;I()&&(z!==Se.placement&&y.setProps({getReferenceClientRect:function(){return oe(Se.placement)}}),z=Se.placement)}};function oe(Te){return $r(Q(Te),O.getBoundingClientRect(),q(O.getClientRects()),j)}function de(Te){L=!0,y.setProps(Te),L=!1}function me(){L||de(Hr(y.props,ge))}return{onCreate:me,onAfterUpdate:me,onTrigger:function(je,Se){if(R(Se)){var Ie=q(y.reference.getClientRects()),Z=Ie.find(function(pe){return pe.left-2<=Se.clientX&&pe.right+2>=Se.clientX&&pe.top-2<=Se.clientY&&pe.bottom+2>=Se.clientY});j=Ie.indexOf(Z)}},onUntrigger:function(){j=-1}}}};function $r(g,y,O,I){if(O.length<2||g===null)return y;if(O.length===2&&I>=0&&O[0].left>O[1].right)return O[I]||y;switch(g){case"top":case"bottom":{var z=O[0],j=O[O.length-1],L=g==="top",ge=z.top,oe=j.bottom,de=L?z.left:j.left,me=L?z.right:j.right,Te=me-de,je=oe-ge;return{top:ge,bottom:oe,left:de,right:me,width:Te,height:je}}case"left":case"right":{var Se=Math.min.apply(Math,O.map(function(le){return le.left})),Ie=Math.max.apply(Math,O.map(function(le){return le.right})),Z=O.filter(function(le){return g==="left"?le.left===Se:le.right===Ie}),pe=Z[0].top,he=Z[Z.length-1].bottom,K=Se,ee=Ie,w=ee-K,Ge=he-pe;return{top:pe,bottom:he,left:K,right:ee,width:w,height:Ge}}default:return y}}var Wr={name:"sticky",defaultValue:!1,fn:function(y){var O=y.reference,I=y.popper;function z(){return y.popperInstance?y.popperInstance.state.elements.reference:O}function j(de){return y.props.sticky===!0||y.props.sticky===de}var L=null,ge=null;function oe(){var de=j("reference")?z().getBoundingClientRect():null,me=j("popper")?I.getBoundingClientRect():null;(de&&In(L,de)||me&&In(ge,me))&&y.popperInstance&&y.popperInstance.update(),L=de,ge=me,y.state.isMounted&&requestAnimationFrame(oe)}return{onMount:function(){y.props.sticky&&oe()}}}};function In(g,y){return g&&y?g.top!==y.top||g.right!==y.right||g.bottom!==y.bottom||g.left!==y.left:!0}ut.setDefaultProps({render:tr}),e.animateFill=sr,e.createSingleton=or,e.default=ut,e.delegate=Vt,e.followCursor=Mn,e.hideAll=rr,e.inlinePositioning=Rn,e.roundArrow=n,e.sticky=Wr}),bi=To(Po()),rs=To(Po()),is=e=>{let t={plugins:[]},n=o=>e[e.indexOf(o)+1];if(e.includes("animation")&&(t.animation=n("animation")),e.includes("duration")&&(t.duration=parseInt(n("duration"))),e.includes("delay")){let o=n("delay");t.delay=o.includes("-")?o.split("-").map(i=>parseInt(i)):parseInt(o)}if(e.includes("cursor")){t.plugins.push(rs.followCursor);let o=n("cursor");["x","initial"].includes(o)?t.followCursor=o==="x"?"horizontal":"initial":t.followCursor=!0}e.includes("on")&&(t.trigger=n("on")),e.includes("arrowless")&&(t.arrow=!1),e.includes("html")&&(t.allowHTML=!0),e.includes("interactive")&&(t.interactive=!0),e.includes("border")&&t.interactive&&(t.interactiveBorder=parseInt(n("border"))),e.includes("debounce")&&t.interactive&&(t.interactiveDebounce=parseInt(n("debounce"))),e.includes("max-width")&&(t.maxWidth=parseInt(n("max-width"))),e.includes("theme")&&(t.theme=n("theme")),e.includes("placement")&&(t.placement=n("placement"));let r={};return e.includes("no-flip")&&(r.modifiers||(r.modifiers=[]),r.modifiers.push({name:"flip",enabled:!1})),t.popperOptions=r,t};function yi(e){e.magic("tooltip",t=>(n,r={})=>{let o=r.timeout;delete r.timeout;let i=(0,bi.default)(t,{content:n,trigger:"manual",...r});i.show(),setTimeout(()=>{i.hide(),setTimeout(()=>i.destroy(),r.duration||300)},o||2e3)}),e.directive("tooltip",(t,{modifiers:n,expression:r},{evaluateLater:o,effect:i})=>{let s=n.length>0?is(n):{};t.__x_tippy||(t.__x_tippy=(0,bi.default)(t,s));let c=()=>t.__x_tippy.enable(),v=()=>t.__x_tippy.disable(),p=x=>{x?(c(),t.__x_tippy.setContent(x)):v()};if(n.includes("raw"))p(r);else{let x=o(r);i(()=>{x(b=>{typeof b=="object"?(t.__x_tippy.setProps(b),c()):p(b)})})}})}yi.defaultProps=e=>(bi.default.setDefaultProps(e),yi);var os=yi,Mo=os;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(Qi),window.Alpine.plugin(Zi),window.Alpine.plugin(Do),window.Alpine.plugin(Mo)});var as=function(e,t,n){function r(x,b){for(let E of x){let _=o(E,b);if(_!==null)return _}}function o(x,b){let E=x.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s);if(E===null||E.length!==3)return null;let _=E[1],C=E[2];if(_.includes(",")){let[M,U]=_.split(",",2);if(U==="*"&&b>=M)return C;if(M==="*"&&b<=U)return C;if(b>=M&&b<=U)return C}return _==b?C:null}function i(x){return x.toString().charAt(0).toUpperCase()+x.toString().slice(1)}function s(x,b){if(b.length===0)return x;let E={};for(let[_,C]of Object.entries(b))E[":"+i(_??"")]=i(C??""),E[":"+_.toUpperCase()]=C.toString().toUpperCase(),E[":"+_]=C;return Object.entries(E).forEach(([_,C])=>{x=x.replaceAll(_,C)}),x}function c(x){return x.map(b=>b.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}let v=e.split("|"),p=r(v,t);return p!=null?s(p.trim(),n):(v=c(v),s(v.length>1&&t>1?v[1]:v[0],n))};window.jsMd5=Ro.md5;window.pluralize=as;})(); +/*! Bundled license information: + +js-md5/src/md5.js: + (** + * [js-md5]{@link https://github.com/emn178/js-md5} + * + * @namespace md5 + * @version 0.8.3 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2023 + * @license MIT + *) + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.2 + * @author RubaXa + * @author owenm + * @license MIT + *) +*/ diff --git a/public/js/filament/tables/components/table.js b/public/js/filament/tables/components/table.js new file mode 100644 index 000000000..c27c97235 --- /dev/null +++ b/public/js/filament/tables/components/table.js @@ -0,0 +1 @@ +function c(){return{collapsedGroups:[],isLoading:!1,selectedRecords:[],shouldCheckUniqueSelection:!0,init:function(){this.$wire.$on("deselectAllTableRecords",()=>this.deselectAllRecords()),this.$watch("selectedRecords",()=>{if(!this.shouldCheckUniqueSelection){this.shouldCheckUniqueSelection=!0;return}this.selectedRecords=[...new Set(this.selectedRecords)],this.shouldCheckUniqueSelection=!1})},mountBulkAction:function(e){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableBulkAction(e)},toggleSelectRecordsOnPage:function(){let e=this.getRecordsOnPage();if(this.areRecordsSelected(e)){this.deselectRecords(e);return}this.selectRecords(e)},toggleSelectRecordsInGroup:async function(e){if(this.isLoading=!0,this.areRecordsSelected(this.getRecordsInGroupOnPage(e))){this.deselectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e));return}this.selectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e)),this.isLoading=!1},getRecordsInGroupOnPage:function(e){let s=[];for(let t of this.$root.getElementsByClassName("fi-ta-record-checkbox"))t.dataset.group===e&&s.push(t.value);return s},getRecordsOnPage:function(){let e=[];for(let s of this.$root.getElementsByClassName("fi-ta-record-checkbox"))e.push(s.value);return e},selectRecords:function(e){for(let s of e)this.isRecordSelected(s)||this.selectedRecords.push(s)},deselectRecords:function(e){for(let s of e){let t=this.selectedRecords.indexOf(s);t!==-1&&this.selectedRecords.splice(t,1)}},selectAllRecords:async function(){this.isLoading=!0,this.selectedRecords=await this.$wire.getAllSelectableTableRecordKeys(),this.isLoading=!1},deselectAllRecords:function(){this.selectedRecords=[]},isRecordSelected:function(e){return this.selectedRecords.includes(e)},areRecordsSelected:function(e){return e.every(s=>this.isRecordSelected(s))},toggleCollapseGroup:function(e){if(this.isGroupCollapsed(e)){this.collapsedGroups.splice(this.collapsedGroups.indexOf(e),1);return}this.collapsedGroups.push(e)},isGroupCollapsed:function(e){return this.collapsedGroups.includes(e)},resetCollapsedGroups:function(){this.collapsedGroups=[]}}}export{c as default}; diff --git a/public/js/filament/widgets/components/chart.js b/public/js/filament/widgets/components/chart.js new file mode 100644 index 000000000..b0dab71e7 --- /dev/null +++ b/public/js/filament/widgets/components/chart.js @@ -0,0 +1,37 @@ +function Ft(){}var Mo=function(){let s=0;return function(){return s++}}();function R(s){return s===null||typeof s>"u"}function $(s){if(Array.isArray&&Array.isArray(s))return!0;let t=Object.prototype.toString.call(s);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function A(s){return s!==null&&Object.prototype.toString.call(s)==="[object Object]"}var K=s=>(typeof s=="number"||s instanceof Number)&&isFinite(+s);function mt(s,t){return K(s)?s:t}function I(s,t){return typeof s>"u"?t:s}var To=(s,t)=>typeof s=="string"&&s.endsWith("%")?parseFloat(s)/100:s/t,Tn=(s,t)=>typeof s=="string"&&s.endsWith("%")?parseFloat(s)/100*t:+s;function j(s,t,e){if(s&&typeof s.call=="function")return s.apply(e,t)}function H(s,t,e,i){let n,r,o;if($(s))if(r=s.length,i)for(n=r-1;n>=0;n--)t.call(e,s[n],n);else for(n=0;ns,x:s=>s.x,y:s=>s.y};function Bt(s,t){return(co[t]||(co[t]=Tc(t)))(s)}function Tc(s){let t=vc(s);return e=>{for(let i of t){if(i==="")break;e=e&&e[i]}return e}}function vc(s){let t=s.split("."),e=[],i="";for(let n of t)i+=n,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}function Mi(s){return s.charAt(0).toUpperCase()+s.slice(1)}var ft=s=>typeof s<"u",Ht=s=>typeof s=="function",vn=(s,t)=>{if(s.size!==t.size)return!1;for(let e of s)if(!t.has(e))return!1;return!0};function Oo(s){return s.type==="mouseup"||s.type==="click"||s.type==="contextmenu"}var Y=Math.PI,B=2*Y,Oc=B+Y,wi=Number.POSITIVE_INFINITY,Dc=Y/180,Z=Y/2,gs=Y/4,ho=Y*2/3,gt=Math.log10,Tt=Math.sign;function On(s){let t=Math.round(s);s=Ne(s,t,s/1e3)?t:s;let e=Math.pow(10,Math.floor(gt(s))),i=s/e;return(i<=1?1:i<=2?2:i<=5?5:10)*e}function Do(s){let t=[],e=Math.sqrt(s),i;for(i=1;in-r).pop(),t}function pe(s){return!isNaN(parseFloat(s))&&isFinite(s)}function Ne(s,t,e){return Math.abs(s-t)=s}function Dn(s,t,e){let i,n,r;for(i=0,n=s.length;il&&c=Math.min(t,e)-i&&s<=Math.max(t,e)+i}function vi(s,t,e){e=e||(o=>s[o]1;)r=n+i>>1,e(r)?n=r:i=r;return{lo:n,hi:i}}var Ct=(s,t,e,i)=>vi(s,e,i?n=>s[n][t]<=e:n=>s[n][t]vi(s,e,i=>s[i][t]>=e);function Fo(s,t,e){let i=0,n=s.length;for(;ii&&s[n-1]>e;)n--;return i>0||n{let i="_onData"+Mi(e),n=s[e];Object.defineProperty(s,e,{configurable:!0,enumerable:!1,value(...r){let o=n.apply(this,r);return s._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...r)}),o}})})}function Cn(s,t){let e=s._chartjs;if(!e)return;let i=e.listeners,n=i.indexOf(t);n!==-1&&i.splice(n,1),!(i.length>0)&&(Ao.forEach(r=>{delete s[r]}),delete s._chartjs)}function Fn(s){let t=new Set,e,i;for(e=0,i=s.length;e"u"?function(s){return s()}:window.requestAnimationFrame}();function Ln(s,t,e){let i=e||(o=>Array.prototype.slice.call(o)),n=!1,r=[];return function(...o){r=i(o),n||(n=!0,An.call(window,()=>{n=!1,s.apply(t,r)}))}}function Po(s,t){let e;return function(...i){return t?(clearTimeout(e),e=setTimeout(s,t,i)):s.apply(this,i),t}}var Oi=s=>s==="start"?"left":s==="end"?"right":"center",ot=(s,t,e)=>s==="start"?t:s==="end"?e:(t+e)/2,No=(s,t,e,i)=>s===(i?"left":"right")?e:s==="center"?(t+e)/2:t;function Pn(s,t,e){let i=t.length,n=0,r=i;if(s._sorted){let{iScale:o,_parsed:a}=s,l=o.axis,{min:c,max:h,minDefined:u,maxDefined:d}=o.getUserBounds();u&&(n=it(Math.min(Ct(a,o.axis,c).lo,e?i:Ct(t,l,o.getPixelForValue(c)).lo),0,i-1)),d?r=it(Math.max(Ct(a,o.axis,h,!0).hi+1,e?0:Ct(t,l,o.getPixelForValue(h),!0).hi+1),n,i)-n:r=i-n}return{start:n,count:r}}function Nn(s){let{xScale:t,yScale:e,_scaleRanges:i}=s,n={xmin:t.min,xmax:t.max,ymin:e.min,ymax:e.max};if(!i)return s._scaleRanges=n,!0;let r=i.xmin!==t.min||i.xmax!==t.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,n),r}var gi=s=>s===0||s===1,uo=(s,t,e)=>-(Math.pow(2,10*(s-=1))*Math.sin((s-t)*B/e)),fo=(s,t,e)=>Math.pow(2,-10*s)*Math.sin((s-t)*B/e)+1,Ie={linear:s=>s,easeInQuad:s=>s*s,easeOutQuad:s=>-s*(s-2),easeInOutQuad:s=>(s/=.5)<1?.5*s*s:-.5*(--s*(s-2)-1),easeInCubic:s=>s*s*s,easeOutCubic:s=>(s-=1)*s*s+1,easeInOutCubic:s=>(s/=.5)<1?.5*s*s*s:.5*((s-=2)*s*s+2),easeInQuart:s=>s*s*s*s,easeOutQuart:s=>-((s-=1)*s*s*s-1),easeInOutQuart:s=>(s/=.5)<1?.5*s*s*s*s:-.5*((s-=2)*s*s*s-2),easeInQuint:s=>s*s*s*s*s,easeOutQuint:s=>(s-=1)*s*s*s*s+1,easeInOutQuint:s=>(s/=.5)<1?.5*s*s*s*s*s:.5*((s-=2)*s*s*s*s+2),easeInSine:s=>-Math.cos(s*Z)+1,easeOutSine:s=>Math.sin(s*Z),easeInOutSine:s=>-.5*(Math.cos(Y*s)-1),easeInExpo:s=>s===0?0:Math.pow(2,10*(s-1)),easeOutExpo:s=>s===1?1:-Math.pow(2,-10*s)+1,easeInOutExpo:s=>gi(s)?s:s<.5?.5*Math.pow(2,10*(s*2-1)):.5*(-Math.pow(2,-10*(s*2-1))+2),easeInCirc:s=>s>=1?s:-(Math.sqrt(1-s*s)-1),easeOutCirc:s=>Math.sqrt(1-(s-=1)*s),easeInOutCirc:s=>(s/=.5)<1?-.5*(Math.sqrt(1-s*s)-1):.5*(Math.sqrt(1-(s-=2)*s)+1),easeInElastic:s=>gi(s)?s:uo(s,.075,.3),easeOutElastic:s=>gi(s)?s:fo(s,.075,.3),easeInOutElastic(s){return gi(s)?s:s<.5?.5*uo(s*2,.1125,.45):.5+.5*fo(s*2-1,.1125,.45)},easeInBack(s){return s*s*((1.70158+1)*s-1.70158)},easeOutBack(s){return(s-=1)*s*((1.70158+1)*s+1.70158)+1},easeInOutBack(s){let t=1.70158;return(s/=.5)<1?.5*(s*s*(((t*=1.525)+1)*s-t)):.5*((s-=2)*s*(((t*=1.525)+1)*s+t)+2)},easeInBounce:s=>1-Ie.easeOutBounce(1-s),easeOutBounce(s){return s<1/2.75?7.5625*s*s:s<2/2.75?7.5625*(s-=1.5/2.75)*s+.75:s<2.5/2.75?7.5625*(s-=2.25/2.75)*s+.9375:7.5625*(s-=2.625/2.75)*s+.984375},easeInOutBounce:s=>s<.5?Ie.easeInBounce(s*2)*.5:Ie.easeOutBounce(s*2-1)*.5+.5};function _s(s){return s+.5|0}var Kt=(s,t,e)=>Math.max(Math.min(s,e),t);function ps(s){return Kt(_s(s*2.55),0,255)}function Jt(s){return Kt(_s(s*255),0,255)}function Vt(s){return Kt(_s(s/2.55)/100,0,1)}function mo(s){return Kt(_s(s*100),0,100)}var _t={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},kn=[..."0123456789ABCDEF"],Ic=s=>kn[s&15],Cc=s=>kn[(s&240)>>4]+kn[s&15],pi=s=>(s&240)>>4===(s&15),Fc=s=>pi(s.r)&&pi(s.g)&&pi(s.b)&&pi(s.a);function Ac(s){var t=s.length,e;return s[0]==="#"&&(t===4||t===5?e={r:255&_t[s[1]]*17,g:255&_t[s[2]]*17,b:255&_t[s[3]]*17,a:t===5?_t[s[4]]*17:255}:(t===7||t===9)&&(e={r:_t[s[1]]<<4|_t[s[2]],g:_t[s[3]]<<4|_t[s[4]],b:_t[s[5]]<<4|_t[s[6]],a:t===9?_t[s[7]]<<4|_t[s[8]]:255})),e}var Lc=(s,t)=>s<255?t(s):"";function Pc(s){var t=Fc(s)?Ic:Cc;return s?"#"+t(s.r)+t(s.g)+t(s.b)+Lc(s.a,t):void 0}var Nc=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Ro(s,t,e){let i=t*Math.min(e,1-e),n=(r,o=(r+s/30)%12)=>e-i*Math.max(Math.min(o-3,9-o,1),-1);return[n(0),n(8),n(4)]}function Rc(s,t,e){let i=(n,r=(n+s/60)%6)=>e-e*t*Math.max(Math.min(r,4-r,1),0);return[i(5),i(3),i(1)]}function Wc(s,t,e){let i=Ro(s,1,.5),n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)i[n]*=1-t-e,i[n]+=t;return i}function zc(s,t,e,i,n){return s===n?(t-e)/i+(t.5?h/(2-r-o):h/(r+o),l=zc(e,i,n,h,r),l=l*60+.5),[l|0,c||0,a]}function Wn(s,t,e,i){return(Array.isArray(t)?s(t[0],t[1],t[2]):s(t,e,i)).map(Jt)}function zn(s,t,e){return Wn(Ro,s,t,e)}function Vc(s,t,e){return Wn(Wc,s,t,e)}function Hc(s,t,e){return Wn(Rc,s,t,e)}function Wo(s){return(s%360+360)%360}function Bc(s){let t=Nc.exec(s),e=255,i;if(!t)return;t[5]!==i&&(e=t[6]?ps(+t[5]):Jt(+t[5]));let n=Wo(+t[2]),r=+t[3]/100,o=+t[4]/100;return t[1]==="hwb"?i=Vc(n,r,o):t[1]==="hsv"?i=Hc(n,r,o):i=zn(n,r,o),{r:i[0],g:i[1],b:i[2],a:e}}function $c(s,t){var e=Rn(s);e[0]=Wo(e[0]+t),e=zn(e),s.r=e[0],s.g=e[1],s.b=e[2]}function jc(s){if(!s)return;let t=Rn(s),e=t[0],i=mo(t[1]),n=mo(t[2]);return s.a<255?`hsla(${e}, ${i}%, ${n}%, ${Vt(s.a)})`:`hsl(${e}, ${i}%, ${n}%)`}var go={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},po={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Uc(){let s={},t=Object.keys(po),e=Object.keys(go),i,n,r,o,a;for(i=0;i>16&255,r>>8&255,r&255]}return s}var yi;function Yc(s){yi||(yi=Uc(),yi.transparent=[0,0,0,0]);let t=yi[s.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var Zc=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function qc(s){let t=Zc.exec(s),e=255,i,n,r;if(t){if(t[7]!==i){let o=+t[7];e=t[8]?ps(o):Kt(o*255,0,255)}return i=+t[1],n=+t[3],r=+t[5],i=255&(t[2]?ps(i):Kt(i,0,255)),n=255&(t[4]?ps(n):Kt(n,0,255)),r=255&(t[6]?ps(r):Kt(r,0,255)),{r:i,g:n,b:r,a:e}}}function Gc(s){return s&&(s.a<255?`rgba(${s.r}, ${s.g}, ${s.b}, ${Vt(s.a)})`:`rgb(${s.r}, ${s.g}, ${s.b})`)}var xn=s=>s<=.0031308?s*12.92:Math.pow(s,1/2.4)*1.055-.055,Ee=s=>s<=.04045?s/12.92:Math.pow((s+.055)/1.055,2.4);function Xc(s,t,e){let i=Ee(Vt(s.r)),n=Ee(Vt(s.g)),r=Ee(Vt(s.b));return{r:Jt(xn(i+e*(Ee(Vt(t.r))-i))),g:Jt(xn(n+e*(Ee(Vt(t.g))-n))),b:Jt(xn(r+e*(Ee(Vt(t.b))-r))),a:s.a+e*(t.a-s.a)}}function bi(s,t,e){if(s){let i=Rn(s);i[t]=Math.max(0,Math.min(i[t]+i[t]*e,t===0?360:1)),i=zn(i),s.r=i[0],s.g=i[1],s.b=i[2]}}function zo(s,t){return s&&Object.assign(t||{},s)}function yo(s){var t={r:0,g:0,b:0,a:255};return Array.isArray(s)?s.length>=3&&(t={r:s[0],g:s[1],b:s[2],a:255},s.length>3&&(t.a=Jt(s[3]))):(t=zo(s,{r:0,g:0,b:0,a:1}),t.a=Jt(t.a)),t}function Kc(s){return s.charAt(0)==="r"?qc(s):Bc(s)}var Fe=class{constructor(t){if(t instanceof Fe)return t;let e=typeof t,i;e==="object"?i=yo(t):e==="string"&&(i=Ac(t)||Yc(t)||Kc(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=zo(this._rgb);return t&&(t.a=Vt(t.a)),t}set rgb(t){this._rgb=yo(t)}rgbString(){return this._valid?Gc(this._rgb):void 0}hexString(){return this._valid?Pc(this._rgb):void 0}hslString(){return this._valid?jc(this._rgb):void 0}mix(t,e){if(t){let i=this.rgb,n=t.rgb,r,o=e===r?.5:e,a=2*o-1,l=i.a-n.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;r=1-c,i.r=255&c*i.r+r*n.r+.5,i.g=255&c*i.g+r*n.g+.5,i.b=255&c*i.b+r*n.b+.5,i.a=o*i.a+(1-o)*n.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=Xc(this._rgb,t._rgb,e)),this}clone(){return new Fe(this.rgb)}alpha(t){return this._rgb.a=Jt(t),this}clearer(t){let e=this._rgb;return e.a*=1-t,this}greyscale(){let t=this._rgb,e=_s(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=e,this}opaquer(t){let e=this._rgb;return e.a*=1+t,this}negate(){let t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return bi(this._rgb,2,t),this}darken(t){return bi(this._rgb,2,-t),this}saturate(t){return bi(this._rgb,1,t),this}desaturate(t){return bi(this._rgb,1,-t),this}rotate(t){return $c(this._rgb,t),this}};function Vo(s){return new Fe(s)}function Ho(s){if(s&&typeof s=="object"){let t=s.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function Vn(s){return Ho(s)?s:Vo(s)}function _n(s){return Ho(s)?s:Vo(s).saturate(.5).darken(.1).hexString()}var Qt=Object.create(null),Di=Object.create(null);function ys(s,t){if(!t)return s;let e=t.split(".");for(let i=0,n=e.length;ie.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,i)=>_n(i.backgroundColor),this.hoverBorderColor=(e,i)=>_n(i.borderColor),this.hoverColor=(e,i)=>_n(i.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return wn(this,t,e)}get(t){return ys(this,t)}describe(t,e){return wn(Di,t,e)}override(t,e){return wn(Qt,t,e)}route(t,e,i,n){let r=ys(this,t),o=ys(this,i),a="_"+e;Object.defineProperties(r,{[a]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){let l=this[a],c=o[n];return A(l)?Object.assign({},c,l):I(l,c)},set(l){this[a]=l}}})}},L=new Mn({_scriptable:s=>!s.startsWith("on"),_indexable:s=>s!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function Jc(s){return!s||R(s.size)||R(s.family)?null:(s.style?s.style+" ":"")+(s.weight?s.weight+" ":"")+s.size+"px "+s.family}function bs(s,t,e,i,n){let r=t[n];return r||(r=t[n]=s.measureText(n).width,e.push(n)),r>i&&(i=r),i}function Bo(s,t,e,i){i=i||{};let n=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(n=i.data={},r=i.garbageCollect=[],i.font=t),s.save(),s.font=t;let o=0,a=e.length,l,c,h,u,d;for(l=0;le.length){for(l=0;l0&&s.stroke()}}function Ae(s,t,e){return e=e||.5,!t||s&&s.x>t.left-e&&s.xt.top-e&&s.y0&&r.strokeColor!=="",l,c;for(s.save(),s.font=n.string,Qc(s,r),l=0;l+s||0;function Ii(s,t){let e={},i=A(t),n=i?Object.keys(t):t,r=A(s)?i?o=>I(s[o],s[t[o]]):o=>s[o]:()=>s;for(let o of n)e[o]=nh(r(o));return e}function $n(s){return Ii(s,{top:"y",right:"x",bottom:"y",left:"x"})}function se(s){return Ii(s,["topLeft","topRight","bottomLeft","bottomRight"])}function at(s){let t=$n(s);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function et(s,t){s=s||{},t=t||L.font;let e=I(s.size,t.size);typeof e=="string"&&(e=parseInt(e,10));let i=I(s.style,t.style);i&&!(""+i).match(sh)&&(console.warn('Invalid font style specified: "'+i+'"'),i="");let n={family:I(s.family,t.family),lineHeight:ih(I(s.lineHeight,t.lineHeight),e),size:e,style:i,weight:I(s.weight,t.weight),string:""};return n.string=Jc(n),n}function ze(s,t,e,i){let n=!0,r,o,a;for(r=0,o=s.length;re&&a===0?0:a+l;return{min:o(i,-Math.abs(r)),max:o(n,r)}}function $t(s,t){return Object.assign(Object.create(s),t)}function Ci(s,t=[""],e=s,i,n=()=>s[0]){ft(i)||(i=qo("_fallback",s));let r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:s,_rootScopes:e,_fallback:i,_getTarget:n,override:o=>Ci([o,...s],t,e,i)};return new Proxy(r,{deleteProperty(o,a){return delete o[a],delete o._keys,delete s[0][a],!0},get(o,a){return Yo(o,a,()=>dh(a,t,s,o))},getOwnPropertyDescriptor(o,a){return Reflect.getOwnPropertyDescriptor(o._scopes[0],a)},getPrototypeOf(){return Reflect.getPrototypeOf(s[0])},has(o,a){return xo(o).includes(a)},ownKeys(o){return xo(o)},set(o,a,l){let c=o._storage||(o._storage=n());return o[a]=c[a]=l,delete o._keys,!0}})}function ge(s,t,e,i){let n={_cacheable:!1,_proxy:s,_context:t,_subProxy:e,_stack:new Set,_descriptors:jn(s,i),setContext:r=>ge(s,r,e,i),override:r=>ge(s.override(r),t,e,i)};return new Proxy(n,{deleteProperty(r,o){return delete r[o],delete s[o],!0},get(r,o,a){return Yo(r,o,()=>oh(r,o,a))},getOwnPropertyDescriptor(r,o){return r._descriptors.allKeys?Reflect.has(s,o)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(s,o)},getPrototypeOf(){return Reflect.getPrototypeOf(s)},has(r,o){return Reflect.has(s,o)},ownKeys(){return Reflect.ownKeys(s)},set(r,o,a){return s[o]=a,delete r[o],!0}})}function jn(s,t={scriptable:!0,indexable:!0}){let{_scriptable:e=t.scriptable,_indexable:i=t.indexable,_allKeys:n=t.allKeys}=s;return{allKeys:n,scriptable:e,indexable:i,isScriptable:Ht(e)?e:()=>e,isIndexable:Ht(i)?i:()=>i}}var rh=(s,t)=>s?s+Mi(t):t,Un=(s,t)=>A(t)&&s!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Yo(s,t,e){if(Object.prototype.hasOwnProperty.call(s,t))return s[t];let i=e();return s[t]=i,i}function oh(s,t,e){let{_proxy:i,_context:n,_subProxy:r,_descriptors:o}=s,a=i[t];return Ht(a)&&o.isScriptable(t)&&(a=ah(t,a,s,e)),$(a)&&a.length&&(a=lh(t,a,s,o.isIndexable)),Un(t,a)&&(a=ge(a,n,r&&r[t],o)),a}function ah(s,t,e,i){let{_proxy:n,_context:r,_subProxy:o,_stack:a}=e;if(a.has(s))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+s);return a.add(s),t=t(r,o||i),a.delete(s),Un(s,t)&&(t=Yn(n._scopes,n,s,t)),t}function lh(s,t,e,i){let{_proxy:n,_context:r,_subProxy:o,_descriptors:a}=e;if(ft(r.index)&&i(s))t=t[r.index%t.length];else if(A(t[0])){let l=t,c=n._scopes.filter(h=>h!==l);t=[];for(let h of l){let u=Yn(c,n,s,h);t.push(ge(u,r,o&&o[s],a))}}return t}function Zo(s,t,e){return Ht(s)?s(t,e):s}var ch=(s,t)=>s===!0?t:typeof s=="string"?Bt(t,s):void 0;function hh(s,t,e,i,n){for(let r of t){let o=ch(e,r);if(o){s.add(o);let a=Zo(o._fallback,e,n);if(ft(a)&&a!==e&&a!==i)return a}else if(o===!1&&ft(i)&&e!==i)return null}return!1}function Yn(s,t,e,i){let n=t._rootScopes,r=Zo(t._fallback,e,i),o=[...s,...n],a=new Set;a.add(i);let l=bo(a,o,e,r||e,i);return l===null||ft(r)&&r!==e&&(l=bo(a,o,r,l,i),l===null)?!1:Ci(Array.from(a),[""],n,r,()=>uh(t,e,i))}function bo(s,t,e,i,n){for(;e;)e=hh(s,t,e,i,n);return e}function uh(s,t,e){let i=s._getTarget();t in i||(i[t]={});let n=i[t];return $(n)&&A(e)?e:n}function dh(s,t,e,i){let n;for(let r of t)if(n=qo(rh(r,s),e),ft(n))return Un(s,n)?Yn(e,i,s,n):n}function qo(s,t){for(let e of t){if(!e)continue;let i=e[s];if(ft(i))return i}}function xo(s){let t=s._keys;return t||(t=s._keys=fh(s._scopes)),t}function fh(s){let t=new Set;for(let e of s)for(let i of Object.keys(e).filter(n=>!n.startsWith("_")))t.add(i);return Array.from(t)}function Zn(s,t,e,i){let{iScale:n}=s,{key:r="r"}=this._parsing,o=new Array(i),a,l,c,h;for(a=0,l=i;ats==="x"?"y":"x";function gh(s,t,e,i){let n=s.skip?t:s,r=t,o=e.skip?t:e,a=Si(r,n),l=Si(o,r),c=a/(a+l),h=l/(a+l);c=isNaN(c)?0:c,h=isNaN(h)?0:h;let u=i*c,d=i*h;return{previous:{x:r.x-u*(o.x-n.x),y:r.y-u*(o.y-n.y)},next:{x:r.x+d*(o.x-n.x),y:r.y+d*(o.y-n.y)}}}function ph(s,t,e){let i=s.length,n,r,o,a,l,c=Le(s,0);for(let h=0;h!c.skip)),t.cubicInterpolationMode==="monotone")bh(s,n);else{let c=i?s[s.length-1]:s[0];for(r=0,o=s.length;rwindow.getComputedStyle(s,null);function _h(s,t){return Ai(s).getPropertyValue(t)}var wh=["top","right","bottom","left"];function me(s,t,e){let i={};e=e?"-"+e:"";for(let n=0;n<4;n++){let r=wh[n];i[r]=parseFloat(s[t+"-"+r+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}var Sh=(s,t,e)=>(s>0||t>0)&&(!e||!e.shadowRoot);function kh(s,t){let e=s.touches,i=e&&e.length?e[0]:s,{offsetX:n,offsetY:r}=i,o=!1,a,l;if(Sh(n,r,s.target))a=n,l=r;else{let c=t.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,o=!0}return{x:a,y:l,box:o}}function ie(s,t){if("native"in s)return s;let{canvas:e,currentDevicePixelRatio:i}=t,n=Ai(e),r=n.boxSizing==="border-box",o=me(n,"padding"),a=me(n,"border","width"),{x:l,y:c,box:h}=kh(s,e),u=o.left+(h&&a.left),d=o.top+(h&&a.top),{width:f,height:m}=t;return r&&(f-=o.width+a.width,m-=o.height+a.height),{x:Math.round((l-u)/f*e.width/i),y:Math.round((c-d)/m*e.height/i)}}function Mh(s,t,e){let i,n;if(t===void 0||e===void 0){let r=Fi(s);if(!r)t=s.clientWidth,e=s.clientHeight;else{let o=r.getBoundingClientRect(),a=Ai(r),l=me(a,"border","width"),c=me(a,"padding");t=o.width-c.width-l.width,e=o.height-c.height-l.height,i=ki(a.maxWidth,r,"clientWidth"),n=ki(a.maxHeight,r,"clientHeight")}}return{width:t,height:e,maxWidth:i||wi,maxHeight:n||wi}}var Sn=s=>Math.round(s*10)/10;function Ko(s,t,e,i){let n=Ai(s),r=me(n,"margin"),o=ki(n.maxWidth,s,"clientWidth")||wi,a=ki(n.maxHeight,s,"clientHeight")||wi,l=Mh(s,t,e),{width:c,height:h}=l;if(n.boxSizing==="content-box"){let u=me(n,"border","width"),d=me(n,"padding");c-=d.width+u.width,h-=d.height+u.height}return c=Math.max(0,c-r.width),h=Math.max(0,i?Math.floor(c/i):h-r.height),c=Sn(Math.min(c,o,l.maxWidth)),h=Sn(Math.min(h,a,l.maxHeight)),c&&!h&&(h=Sn(c/2)),{width:c,height:h}}function Gn(s,t,e){let i=t||1,n=Math.floor(s.height*i),r=Math.floor(s.width*i);s.height=n/i,s.width=r/i;let o=s.canvas;return o.style&&(e||!o.style.height&&!o.style.width)&&(o.style.height=`${s.height}px`,o.style.width=`${s.width}px`),s.currentDevicePixelRatio!==i||o.height!==n||o.width!==r?(s.currentDevicePixelRatio=i,o.height=n,o.width=r,s.ctx.setTransform(i,0,0,i,0,0),!0):!1}var Jo=function(){let s=!1;try{let t={get passive(){return s=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return s}();function Xn(s,t){let e=_h(s,t),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Xt(s,t,e,i){return{x:s.x+e*(t.x-s.x),y:s.y+e*(t.y-s.y)}}function Qo(s,t,e,i){return{x:s.x+e*(t.x-s.x),y:i==="middle"?e<.5?s.y:t.y:i==="after"?e<1?s.y:t.y:e>0?t.y:s.y}}function ta(s,t,e,i){let n={x:s.cp2x,y:s.cp2y},r={x:t.cp1x,y:t.cp1y},o=Xt(s,n,e),a=Xt(n,r,e),l=Xt(r,t,e),c=Xt(o,a,e),h=Xt(a,l,e);return Xt(c,h,e)}var _o=new Map;function Th(s,t){t=t||{};let e=s+JSON.stringify(t),i=_o.get(e);return i||(i=new Intl.NumberFormat(s,t),_o.set(e,i)),i}function Ve(s,t,e){return Th(t,e).format(s)}var vh=function(s,t){return{x(e){return s+s+t-e},setWidth(e){t=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,i){return e-i},leftForLtr(e,i){return e-i}}},Oh=function(){return{x(s){return s},setWidth(s){},textAlign(s){return s},xPlus(s,t){return s+t},leftForLtr(s,t){return s}}};function ye(s,t,e){return s?vh(t,e):Oh()}function Kn(s,t){let e,i;(t==="ltr"||t==="rtl")&&(e=s.canvas.style,i=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",t,"important"),s.prevTextDirection=i)}function Jn(s,t){t!==void 0&&(delete s.prevTextDirection,s.canvas.style.setProperty("direction",t[0],t[1]))}function ea(s){return s==="angle"?{between:Re,compare:Ec,normalize:ht}:{between:At,compare:(t,e)=>t-e,normalize:t=>t}}function wo({start:s,end:t,count:e,loop:i,style:n}){return{start:s%e,end:t%e,loop:i&&(t-s+1)%e===0,style:n}}function Dh(s,t,e){let{property:i,start:n,end:r}=e,{between:o,normalize:a}=ea(i),l=t.length,{start:c,end:h,loop:u}=s,d,f;if(u){for(c+=l,h+=l,d=0,f=l;dl(n,_,y)&&a(n,_)!==0,x=()=>a(r,y)===0||l(r,_,y),S=()=>g||w(),k=()=>!g||x();for(let O=h,T=h;O<=u;++O)b=t[O%o],!b.skip&&(y=c(b[i]),y!==_&&(g=l(y,n,r),p===null&&S()&&(p=a(y,n)===0?O:T),p!==null&&k()&&(m.push(wo({start:p,end:O,loop:d,count:o,style:f})),p=null),T=O,_=y));return p!==null&&m.push(wo({start:p,end:u,loop:d,count:o,style:f})),m}function tr(s,t){let e=[],i=s.segments;for(let n=0;nn&&s[r%t].skip;)r--;return r%=t,{start:n,end:r}}function Ih(s,t,e,i){let n=s.length,r=[],o=t,a=s[t],l;for(l=t+1;l<=e;++l){let c=s[l%n];c.skip||c.stop?a.skip||(i=!1,r.push({start:t%n,end:(l-1)%n,loop:i}),t=o=c.stop?l:null):(o=l,a.skip&&(t=l)),a=c}return o!==null&&r.push({start:t%n,end:o%n,loop:i}),r}function sa(s,t){let e=s.points,i=s.options.spanGaps,n=e.length;if(!n)return[];let r=!!s._loop,{start:o,end:a}=Eh(e,n,r,i);if(i===!0)return So(s,[{start:o,end:a,loop:r}],e,t);let l=aa({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=An.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((i,n)=>{if(!i.running||!i.items.length)return;let r=i.items,o=r.length-1,a=!1,l;for(;o>=0;--o)l=r[o],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(t),a=!0):(r[o]=r[r.length-1],r.pop());a&&(n.draw(),this._notify(n,i,t,"progress")),r.length||(i.running=!1,this._notify(n,i,t,"complete"),i.initial=!1),e+=r.length}),this._lastDate=t,e===0&&(this._running=!1)}_getAnims(t){let e=this._charts,i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){!e||!e.length||this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){let e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,n)=>Math.max(i,n._duration),0),this._refresh())}running(t){if(!this._running)return!1;let e=this._charts.get(t);return!(!e||!e.running||!e.items.length)}stop(t){let e=this._charts.get(t);if(!e||!e.items.length)return;let i=e.items,n=i.length-1;for(;n>=0;--n)i[n].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}},jt=new hr,ia="transparent",Ah={boolean(s,t,e){return e>.5?t:s},color(s,t,e){let i=Vn(s||ia),n=i.valid&&Vn(t||ia);return n&&n.valid?n.mix(i,e).hexString():t},number(s,t,e){return s+(t-s)*e}},ur=class{constructor(t,e,i,n){let r=e[i];n=ze([t.to,n,r,t.from]);let o=ze([t.from,r,n]);this._active=!0,this._fn=t.fn||Ah[t.type||typeof o],this._easing=Ie[t.easing]||Ie.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=n,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);let n=this._target[this._prop],r=i-this._start,o=this._duration-r;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=r,this._loop=!!t.loop,this._to=ze([t.to,e,n,t.from]),this._from=ze([t.from,n,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){let e=t-this._start,i=this._duration,n=this._prop,r=this._from,o=this._loop,a=this._to,l;if(this._active=r!==a&&(o||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[n]=this._fn(r,a,l)}wait(){let t=this._promises||(this._promises=[]);return new Promise((e,i)=>{t.push({res:e,rej:i})})}_notify(t){let e=t?"res":"rej",i=this._promises||[];for(let n=0;ns!=="onProgress"&&s!=="onComplete"&&s!=="fn"});L.set("animations",{colors:{type:"color",properties:Ph},numbers:{type:"number",properties:Lh}});L.describe("animations",{_fallback:"animation"});L.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:s=>s|0}}}});var Hi=class{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!A(t))return;let e=this._properties;Object.getOwnPropertyNames(t).forEach(i=>{let n=t[i];if(!A(n))return;let r={};for(let o of Nh)r[o]=n[o];($(n.properties)&&n.properties||[i]).forEach(o=>{(o===i||!e.has(o))&&e.set(o,r)})})}_animateOptions(t,e){let i=e.options,n=Wh(t,i);if(!n)return[];let r=this._createAnimations(n,i);return i.$shared&&Rh(t.options.$animations,i).then(()=>{t.options=i},()=>{}),r}_createAnimations(t,e){let i=this._properties,n=[],r=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now(),l;for(l=o.length-1;l>=0;--l){let c=o[l];if(c.charAt(0)==="$")continue;if(c==="options"){n.push(...this._animateOptions(t,e));continue}let h=e[c],u=r[c],d=i.get(c);if(u)if(d&&u.active()){u.update(d,h,a);continue}else u.cancel();if(!d||!d.duration){t[c]=h;continue}r[c]=u=new ur(d,t,c,h),n.push(u)}return n}update(t,e){if(this._properties.size===0){Object.assign(t,e);return}let i=this._createAnimations(t,e);if(i.length)return jt.add(this._chart,i),!0}};function Rh(s,t){let e=[],i=Object.keys(t);for(let n=0;n0||!e&&r<0)return n.index}return null}function la(s,t){let{chart:e,_cachedMeta:i}=s,n=e._stacks||(e._stacks={}),{iScale:r,vScale:o,index:a}=i,l=r.axis,c=o.axis,h=Bh(r,o,i),u=t.length,d;for(let f=0;fe[i].axis===t).shift()}function Uh(s,t){return $t(s,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function Yh(s,t,e){return $t(s,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:e,index:t,mode:"default",type:"data"})}function ks(s,t){let e=s.controller.index,i=s.vScale&&s.vScale.axis;if(i){t=t||s._parsed;for(let n of t){let r=n._stacks;if(!r||r[i]===void 0||r[i][e]===void 0)return;delete r[i][e]}}}var sr=s=>s==="reset"||s==="none",ca=(s,t)=>t?s:Object.assign({},s),Zh=(s,t,e)=>s&&!t.hidden&&t._stacked&&{keys:qa(e,!0),values:null},pt=class{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){let t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=oa(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&ks(this._cachedMeta),this.index=t}linkScales(){let t=this.chart,e=this._cachedMeta,i=this.getDataset(),n=(u,d,f,m)=>u==="x"?d:u==="r"?m:f,r=e.xAxisID=I(i.xAxisID,er(t,"x")),o=e.yAxisID=I(i.yAxisID,er(t,"y")),a=e.rAxisID=I(i.rAxisID,er(t,"r")),l=e.indexAxis,c=e.iAxisID=n(l,r,o,a),h=e.vAxisID=n(l,o,r,a);e.xScale=this.getScaleForId(r),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(c),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){let e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){let t=this._cachedMeta;this._data&&Cn(this._data,this),t._stacked&&ks(t)}_dataCheck(){let t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(A(e))this._data=Hh(e);else if(i!==e){if(i){Cn(i,this);let n=this._cachedMeta;ks(n),n._parsed=[]}e&&Object.isExtensible(e)&&Lo(e,this),this._syncList=[],this._data=e}}addElements(){let t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){let e=this._cachedMeta,i=this.getDataset(),n=!1;this._dataCheck();let r=e._stacked;e._stacked=oa(e.vScale,e),e.stack!==i.stack&&(n=!0,ks(e),e.stack=i.stack),this._resyncElements(t),(n||r!==e._stacked)&&la(this,e._parsed)}configure(){let t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){let{_cachedMeta:i,_data:n}=this,{iScale:r,_stacked:o}=i,a=r.axis,l=t===0&&e===n.length?!0:i._sorted,c=t>0&&i._parsed[t-1],h,u,d;if(this._parsing===!1)i._parsed=n,i._sorted=!0,d=n;else{$(n[t])?d=this.parseArrayData(i,n,t,e):A(n[t])?d=this.parseObjectData(i,n,t,e):d=this.parsePrimitiveData(i,n,t,e);let f=()=>u[a]===null||c&&u[a]g||u=0;--d)if(!m()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){let e=this._cachedMeta._parsed,i=[],n,r,o;for(n=0,r=e.length;n=0&&tthis.getContext(i,n),g=c.resolveNamedOptions(d,f,m,u);return g.$shared&&(g.$shared=l,r[o]=Object.freeze(ca(g,l))),g}_resolveAnimations(t,e,i){let n=this.chart,r=this._cachedDataOpts,o=`animation-${e}`,a=r[o];if(a)return a;let l;if(n.options.animation!==!1){let h=this.chart.config,u=h.datasetAnimationScopeKeys(this._type,e),d=h.getOptionScopes(this.getDataset(),u);l=h.createResolver(d,this.getContext(t,i,e))}let c=new Hi(n,l&&l.animations);return l&&l._cacheable&&(r[o]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||sr(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){let i=this.resolveDataElementOptions(t,e),n=this._sharedOptions,r=this.getSharedOptions(i),o=this.includeOptions(e,r)||r!==n;return this.updateSharedOptions(r,e,i),{sharedOptions:r,includeOptions:o}}updateElement(t,e,i,n){sr(n)?Object.assign(t,i):this._resolveAnimations(e,n).update(t,i)}updateSharedOptions(t,e,i){t&&!sr(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,n){t.active=n;let r=this.getStyle(e,n);this._resolveAnimations(e,i,n).update(t,{options:!n&&this.getSharedOptions(r)||r})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){let e=this._data,i=this._cachedMeta.data;for(let[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];let n=i.length,r=e.length,o=Math.min(r,n);o&&this.parse(0,o),r>n?this._insertElements(n,r-n,t):r{for(c.length+=e,a=c.length-1;a>=o;a--)c[a]=c[a-e]};for(l(r),a=t;an-r))}return s._cache.$bar}function Gh(s){let t=s.iScale,e=qh(t,s.type),i=t._length,n,r,o,a,l=()=>{o===32767||o===-32768||(ft(a)&&(i=Math.min(i,Math.abs(o-a)||i)),a=o)};for(n=0,r=e.length;n0?n[s-1]:null,a=sMath.abs(a)&&(l=a,c=o),t[e.axis]=c,t._custom={barStart:l,barEnd:c,start:n,end:r,min:o,max:a}}function Ga(s,t,e,i){return $(s)?Jh(s,t,e,i):t[e.axis]=e.parse(s,i),t}function ha(s,t,e,i){let n=s.iScale,r=s.vScale,o=n.getLabels(),a=n===r,l=[],c,h,u,d;for(c=e,h=e+i;c=e?1:-1)}function tu(s){let t,e,i,n,r;return s.horizontal?(t=s.base>s.x,e="left",i="right"):(t=s.basel.controller.options.grouped),r=i.options.stacked,o=[],a=l=>{let c=l.controller.getParsed(e),h=c&&c[l.vScale.axis];if(R(h)||isNaN(h))return!0};for(let l of n)if(!(e!==void 0&&a(l))&&((r===!1||o.indexOf(l.stack)===-1||r===void 0&&l.stack===void 0)&&o.push(l.stack),l.index===t))break;return o.length||o.push(void 0),o}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){let n=this._getStacks(t,i),r=e!==void 0?n.indexOf(e):-1;return r===-1?n.length-1:r}_getRuler(){let t=this.options,e=this._cachedMeta,i=e.iScale,n=[],r,o;for(r=0,o=e.data.length;r=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){let e=this._cachedMeta,{xScale:i,yScale:n}=e,r=this.getParsed(t),o=i.getLabelForValue(r.x),a=n.getLabelForValue(r.y),l=r._custom;return{label:e.label,value:"("+o+", "+a+(l?", "+l:"")+")"}}update(t){let e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,n){let r=n==="reset",{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:l,includeOptions:c}=this._getSharedOptions(e,n),h=o.axis,u=a.axis;for(let d=e;dRe(_,a,l,!0)?1:Math.max(w,w*e,x,x*e),m=(_,w,x)=>Re(_,a,l,!0)?-1:Math.min(w,w*e,x,x*e),g=f(0,c,u),p=f(Z,h,d),y=m(Y,c,u),b=m(Y+Z,h,d);i=(g-y)/2,n=(p-b)/2,r=-(g+y)/2,o=-(p+b)/2}return{ratioX:i,ratioY:n,offsetX:r,offsetY:o}}var oe=class extends pt{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){let i=this.getDataset().data,n=this._cachedMeta;if(this._parsing===!1)n._parsed=i;else{let r=l=>+i[l];if(A(i[t])){let{key:l="value"}=this._parsing;r=c=>+Bt(i[c],l)}let o,a;for(o=t,a=t+e;o0&&!isNaN(t)?B*(Math.abs(t)/e):0}getLabelAndValue(t){let e=this._cachedMeta,i=this.chart,n=i.data.labels||[],r=Ve(e._parsed[t],i.options.locale);return{label:n[t]||"",value:r}}getMaxBorderWidth(t){let e=0,i=this.chart,n,r,o,a,l;if(!t){for(n=0,r=i.data.datasets.length;ns!=="spacing",_indexable:s=>s!=="spacing"};oe.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){let t=s.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=s.legend.options;return t.labels.map((i,n)=>{let o=s.getDatasetMeta(0).controller.getStyle(n);return{text:i,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,pointStyle:e,hidden:!s.getDataVisibility(n),index:n}})}return[]}},onClick(s,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(s){let t=s.label,e=": "+s.formattedValue;return $(t)?(t=t.slice(),t[0]+=e):t+=e,t}}}}};var Ue=class extends pt{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){let e=this._cachedMeta,{dataset:i,data:n=[],_dataset:r}=e,o=this.chart._animationsDisabled,{start:a,count:l}=Pn(e,n,o);this._drawStart=a,this._drawCount=l,Nn(e)&&(a=0,l=n.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!r._decimated,i.points=n;let c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:c},t),this.updateElements(n,a,l,t)}updateElements(t,e,i,n){let r=n==="reset",{iScale:o,vScale:a,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:h,includeOptions:u}=this._getSharedOptions(e,n),d=o.axis,f=a.axis,{spanGaps:m,segment:g}=this.options,p=pe(m)?m:Number.POSITIVE_INFINITY,y=this.chart._animationsDisabled||r||n==="none",b=e>0&&this.getParsed(e-1);for(let _=e;_0&&Math.abs(x[d]-b[d])>p,g&&(S.parsed=x,S.raw=c.data[_]),u&&(S.options=h||this.resolveDataElementOptions(_,w.active?"active":n)),y||this.updateElement(w,_,S,n),b=x}}getMaxOverflow(){let t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return i;let r=n[0].size(this.resolveDataElementOptions(0)),o=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(i,r,o)/2}draw(){let t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}};Ue.id="line";Ue.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};Ue.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};var Ye=class extends pt{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){let e=this._cachedMeta,i=this.chart,n=i.data.labels||[],r=Ve(e._parsed[t].r,i.options.locale);return{label:n[t]||"",value:r}}parseObjectData(t,e,i,n){return Zn.bind(this)(t,e,i,n)}update(t){let e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){let t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((i,n)=>{let r=this.getParsed(n).r;!isNaN(r)&&this.chart.getDataVisibility(n)&&(re.max&&(e.max=r))}),e}_updateRadius(){let t=this.chart,e=t.chartArea,i=t.options,n=Math.min(e.right-e.left,e.bottom-e.top),r=Math.max(n/2,0),o=Math.max(i.cutoutPercentage?r/100*i.cutoutPercentage:1,0),a=(r-o)/t.getVisibleDatasetCount();this.outerRadius=r-a*this.index,this.innerRadius=this.outerRadius-a}updateElements(t,e,i,n){let r=n==="reset",o=this.chart,l=o.options.animation,c=this._cachedMeta.rScale,h=c.xCenter,u=c.yCenter,d=c.getIndexAngle(0)-.5*Y,f=d,m,g=360/this.countVisibleElements();for(m=0;m{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&e++}),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?wt(this.resolveDataElementOptions(t,e).angle||i):0}};Ye.id="polarArea";Ye.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};Ye.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){let t=s.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=s.legend.options;return t.labels.map((i,n)=>{let o=s.getDatasetMeta(0).controller.getStyle(n);return{text:i,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,pointStyle:e,hidden:!s.getDataVisibility(n),index:n}})}return[]}},onClick(s,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(s){return s.chart.data.labels[s.dataIndex]+": "+s.formattedValue}}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};var Is=class extends oe{};Is.id="pie";Is.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};var Ze=class extends pt{getLabelAndValue(t){let e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,n){return Zn.bind(this)(t,e,i,n)}update(t){let e=this._cachedMeta,i=e.dataset,n=e.data||[],r=e.iScale.getLabels();if(i.points=n,t!=="resize"){let o=this.resolveDatasetElementOptions(t);this.options.showLine||(o.borderWidth=0);let a={_loop:!0,_fullLoop:r.length===n.length,options:o};this.updateElement(i,void 0,a,t)}this.updateElements(n,0,n.length,t)}updateElements(t,e,i,n){let r=this._cachedMeta.rScale,o=n==="reset";for(let a=e;a{n[r]=i[r]&&i[r].active()?i[r]._to:this[r]}),n}};yt.defaults={};yt.defaultRoutes=void 0;var Xa={values(s){return $(s)?s:""+s},numeric(s,t,e){if(s===0)return"0";let i=this.chart.options.locale,n,r=s;if(e.length>1){let c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(n="scientific"),r=ru(s,e)}let o=gt(Math.abs(r)),a=Math.max(Math.min(-1*Math.floor(o),20),0),l={notation:n,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Ve(s,i,l)},logarithmic(s,t,e){if(s===0)return"0";let i=s/Math.pow(10,Math.floor(gt(s)));return i===1||i===2||i===5?Xa.numeric.call(this,s,t,e):""}};function ru(s,t){let e=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(e)>=1&&s!==Math.floor(s)&&(e=s-Math.floor(s)),e}var Zi={formatters:Xa};L.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(s,t)=>t.lineWidth,tickColor:(s,t)=>t.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Zi.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}});L.route("scale.ticks","color","","color");L.route("scale.grid","color","","borderColor");L.route("scale.grid","borderColor","","borderColor");L.route("scale.title","color","","color");L.describe("scale",{_fallback:!1,_scriptable:s=>!s.startsWith("before")&&!s.startsWith("after")&&s!=="callback"&&s!=="parser",_indexable:s=>s!=="borderDash"&&s!=="tickBorderDash"});L.describe("scales",{_fallback:"scale"});L.describe("scale.ticks",{_scriptable:s=>s!=="backdropPadding"&&s!=="callback",_indexable:s=>s!=="backdropPadding"});function ou(s,t){let e=s.options.ticks,i=e.maxTicksLimit||au(s),n=e.major.enabled?cu(t):[],r=n.length,o=n[0],a=n[r-1],l=[];if(r>i)return hu(t,l,n,r/i),l;let c=lu(n,t,i);if(r>0){let h,u,d=r>1?Math.round((a-o)/(r-1)):null;for(Li(t,l,c,R(d)?0:o-d,o),h=0,u=r-1;hn)return l}return Math.max(n,1)}function cu(s){let t=[],e,i;for(e=0,i=s.length;es==="left"?"right":s==="right"?"left":s,fa=(s,t,e)=>t==="top"||t==="left"?s[t]+e:s[t]-e;function ma(s,t){let e=[],i=s.length/t,n=s.length,r=0;for(;ro+a)))return l}function mu(s,t){H(s,e=>{let i=e.gc,n=i.length/2,r;if(n>t){for(r=0;ri?i:e,i=n&&e>i?e:i,{min:mt(e,mt(i,e)),max:mt(i,mt(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){j(this.options.beforeUpdate,[this])}update(t,e,i){let{beginAtZero:n,grace:r,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Uo(this,r,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let l=a=r||i<=1||!this.isHorizontal()){this.labelRotation=n;return}let h=this._getLabelSizes(),u=h.widest.width,d=h.highest.height,f=it(this.chart.width-u,0,this.maxWidth);a=t.offset?this.maxWidth/i:f/(i-1),u+6>a&&(a=f/(i-(t.offset?.5:1)),l=this.maxHeight-Ms(t.grid)-e.padding-ga(t.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),o=Ti(Math.min(Math.asin(it((h.highest.height+6)/a,-1,1)),Math.asin(it(l/c,-1,1))-Math.asin(it(d/c,-1,1)))),o=Math.max(n,Math.min(r,o))),this.labelRotation=o}afterCalculateLabelRotation(){j(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){j(this.options.beforeFit,[this])}fit(){let t={width:0,height:0},{chart:e,options:{ticks:i,title:n,grid:r}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){let l=ga(n,e.options.font);if(a?(t.width=this.maxWidth,t.height=Ms(r)+l):(t.height=this.maxHeight,t.width=Ms(r)+l),i.display&&this.ticks.length){let{first:c,last:h,widest:u,highest:d}=this._getLabelSizes(),f=i.padding*2,m=wt(this.labelRotation),g=Math.cos(m),p=Math.sin(m);if(a){let y=i.mirror?0:p*u.width+g*d.height;t.height=Math.min(this.maxHeight,t.height+y+f)}else{let y=i.mirror?0:g*u.width+p*d.height;t.width=Math.min(this.maxWidth,t.width+y+f)}this._calculatePadding(c,h,p,g)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,n){let{ticks:{align:r,padding:o},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){let h=this.getPixelForTick(0)-this.left,u=this.right-this.getPixelForTick(this.ticks.length-1),d=0,f=0;l?c?(d=n*t.width,f=i*e.height):(d=i*t.height,f=n*e.width):r==="start"?f=e.width:r==="end"?d=t.width:r!=="inner"&&(d=t.width/2,f=e.width/2),this.paddingLeft=Math.max((d-h+o)*this.width/(this.width-h),0),this.paddingRight=Math.max((f-u+o)*this.width/(this.width-u),0)}else{let h=e.height/2,u=t.height/2;r==="start"?(h=0,u=t.height):r==="end"&&(h=e.height,u=0),this.paddingTop=h+o,this.paddingBottom=u+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){j(this.options.afterFit,[this])}isHorizontal(){let{axis:t,position:e}=this.options;return e==="top"||e==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let e,i;for(e=0,i=t.length;e({width:r[k]||0,height:o[k]||0});return{first:S(0),last:S(e-1),widest:S(w),highest:S(x),widths:r,heights:o}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){let e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);let e=this._startPixel+t*this._length;return Io(this._alignToPixels?te(this.chart,e,0):e)}getDecimalForPixel(t){let e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){let e=this.ticks||[];if(t>=0&&ta*n?a/i:l/n:l*n0}_computeGridLineItems(t){let e=this.axis,i=this.chart,n=this.options,{grid:r,position:o}=n,a=r.offset,l=this.isHorizontal(),h=this.ticks.length+(a?1:0),u=Ms(r),d=[],f=r.setContext(this.getContext()),m=f.drawBorder?f.borderWidth:0,g=m/2,p=function(E){return te(i,E,m)},y,b,_,w,x,S,k,O,T,F,W,P;if(o==="top")y=p(this.bottom),S=this.bottom-u,O=y-g,F=p(t.top)+g,P=t.bottom;else if(o==="bottom")y=p(this.top),F=t.top,P=p(t.bottom)-g,S=y+g,O=this.top+u;else if(o==="left")y=p(this.right),x=this.right-u,k=y-g,T=p(t.left)+g,W=t.right;else if(o==="right")y=p(this.left),T=t.left,W=p(t.right)-g,x=y+g,k=this.left+u;else if(e==="x"){if(o==="center")y=p((t.top+t.bottom)/2+.5);else if(A(o)){let E=Object.keys(o)[0],tt=o[E];y=p(this.chart.scales[E].getPixelForValue(tt))}F=t.top,P=t.bottom,S=y+g,O=S+u}else if(e==="y"){if(o==="center")y=p((t.left+t.right)/2);else if(A(o)){let E=Object.keys(o)[0],tt=o[E];y=p(this.chart.scales[E].getPixelForValue(tt))}x=y-g,k=x-u,T=t.left,W=t.right}let Q=I(n.ticks.maxTicksLimit,h),ct=Math.max(1,Math.ceil(h/Q));for(b=0;br.value===t);return n>=0?e.setContext(this.getContext(n)).lineWidth:0}drawGrid(t){let e=this.options.grid,i=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t)),r,o,a=(l,c,h)=>{!h.width||!h.color||(i.save(),i.lineWidth=h.width,i.strokeStyle=h.color,i.setLineDash(h.borderDash||[]),i.lineDashOffset=h.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(e.display)for(r=0,o=n.length;r{this.draw(n)}}]:[{z:i,draw:n=>{this.drawBackground(),this.drawGrid(n),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:n=>{this.drawLabels(n)}}]}getMatchingVisibleMetas(t){let e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",n=[],r,o;for(r=0,o=e.length;r{let i=e.split("."),n=i.pop(),r=[s].concat(i).join("."),o=t[e].split("."),a=o.pop(),l=o.join(".");L.route(r,n,l,a)})}function wu(s){return"id"in s&&"defaults"in s}var dr=class{constructor(){this.controllers=new Be(pt,"datasets",!0),this.elements=new Be(yt,"elements"),this.plugins=new Be(Object,"plugins"),this.scales=new Be(Yt,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach(n=>{let r=i||this._getRegistryForType(n);i||r.isForType(n)||r===this.plugins&&n.id?this._exec(t,r,n):H(n,o=>{let a=i||this._getRegistryForType(o);this._exec(t,a,o)})})}_exec(t,e,i){let n=Mi(t);j(i["before"+n],[],i),e[t](i),j(i["after"+n],[],i)}_getRegistryForType(t){for(let e=0;e0&&this.getParsed(e-1);for(let w=e;w0&&Math.abs(S[f]-_[f])>y,p&&(k.parsed=S,k.raw=c.data[w]),d&&(k.options=u||this.resolveDataElementOptions(w,x.active?"active":n)),b||this.updateElement(x,w,k,n),_=S}this.updateSharedOptions(u,n,h)}getMaxOverflow(){let t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let a=0;for(let l=e.length-1;l>=0;--l)a=Math.max(a,e[l].size(this.resolveDataElementOptions(l))/2);return a>0&&a}let i=t.dataset,n=i.options&&i.options.borderWidth||0;if(!e.length)return n;let r=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(n,r,o)/2}};qe.id="scatter";qe.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};qe.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title(){return""},label(s){return"("+s.label+", "+s.formattedValue+")"}}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var Su=Object.freeze({__proto__:null,BarController:$e,BubbleController:je,DoughnutController:oe,LineController:Ue,PolarAreaController:Ye,PieController:Is,RadarController:Ze,ScatterController:qe});function be(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}var Cs=class{constructor(t){this.options=t||{}}init(t){}formats(){return be()}parse(t,e){return be()}format(t,e){return be()}add(t,e,i){return be()}diff(t,e,i){return be()}startOf(t,e,i){return be()}endOf(t,e){return be()}};Cs.override=function(s){Object.assign(Cs.prototype,s)};var kr={_date:Cs};function ku(s,t,e,i){let{controller:n,data:r,_sorted:o}=s,a=n._cachedMeta.iScale;if(a&&t===a.axis&&t!=="r"&&o&&r.length){let l=a._reversePixels?Co:Ct;if(i){if(n._sharedOptions){let c=r[0],h=typeof c.getRange=="function"&&c.getRange(t);if(h){let u=l(r,t,e-h),d=l(r,t,e+h);return{lo:u.lo,hi:d.hi}}}}else return l(r,t,e)}return{lo:0,hi:r.length-1}}function Ws(s,t,e,i,n){let r=s.getSortedVisibleDatasetMetas(),o=e[t];for(let a=0,l=r.length;a{l[o](t[e],n)&&(r.push({element:l,datasetIndex:c,index:h}),a=a||l.inRange(t.x,t.y,n))}),i&&!a?[]:r}var Ou={evaluateInteractionItems:Ws,modes:{index(s,t,e,i){let n=ie(t,s),r=e.axis||"x",o=e.includeInvisible||!1,a=e.intersect?nr(s,n,r,i,o):rr(s,n,r,!1,i,o),l=[];return a.length?(s.getSortedVisibleDatasetMetas().forEach(c=>{let h=a[0].index,u=c.data[h];u&&!u.skip&&l.push({element:u,datasetIndex:c.index,index:h})}),l):[]},dataset(s,t,e,i){let n=ie(t,s),r=e.axis||"xy",o=e.includeInvisible||!1,a=e.intersect?nr(s,n,r,i,o):rr(s,n,r,!1,i,o);if(a.length>0){let l=a[0].datasetIndex,c=s.getDatasetMeta(l).data;a=[];for(let h=0;he.pos===t)}function ya(s,t){return s.filter(e=>Ka.indexOf(e.pos)===-1&&e.box.axis===t)}function vs(s,t){return s.sort((e,i)=>{let n=t?i:e,r=t?e:i;return n.weight===r.weight?n.index-r.index:n.weight-r.weight})}function Du(s){let t=[],e,i,n,r,o,a;for(e=0,i=(s||[]).length;ec.box.fullSize),!0),i=vs(Ts(t,"left"),!0),n=vs(Ts(t,"right")),r=vs(Ts(t,"top"),!0),o=vs(Ts(t,"bottom")),a=ya(t,"x"),l=ya(t,"y");return{fullSize:e,leftAndTop:i.concat(r),rightAndBottom:n.concat(l).concat(o).concat(a),chartArea:Ts(t,"chartArea"),vertical:i.concat(n).concat(l),horizontal:r.concat(o).concat(a)}}function ba(s,t,e,i){return Math.max(s[e],t[e])+Math.max(s[i],t[i])}function Ja(s,t){s.top=Math.max(s.top,t.top),s.left=Math.max(s.left,t.left),s.bottom=Math.max(s.bottom,t.bottom),s.right=Math.max(s.right,t.right)}function Fu(s,t,e,i){let{pos:n,box:r}=e,o=s.maxPadding;if(!A(n)){e.size&&(s[n]-=e.size);let u=i[e.stack]||{size:0,count:1};u.size=Math.max(u.size,e.horizontal?r.height:r.width),e.size=u.size/u.count,s[n]+=e.size}r.getPadding&&Ja(o,r.getPadding());let a=Math.max(0,t.outerWidth-ba(o,s,"left","right")),l=Math.max(0,t.outerHeight-ba(o,s,"top","bottom")),c=a!==s.w,h=l!==s.h;return s.w=a,s.h=l,e.horizontal?{same:c,other:h}:{same:h,other:c}}function Au(s){let t=s.maxPadding;function e(i){let n=Math.max(t[i]-s[i],0);return s[i]+=n,n}s.y+=e("top"),s.x+=e("left"),e("right"),e("bottom")}function Lu(s,t){let e=t.maxPadding;function i(n){let r={left:0,top:0,right:0,bottom:0};return n.forEach(o=>{r[o]=Math.max(t[o],e[o])}),r}return i(s?["left","right"]:["top","bottom"])}function Ds(s,t,e,i){let n=[],r,o,a,l,c,h;for(r=0,o=s.length,c=0;r{typeof g.beforeLayout=="function"&&g.beforeLayout()});let h=l.reduce((g,p)=>p.box.options&&p.box.options.display===!1?g:g+1,0)||1,u=Object.freeze({outerWidth:t,outerHeight:e,padding:n,availableWidth:r,availableHeight:o,vBoxMaxWidth:r/2/h,hBoxMaxHeight:o/2}),d=Object.assign({},n);Ja(d,at(i));let f=Object.assign({maxPadding:d,w:r,h:o,x:n.left,y:n.top},n),m=Iu(l.concat(c),u);Ds(a.fullSize,f,u,m),Ds(l,f,u,m),Ds(c,f,u,m)&&Ds(l,f,u,m),Au(f),xa(a.leftAndTop,f,u,m),f.x+=f.w,f.y+=f.h,xa(a.rightAndBottom,f,u,m),s.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},H(a.chartArea,g=>{let p=g.box;Object.assign(p,s.chartArea),p.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}},Bi=class{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,n){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,n?Math.floor(e/n):i)}}isAttached(t){return!0}updateConfig(t){}},fr=class extends Bi{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}},Vi="$chartjs",Pu={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},_a=s=>s===null||s==="";function Nu(s,t){let e=s.style,i=s.getAttribute("height"),n=s.getAttribute("width");if(s[Vi]={initial:{height:i,width:n,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",_a(n)){let r=Xn(s,"width");r!==void 0&&(s.width=r)}if(_a(i))if(s.style.height==="")s.height=s.width/(t||2);else{let r=Xn(s,"height");r!==void 0&&(s.height=r)}return s}var Qa=Jo?{passive:!0}:!1;function Ru(s,t,e){s.addEventListener(t,e,Qa)}function Wu(s,t,e){s.canvas.removeEventListener(t,e,Qa)}function zu(s,t){let e=Pu[s.type]||s.type,{x:i,y:n}=ie(s,t);return{type:e,chart:t,native:s,x:i!==void 0?i:null,y:n!==void 0?n:null}}function $i(s,t){for(let e of s)if(e===t||e.contains(t))return!0}function Vu(s,t,e){let i=s.canvas,n=new MutationObserver(r=>{let o=!1;for(let a of r)o=o||$i(a.addedNodes,i),o=o&&!$i(a.removedNodes,i);o&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}function Hu(s,t,e){let i=s.canvas,n=new MutationObserver(r=>{let o=!1;for(let a of r)o=o||$i(a.removedNodes,i),o=o&&!$i(a.addedNodes,i);o&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}var Fs=new Map,wa=0;function tl(){let s=window.devicePixelRatio;s!==wa&&(wa=s,Fs.forEach((t,e)=>{e.currentDevicePixelRatio!==s&&t()}))}function Bu(s,t){Fs.size||window.addEventListener("resize",tl),Fs.set(s,t)}function $u(s){Fs.delete(s),Fs.size||window.removeEventListener("resize",tl)}function ju(s,t,e){let i=s.canvas,n=i&&Fi(i);if(!n)return;let r=Ln((a,l)=>{let c=n.clientWidth;e(a,l),c{let l=a[0],c=l.contentRect.width,h=l.contentRect.height;c===0&&h===0||r(c,h)});return o.observe(n),Bu(s,r),o}function or(s,t,e){e&&e.disconnect(),t==="resize"&&$u(s)}function Uu(s,t,e){let i=s.canvas,n=Ln(r=>{s.ctx!==null&&e(zu(r,s))},s,r=>{let o=r[0];return[o,o.offsetX,o.offsetY]});return Ru(i,t,n),n}var mr=class extends Bi{acquireContext(t,e){let i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(Nu(t,e),i):null}releaseContext(t){let e=t.canvas;if(!e[Vi])return!1;let i=e[Vi].initial;["height","width"].forEach(r=>{let o=i[r];R(o)?e.removeAttribute(r):e.setAttribute(r,o)});let n=i.style||{};return Object.keys(n).forEach(r=>{e.style[r]=n[r]}),e.width=e.width,delete e[Vi],!0}addEventListener(t,e,i){this.removeEventListener(t,e);let n=t.$proxies||(t.$proxies={}),o={attach:Vu,detach:Hu,resize:ju}[e]||Uu;n[e]=o(t,e,i)}removeEventListener(t,e){let i=t.$proxies||(t.$proxies={}),n=i[e];if(!n)return;({attach:or,detach:or,resize:or}[e]||Wu)(t,e,n),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,n){return Ko(t,e,i,n)}isAttached(t){let e=Fi(t);return!!(e&&e.isConnected)}};function Yu(s){return!qn()||typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas?fr:mr}var gr=class{constructor(){this._init=[]}notify(t,e,i,n){e==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));let r=n?this._descriptors(t).filter(n):this._descriptors(t),o=this._notify(r,t,e,i);return e==="afterDestroy"&&(this._notify(r,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,n){n=n||{};for(let r of t){let o=r.plugin,a=o[i],l=[e,n,r.options];if(j(a,l,o)===!1&&n.cancelable)return!1}return!0}invalidate(){R(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;let e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){let i=t&&t.config,n=I(i.options&&i.options.plugins,{}),r=Zu(i);return n===!1&&!e?[]:Gu(t,r,n,e)}_notifyStateChanges(t){let e=this._oldCache||[],i=this._cache,n=(r,o)=>r.filter(a=>!o.some(l=>a.plugin.id===l.plugin.id));this._notify(n(e,i),t,"stop"),this._notify(n(i,e),t,"start")}};function Zu(s){let t={},e=[],i=Object.keys(Pt.plugins.items);for(let r=0;r{let l=i[a];if(!A(l))return console.error(`Invalid scale configuration for scale: ${a}`);if(l._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${a}`);let c=yr(a,l),h=Ju(c,n),u=e.scales||{};r[c]=r[c]||a,o[a]=Pe(Object.create(null),[{axis:c},l,u[c],u[h]])}),s.data.datasets.forEach(a=>{let l=a.type||s.type,c=a.indexAxis||pr(l,t),u=(Qt[l]||{}).scales||{};Object.keys(u).forEach(d=>{let f=Ku(d,c),m=a[f+"AxisID"]||r[f]||f;o[m]=o[m]||Object.create(null),Pe(o[m],[{axis:f},i[m],u[d]])})}),Object.keys(o).forEach(a=>{let l=o[a];Pe(l,[L.scales[l.type],L.scale])}),o}function el(s){let t=s.options||(s.options={});t.plugins=I(t.plugins,{}),t.scales=td(s,t)}function sl(s){return s=s||{},s.datasets=s.datasets||[],s.labels=s.labels||[],s}function ed(s){return s=s||{},s.data=sl(s.data),el(s),s}var Sa=new Map,il=new Set;function Ni(s,t){let e=Sa.get(s);return e||(e=t(),Sa.set(s,e),il.add(e)),e}var Os=(s,t,e)=>{let i=Bt(t,e);i!==void 0&&s.add(i)},br=class{constructor(t){this._config=ed(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=sl(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){let t=this._config;this.clearCache(),el(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Ni(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return Ni(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return Ni(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){let e=t.id,i=this.type;return Ni(`${i}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){let i=this._scopeCache,n=i.get(t);return(!n||e)&&(n=new Map,i.set(t,n)),n}getOptionScopes(t,e,i){let{options:n,type:r}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;let l=new Set;e.forEach(h=>{t&&(l.add(t),h.forEach(u=>Os(l,t,u))),h.forEach(u=>Os(l,n,u)),h.forEach(u=>Os(l,Qt[r]||{},u)),h.forEach(u=>Os(l,L,u)),h.forEach(u=>Os(l,Di,u))});let c=Array.from(l);return c.length===0&&c.push(Object.create(null)),il.has(e)&&o.set(e,c),c}chartOptionScopes(){let{options:t,type:e}=this;return[t,Qt[e]||{},L.datasets[e]||{},{type:e},L,Di]}resolveNamedOptions(t,e,i,n=[""]){let r={$shared:!0},{resolver:o,subPrefixes:a}=ka(this._resolverCache,t,n),l=o;if(id(o,e)){r.$shared=!1,i=Ht(i)?i():i;let c=this.createResolver(t,i,a);l=ge(o,i,c)}for(let c of e)r[c]=l[c];return r}createResolver(t,e,i=[""],n){let{resolver:r}=ka(this._resolverCache,t,i);return A(e)?ge(r,e,void 0,n):r}};function ka(s,t,e){let i=s.get(t);i||(i=new Map,s.set(t,i));let n=e.join(),r=i.get(n);return r||(r={resolver:Ci(t,e),subPrefixes:e.filter(a=>!a.toLowerCase().includes("hover"))},i.set(n,r)),r}var sd=s=>A(s)&&Object.getOwnPropertyNames(s).reduce((t,e)=>t||Ht(s[e]),!1);function id(s,t){let{isScriptable:e,isIndexable:i}=jn(s);for(let n of t){let r=e(n),o=i(n),a=(o||r)&&s[n];if(r&&(Ht(a)||sd(a))||o&&$(a))return!0}return!1}var nd="3.9.1",rd=["top","bottom","left","right","chartArea"];function Ma(s,t){return s==="top"||s==="bottom"||rd.indexOf(s)===-1&&t==="x"}function Ta(s,t){return function(e,i){return e[s]===i[s]?e[t]-i[t]:e[s]-i[s]}}function va(s){let t=s.chart,e=t.options.animation;t.notifyPlugins("afterRender"),j(e&&e.onComplete,[s],t)}function od(s){let t=s.chart,e=t.options.animation;j(e&&e.onProgress,[s],t)}function nl(s){return qn()&&typeof s=="string"?s=document.getElementById(s):s&&s.length&&(s=s[0]),s&&s.canvas&&(s=s.canvas),s}var ji={},rl=s=>{let t=nl(s);return Object.values(ji).filter(e=>e.canvas===t).pop()};function ad(s,t,e){let i=Object.keys(s);for(let n of i){let r=+n;if(r>=t){let o=s[n];delete s[n],(e>0||r>t)&&(s[r+e]=o)}}}function ld(s,t,e,i){return!e||s.type==="mouseout"?null:i?t:s}var xe=class{constructor(t,e){let i=this.config=new br(e),n=nl(t),r=rl(n);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas with ID '"+r.canvas.id+"' can be reused.");let o=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Yu(n)),this.platform.updateConfig(i);let a=this.platform.acquireContext(n,o.aspectRatio),l=a&&a.canvas,c=l&&l.height,h=l&&l.width;if(this.id=Mo(),this.ctx=a,this.canvas=l,this.width=h,this.height=c,this._options=o,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new gr,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Po(u=>this.update(u),o.resizeDelay||0),this._dataChanges=[],ji[this.id]=this,!a||!l){console.error("Failed to create chart: can't acquire context from the given item");return}jt.listen(this,"complete",va),jt.listen(this,"progress",od),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:r}=this;return R(t)?e&&r?r:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Gn(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Hn(this.canvas,this.ctx),this}stop(){return jt.stop(this),this}resize(t,e){jt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){let i=this.options,n=this.canvas,r=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(n,t,e,r),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,Gn(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),j(i.onResize,[this,o],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){let e=this.options.scales||{};H(e,(i,n)=>{i.id=n})}buildOrUpdateScales(){let t=this.options,e=t.scales,i=this.scales,n=Object.keys(i).reduce((o,a)=>(o[a]=!1,o),{}),r=[];e&&(r=r.concat(Object.keys(e).map(o=>{let a=e[o],l=yr(o,a),c=l==="r",h=l==="x";return{options:a,dposition:c?"chartArea":h?"bottom":"left",dtype:c?"radialLinear":h?"category":"linear"}}))),H(r,o=>{let a=o.options,l=a.id,c=yr(l,a),h=I(a.type,o.dtype);(a.position===void 0||Ma(a.position,c)!==Ma(o.dposition))&&(a.position=o.dposition),n[l]=!0;let u=null;if(l in i&&i[l].type===h)u=i[l];else{let d=Pt.getScale(h);u=new d({id:l,type:h,ctx:this.ctx,chart:this}),i[u.id]=u}u.init(a,t)}),H(n,(o,a)=>{o||delete i[a]}),H(i,o=>{lt.configure(this,o,o.options),lt.addBox(this,o)})}_updateMetasets(){let t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort((n,r)=>n.index-r.index),i>e){for(let n=e;ne.length&&delete this._stacks,t.forEach((i,n)=>{e.filter(r=>r===i._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let t=[],e=this.data.datasets,i,n;for(this._removeUnreferencedMetasets(),i=0,n=e.length;i{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){let e=this.config;e.update();let i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;let r=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let c=0,h=this.data.datasets.length;c{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Ta("z","_idx"));let{_active:a,_lastEvent:l}=this;l?this._eventHandler(l,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){H(this.scales,t=>{lt.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(!vn(e,i)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(let{method:i,start:n,count:r}of e){let o=i==="_removeElements"?-r:r;ad(t,n,o)}}_getUniformDataChanges(){let t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];let e=this.data.datasets.length,i=r=>new Set(t.filter(o=>o[0]===r).map((o,a)=>a+","+o.splice(1).join(","))),n=i(0);for(let r=1;rr.split(",")).map(r=>({method:r[1],start:+r[2],count:+r[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;lt.update(this,this.width,this.height,t);let e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],H(this.boxes,n=>{i&&n.position==="chartArea"||(n.configure&&n.configure(),this._layers.push(...n._layers()))},this),this._layers.forEach((n,r)=>{n._idx=r}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,i=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){let e=this.ctx,i=t._clip,n=!i.disabled,r=this.chartArea,o={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",o)!==!1&&(n&&ws(e,{left:i.left===!1?0:r.left-i.left,right:i.right===!1?this.width:r.right+i.right,top:i.top===!1?0:r.top-i.top,bottom:i.bottom===!1?this.height:r.bottom+i.bottom}),t.controller.draw(),n&&Ss(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return Ae(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,n){let r=Ou.modes[e];return typeof r=="function"?r(this,t,i,n):[]}getDatasetMeta(t){let e=this.data.datasets[t],i=this._metasets,n=i.filter(r=>r&&r._dataset===e).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(n)),n}getContext(){return this.$context||(this.$context=$t(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){let e=this.data.datasets[t];if(!e)return!1;let i=this.getDatasetMeta(t);return typeof i.hidden=="boolean"?!i.hidden:!e.hidden}setDatasetVisibility(t,e){let i=this.getDatasetMeta(t);i.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){let n=i?"show":"hide",r=this.getDatasetMeta(t),o=r.controller._resolveAnimations(void 0,n);ft(e)?(r.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(r,{visible:i}),this.update(a=>a.datasetIndex===t?n:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){let e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),jt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,r,o),t[r]=o},n=(r,o,a)=>{r.offsetX=o,r.offsetY=a,this._eventHandler(r)};H(this.options.events,r=>i(r,n))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});let t=this._responsiveListeners,e=this.platform,i=(l,c)=>{e.addEventListener(this,l,c),t[l]=c},n=(l,c)=>{t[l]&&(e.removeEventListener(this,l,c),delete t[l])},r=(l,c)=>{this.canvas&&this.resize(l,c)},o,a=()=>{n("attach",a),this.attached=!0,this.resize(),i("resize",r),i("detach",o)};o=()=>{this.attached=!1,n("resize",r),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){H(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},H(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){let n=i?"set":"remove",r,o,a,l;for(e==="dataset"&&(r=this.getDatasetMeta(t[0].datasetIndex),r.controller["_"+n+"DatasetHoverStyle"]()),a=0,l=t.length;a{let a=this.getDatasetMeta(r);if(!a)throw new Error("No dataset found at index "+r);return{datasetIndex:r,element:a.data[o],index:o}});!xs(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){let n=this.options.hover,r=(l,c)=>l.filter(h=>!c.some(u=>h.datasetIndex===u.datasetIndex&&h.index===u.index)),o=r(e,t),a=i?t:r(t,e);o.length&&this.updateHoverStyle(o,n.mode,!1),a.length&&n.mode&&this.updateHoverStyle(a,n.mode,!0)}_eventHandler(t,e){let i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},n=o=>(o.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",i,n)===!1)return;let r=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,n),(r||i.changed)&&this.render(),this}_handleEvent(t,e,i){let{_active:n=[],options:r}=this,o=e,a=this._getActiveElements(t,n,i,o),l=Oo(t),c=ld(t,this._lastEvent,i,l);i&&(this._lastEvent=null,j(r.onHover,[t,a,this],this),l&&j(r.onClick,[t,a,this],this));let h=!xs(a,n);return(h||e)&&(this._active=a,this._updateHoverStyles(a,n,e)),this._lastEvent=c,h}_getActiveElements(t,e,i,n){if(t.type==="mouseout")return[];if(!i)return e;let r=this.options.hover;return this.getElementsAtEventForMode(t,r.mode,r,n)}},Oa=()=>H(xe.instances,s=>s._plugins.invalidate()),ne=!0;Object.defineProperties(xe,{defaults:{enumerable:ne,value:L},instances:{enumerable:ne,value:ji},overrides:{enumerable:ne,value:Qt},registry:{enumerable:ne,value:Pt},version:{enumerable:ne,value:nd},getChart:{enumerable:ne,value:rl},register:{enumerable:ne,value:(...s)=>{Pt.add(...s),Oa()}},unregister:{enumerable:ne,value:(...s)=>{Pt.remove(...s),Oa()}}});function ol(s,t,e){let{startAngle:i,pixelMargin:n,x:r,y:o,outerRadius:a,innerRadius:l}=t,c=n/a;s.beginPath(),s.arc(r,o,a,i-c,e+c),l>n?(c=n/l,s.arc(r,o,l,e+c,i-c,!0)):s.arc(r,o,n,e+Z,i-Z),s.closePath(),s.clip()}function cd(s){return Ii(s,["outerStart","outerEnd","innerStart","innerEnd"])}function hd(s,t,e,i){let n=cd(s.options.borderRadius),r=(e-t)/2,o=Math.min(r,i*t/2),a=l=>{let c=(e-Math.min(r,l))*i/2;return it(l,0,Math.min(r,c))};return{outerStart:a(n.outerStart),outerEnd:a(n.outerEnd),innerStart:it(n.innerStart,0,o),innerEnd:it(n.innerEnd,0,o)}}function He(s,t,e,i){return{x:e+s*Math.cos(t),y:i+s*Math.sin(t)}}function xr(s,t,e,i,n,r){let{x:o,y:a,startAngle:l,pixelMargin:c,innerRadius:h}=t,u=Math.max(t.outerRadius+i+e-c,0),d=h>0?h+i+e+c:0,f=0,m=n-l;if(i){let E=h>0?h-i:0,tt=u>0?u-i:0,J=(E+tt)/2,fe=J!==0?m*J/(J+i):m;f=(m-fe)/2}let g=Math.max(.001,m*u-e/Y)/u,p=(m-g)/2,y=l+p+f,b=n-p-f,{outerStart:_,outerEnd:w,innerStart:x,innerEnd:S}=hd(t,d,u,b-y),k=u-_,O=u-w,T=y+_/k,F=b-w/O,W=d+x,P=d+S,Q=y+x/W,ct=b-S/P;if(s.beginPath(),r){if(s.arc(o,a,u,T,F),w>0){let J=He(O,F,o,a);s.arc(J.x,J.y,w,F,b+Z)}let E=He(P,b,o,a);if(s.lineTo(E.x,E.y),S>0){let J=He(P,ct,o,a);s.arc(J.x,J.y,S,b+Z,ct+Math.PI)}if(s.arc(o,a,d,b-S/d,y+x/d,!0),x>0){let J=He(W,Q,o,a);s.arc(J.x,J.y,x,Q+Math.PI,y-Z)}let tt=He(k,y,o,a);if(s.lineTo(tt.x,tt.y),_>0){let J=He(k,T,o,a);s.arc(J.x,J.y,_,y-Z,T)}}else{s.moveTo(o,a);let E=Math.cos(T)*u+o,tt=Math.sin(T)*u+a;s.lineTo(E,tt);let J=Math.cos(F)*u+o,fe=Math.sin(F)*u+a;s.lineTo(J,fe)}s.closePath()}function ud(s,t,e,i,n){let{fullCircles:r,startAngle:o,circumference:a}=t,l=t.endAngle;if(r){xr(s,t,e,i,o+B,n);for(let c=0;c=B||Re(r,a,l),g=At(o,c+d,h+d);return m&&g}getCenterPoint(t){let{x:e,y:i,startAngle:n,endAngle:r,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:l,spacing:c}=this.options,h=(n+r)/2,u=(o+a+c+l)/2;return{x:e+Math.cos(h)*u,y:i+Math.sin(h)*u}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){let{options:e,circumference:i}=this,n=(e.offset||0)/2,r=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin=e.borderAlign==="inner"?.33:0,this.fullCircles=i>B?Math.floor(i/B):0,i===0||this.innerRadius<0||this.outerRadius<0)return;t.save();let a=0;if(n){a=n/2;let c=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(c)*a,Math.sin(c)*a),this.circumference>=Y&&(a=n)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;let l=ud(t,this,a,r,o);fd(t,this,a,r,l,o),t.restore()}};Ge.id="arc";Ge.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0};Ge.defaultRoutes={backgroundColor:"backgroundColor"};function al(s,t,e=t){s.lineCap=I(e.borderCapStyle,t.borderCapStyle),s.setLineDash(I(e.borderDash,t.borderDash)),s.lineDashOffset=I(e.borderDashOffset,t.borderDashOffset),s.lineJoin=I(e.borderJoinStyle,t.borderJoinStyle),s.lineWidth=I(e.borderWidth,t.borderWidth),s.strokeStyle=I(e.borderColor,t.borderColor)}function md(s,t,e){s.lineTo(e.x,e.y)}function gd(s){return s.stepped?$o:s.tension||s.cubicInterpolationMode==="monotone"?jo:md}function ll(s,t,e={}){let i=s.length,{start:n=0,end:r=i-1}=e,{start:o,end:a}=t,l=Math.max(n,o),c=Math.min(r,a),h=na&&r>a;return{count:i,start:l,loop:t.loop,ilen:c(o+(c?a-w:w))%r,_=()=>{g!==p&&(s.lineTo(h,p),s.lineTo(h,g),s.lineTo(h,y))};for(l&&(f=n[b(0)],s.moveTo(f.x,f.y)),d=0;d<=a;++d){if(f=n[b(d)],f.skip)continue;let w=f.x,x=f.y,S=w|0;S===m?(xp&&(p=x),h=(u*h+w)/++u):(_(),s.lineTo(w,x),m=S,u=0,g=p=x),y=x}_()}function _r(s){let t=s.options,e=t.borderDash&&t.borderDash.length;return!s._decimated&&!s._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?yd:pd}function bd(s){return s.stepped?Qo:s.tension||s.cubicInterpolationMode==="monotone"?ta:Xt}function xd(s,t,e,i){let n=t._path;n||(n=t._path=new Path2D,t.path(n,e,i)&&n.closePath()),al(s,t.options),s.stroke(n)}function _d(s,t,e,i){let{segments:n,options:r}=t,o=_r(t);for(let a of n)al(s,r,a.style),s.beginPath(),o(s,t,a,{start:e,end:e+i-1})&&s.closePath(),s.stroke()}var wd=typeof Path2D=="function";function Sd(s,t,e,i){wd&&!t.options.segment?xd(s,t,e,i):_d(s,t,e,i)}var Nt=class extends yt{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){let i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){let n=i.spanGaps?this._loop:this._fullLoop;Xo(this._points,i,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=sa(this,this.options.segment))}first(){let t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){let t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){let i=this.options,n=t[e],r=this.points,o=tr(this,{property:e,start:n,end:n});if(!o.length)return;let a=[],l=bd(i),c,h;for(c=0,h=o.length;cs!=="borderDash"&&s!=="fill"};function Da(s,t,e,i){let n=s.options,{[e]:r}=s.getProps([e],i);return Math.abs(t-r)=e)return s.slice(t,t+e);let o=[],a=(e-2)/(r-2),l=0,c=t+e-1,h=t,u,d,f,m,g;for(o[l++]=s[h],u=0;uf&&(f=m,d=s[b],g=b);o[l++]=d,h=g}return o[l++]=s[c],o}function Id(s,t,e,i){let n=0,r=0,o,a,l,c,h,u,d,f,m,g,p=[],y=t+e-1,b=s[t].x,w=s[y].x-b;for(o=t;og&&(g=c,d=o),n=(r*n+a.x)/++r;else{let S=o-1;if(!R(u)&&!R(d)){let k=Math.min(u,d),O=Math.max(u,d);k!==f&&k!==S&&p.push({...s[k],x:n}),O!==f&&O!==S&&p.push({...s[O],x:n})}o>0&&S!==f&&p.push(s[S]),p.push(a),h=x,r=0,m=g=c,u=d=f=o}}return p}function hl(s){if(s._decimated){let t=s._data;delete s._decimated,delete s._data,Object.defineProperty(s,"data",{value:t})}}function Ea(s){s.data.datasets.forEach(t=>{hl(t)})}function Cd(s,t){let e=t.length,i=0,n,{iScale:r}=s,{min:o,max:a,minDefined:l,maxDefined:c}=r.getUserBounds();return l&&(i=it(Ct(t,r.axis,o).lo,0,e-1)),c?n=it(Ct(t,r.axis,a).hi+1,i,e)-i:n=e-i,{start:i,count:n}}var Fd={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(s,t,e)=>{if(!e.enabled){Ea(s);return}let i=s.width;s.data.datasets.forEach((n,r)=>{let{_data:o,indexAxis:a}=n,l=s.getDatasetMeta(r),c=o||n.data;if(ze([a,s.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;let h=s.scales[l.xAxisID];if(h.type!=="linear"&&h.type!=="time"||s.options.parsing)return;let{start:u,count:d}=Cd(l,c),f=e.threshold||4*i;if(d<=f){hl(n);return}R(o)&&(n._data=c,delete n.data,Object.defineProperty(n,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(g){this._data=g}}));let m;switch(e.algorithm){case"lttb":m=Ed(c,u,d,i,e);break;case"min-max":m=Id(c,u,d,i);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}n._decimated=m})},destroy(s){Ea(s)}};function Ad(s,t,e){let i=s.segments,n=s.points,r=t.points,o=[];for(let a of i){let{start:l,end:c}=a;c=Mr(l,c,n);let h=wr(e,n[l],n[c],a.loop);if(!t.segments){o.push({source:a,target:h,start:n[l],end:n[c]});continue}let u=tr(t,h);for(let d of u){let f=wr(e,r[d.start],r[d.end],d.loop),m=Qn(a,n,f);for(let g of m)o.push({source:g,target:d,start:{[e]:Ia(h,f,"start",Math.max)},end:{[e]:Ia(h,f,"end",Math.min)}})}}return o}function wr(s,t,e,i){if(i)return;let n=t[s],r=e[s];return s==="angle"&&(n=ht(n),r=ht(r)),{property:s,start:n,end:r}}function Ld(s,t){let{x:e=null,y:i=null}=s||{},n=t.points,r=[];return t.segments.forEach(({start:o,end:a})=>{a=Mr(o,a,n);let l=n[o],c=n[a];i!==null?(r.push({x:l.x,y:i}),r.push({x:c.x,y:i})):e!==null&&(r.push({x:e,y:l.y}),r.push({x:e,y:c.y}))}),r}function Mr(s,t,e){for(;t>s;t--){let i=e[t];if(!isNaN(i.x)&&!isNaN(i.y))break}return t}function Ia(s,t,e,i){return s&&t?i(s[e],t[e]):s?s[e]:t?t[e]:0}function ul(s,t){let e=[],i=!1;return $(s)?(i=!0,e=s):e=Ld(s,t),e.length?new Nt({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function Ca(s){return s&&s.fill!==!1}function Pd(s,t,e){let n=s[t].fill,r=[t],o;if(!e)return n;for(;n!==!1&&r.indexOf(n)===-1;){if(!K(n))return n;if(o=s[n],!o)return!1;if(o.visible)return n;r.push(n),n=o.fill}return!1}function Nd(s,t,e){let i=Vd(s);if(A(i))return isNaN(i.value)?!1:i;let n=parseFloat(i);return K(n)&&Math.floor(n)===n?Rd(i[0],t,n,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function Rd(s,t,e,i){return(s==="-"||s==="+")&&(e=t+e),e===t||e<0||e>=i?!1:e}function Wd(s,t){let e=null;return s==="start"?e=t.bottom:s==="end"?e=t.top:A(s)?e=t.getPixelForValue(s.value):t.getBasePixel&&(e=t.getBasePixel()),e}function zd(s,t,e){let i;return s==="start"?i=e:s==="end"?i=t.options.reverse?t.min:t.max:A(s)?i=s.value:i=t.getBaseValue(),i}function Vd(s){let t=s.options,e=t.fill,i=I(e&&e.target,e);return i===void 0&&(i=!!t.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function Hd(s){let{scale:t,index:e,line:i}=s,n=[],r=i.segments,o=i.points,a=Bd(t,e);a.push(ul({x:null,y:t.bottom},i));for(let l=0;l=0;--o){let a=n[o].$filler;a&&(a.line.updateControlPoints(r,a.axis),i&&a.fill&&cr(s.ctx,a,r))}},beforeDatasetsDraw(s,t,e){if(e.drawTime!=="beforeDatasetsDraw")return;let i=s.getSortedVisibleDatasetMetas();for(let n=i.length-1;n>=0;--n){let r=i[n].$filler;Ca(r)&&cr(s.ctx,r,s.chartArea)}},beforeDatasetDraw(s,t,e){let i=t.meta.$filler;!Ca(i)||e.drawTime!=="beforeDatasetDraw"||cr(s.ctx,i,s.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}},Pa=(s,t)=>{let{boxHeight:e=t,boxWidth:i=t}=s;return s.usePointStyle&&(e=Math.min(e,t),i=s.pointStyleWidth||Math.min(i,t)),{boxWidth:i,boxHeight:e,itemHeight:Math.max(t,e)}},Qd=(s,t)=>s!==null&&t!==null&&s.datasetIndex===t.datasetIndex&&s.index===t.index,Yi=class extends yt{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let t=this.options.labels||{},e=j(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(i=>t.filter(i,this.chart.data))),t.sort&&(e=e.sort((i,n)=>t.sort(i,n,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){let{options:t,ctx:e}=this;if(!t.display){this.width=this.height=0;return}let i=t.labels,n=et(i.font),r=n.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Pa(i,r),c,h;e.font=n.string,this.isHorizontal()?(c=this.maxWidth,h=this._fitRows(o,r,a,l)+10):(h=this.maxHeight,c=this._fitCols(o,r,a,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,n){let{ctx:r,maxWidth:o,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],h=n+a,u=t;r.textAlign="left",r.textBaseline="middle";let d=-1,f=-h;return this.legendItems.forEach((m,g)=>{let p=i+e/2+r.measureText(m.text).width;(g===0||c[c.length-1]+p+2*a>o)&&(u+=h,c[c.length-(g>0?0:1)]=0,f+=h,d++),l[g]={left:0,top:f,row:d,width:p,height:n},c[c.length-1]+=p+a}),u}_fitCols(t,e,i,n){let{ctx:r,maxHeight:o,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],h=o-t,u=a,d=0,f=0,m=0,g=0;return this.legendItems.forEach((p,y)=>{let b=i+e/2+r.measureText(p.text).width;y>0&&f+n+2*a>h&&(u+=d+a,c.push({width:d,height:f}),m+=d+a,g++,d=f=0),l[y]={left:m,top:f,col:g,width:b,height:n},d=Math.max(d,b),f+=n+a}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;let t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:n},rtl:r}}=this,o=ye(r,this.left,this.width);if(this.isHorizontal()){let a=0,l=ot(i,this.left+n,this.right-this.lineWidths[a]);for(let c of e)a!==c.row&&(a=c.row,l=ot(i,this.left+n,this.right-this.lineWidths[a])),c.top+=this.top+t+n,c.left=o.leftForLtr(o.x(l),c.width),l+=c.width+n}else{let a=0,l=ot(i,this.top+t+n,this.bottom-this.columnSizes[a].height);for(let c of e)c.col!==a&&(a=c.col,l=ot(i,this.top+t+n,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+n,c.left=o.leftForLtr(o.x(c.left),c.width),l+=c.height+n}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){let t=this.ctx;ws(t,this),this._draw(),Ss(t)}}_draw(){let{options:t,columnSizes:e,lineWidths:i,ctx:n}=this,{align:r,labels:o}=t,a=L.color,l=ye(t.rtl,this.left,this.width),c=et(o.font),{color:h,padding:u}=o,d=c.size,f=d/2,m;this.drawTitle(),n.textAlign=l.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=c.string;let{boxWidth:g,boxHeight:p,itemHeight:y}=Pa(o,d),b=function(k,O,T){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;n.save();let F=I(T.lineWidth,1);if(n.fillStyle=I(T.fillStyle,a),n.lineCap=I(T.lineCap,"butt"),n.lineDashOffset=I(T.lineDashOffset,0),n.lineJoin=I(T.lineJoin,"miter"),n.lineWidth=F,n.strokeStyle=I(T.strokeStyle,a),n.setLineDash(I(T.lineDash,[])),o.usePointStyle){let W={radius:p*Math.SQRT2/2,pointStyle:T.pointStyle,rotation:T.rotation,borderWidth:F},P=l.xPlus(k,g/2),Q=O+f;Bn(n,W,P,Q,o.pointStyleWidth&&g)}else{let W=O+Math.max((d-p)/2,0),P=l.leftForLtr(k,g),Q=se(T.borderRadius);n.beginPath(),Object.values(Q).some(ct=>ct!==0)?We(n,{x:P,y:W,w:g,h:p,radius:Q}):n.rect(P,W,g,p),n.fill(),F!==0&&n.stroke()}n.restore()},_=function(k,O,T){ee(n,T.text,k,O+y/2,c,{strikethrough:T.hidden,textAlign:l.textAlign(T.textAlign)})},w=this.isHorizontal(),x=this._computeTitleHeight();w?m={x:ot(r,this.left+u,this.right-i[0]),y:this.top+u+x,line:0}:m={x:this.left+u,y:ot(r,this.top+x+u,this.bottom-e[0].height),line:0},Kn(this.ctx,t.textDirection);let S=y+u;this.legendItems.forEach((k,O)=>{n.strokeStyle=k.fontColor||h,n.fillStyle=k.fontColor||h;let T=n.measureText(k.text).width,F=l.textAlign(k.textAlign||(k.textAlign=o.textAlign)),W=g+f+T,P=m.x,Q=m.y;l.setWidth(this.width),w?O>0&&P+W+u>this.right&&(Q=m.y+=S,m.line++,P=m.x=ot(r,this.left+u,this.right-i[m.line])):O>0&&Q+S>this.bottom&&(P=m.x=P+e[m.line].width+u,m.line++,Q=m.y=ot(r,this.top+x+u,this.bottom-e[m.line].height));let ct=l.x(P);b(ct,Q,k),P=No(F,P+g+f,w?P+W:this.right,t.rtl),_(l.x(P),Q,k),w?m.x+=W+u:m.y+=S}),Jn(this.ctx,t.textDirection)}drawTitle(){let t=this.options,e=t.title,i=et(e.font),n=at(e.padding);if(!e.display)return;let r=ye(t.rtl,this.left,this.width),o=this.ctx,a=e.position,l=i.size/2,c=n.top+l,h,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+c,u=ot(t.align,u,this.right-d);else{let m=this.columnSizes.reduce((g,p)=>Math.max(g,p.height),0);h=c+ot(t.align,this.top,this.bottom-m-t.labels.padding-this._computeTitleHeight())}let f=ot(a,u,u+d);o.textAlign=r.textAlign(Oi(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,ee(o,e.text,f,h,i)}_computeTitleHeight(){let t=this.options.title,e=et(t.font),i=at(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,n,r;if(At(t,this.left,this.right)&&At(e,this.top,this.bottom)){for(r=this.legendHitBoxes,i=0;is.chart.options.color,boxWidth:40,padding:10,generateLabels(s){let t=s.data.datasets,{labels:{usePointStyle:e,pointStyle:i,textAlign:n,color:r}}=s.legend.options;return s._getSortedDatasetMetas().map(o=>{let a=o.controller.getStyle(e?0:void 0),l=at(a.borderWidth);return{text:t[o.index].label,fillStyle:a.backgroundColor,fontColor:r,hidden:!o.visible,lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:a.borderColor,pointStyle:i||a.pointStyle,rotation:a.rotation,textAlign:n||a.textAlign,borderRadius:0,datasetIndex:o.index}},this)}},title:{color:s=>s.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:s=>!s.startsWith("on"),labels:{_scriptable:s=>!["generateLabels","filter","sort"].includes(s)}}},As=class extends yt{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){let i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=e;let n=$(i.text)?i.text.length:1;this._padding=at(i.padding);let r=n*et(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=r:this.width=r}isHorizontal(){let t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){let{top:e,left:i,bottom:n,right:r,options:o}=this,a=o.align,l=0,c,h,u;return this.isHorizontal()?(h=ot(a,i,r),u=e+t,c=r-i):(o.position==="left"?(h=i+t,u=ot(a,n,e),l=Y*-.5):(h=r-t,u=ot(a,e,n),l=Y*.5),c=n-e),{titleX:h,titleY:u,maxWidth:c,rotation:l}}draw(){let t=this.ctx,e=this.options;if(!e.display)return;let i=et(e.font),r=i.lineHeight/2+this._padding.top,{titleX:o,titleY:a,maxWidth:l,rotation:c}=this._drawArgs(r);ee(t,e.text,0,0,i,{color:e.color,maxWidth:l,rotation:c,textAlign:Oi(e.align),textBaseline:"middle",translation:[o,a]})}};function sf(s,t){let e=new As({ctx:s.ctx,options:t,chart:s});lt.configure(s,e,t),lt.addBox(s,e),s.titleBlock=e}var nf={id:"title",_element:As,start(s,t,e){sf(s,e)},stop(s){let t=s.titleBlock;lt.removeBox(s,t),delete s.titleBlock},beforeUpdate(s,t,e){let i=s.titleBlock;lt.configure(s,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Ri=new WeakMap,rf={id:"subtitle",start(s,t,e){let i=new As({ctx:s.ctx,options:e,chart:s});lt.configure(s,i,e),lt.addBox(s,i),Ri.set(s,i)},stop(s){lt.removeBox(s,Ri.get(s)),Ri.delete(s)},beforeUpdate(s,t,e){let i=Ri.get(s);lt.configure(s,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Es={average(s){if(!s.length)return!1;let t,e,i=0,n=0,r=0;for(t=0,e=s.length;t-1?s.split(` +`):s}function of(s,t){let{element:e,datasetIndex:i,index:n}=t,r=s.getDatasetMeta(i).controller,{label:o,value:a}=r.getLabelAndValue(n);return{chart:s,label:o,parsed:r.getParsed(n),raw:s.data.datasets[i].data[n],formattedValue:a,dataset:r.getDataset(),dataIndex:n,datasetIndex:i,element:e}}function Na(s,t){let e=s.chart.ctx,{body:i,footer:n,title:r}=s,{boxWidth:o,boxHeight:a}=t,l=et(t.bodyFont),c=et(t.titleFont),h=et(t.footerFont),u=r.length,d=n.length,f=i.length,m=at(t.padding),g=m.height,p=0,y=i.reduce((w,x)=>w+x.before.length+x.lines.length+x.after.length,0);if(y+=s.beforeBody.length+s.afterBody.length,u&&(g+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),y){let w=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;g+=f*w+(y-f)*l.lineHeight+(y-1)*t.bodySpacing}d&&(g+=t.footerMarginTop+d*h.lineHeight+(d-1)*t.footerSpacing);let b=0,_=function(w){p=Math.max(p,e.measureText(w).width+b)};return e.save(),e.font=c.string,H(s.title,_),e.font=l.string,H(s.beforeBody.concat(s.afterBody),_),b=t.displayColors?o+2+t.boxPadding:0,H(i,w=>{H(w.before,_),H(w.lines,_),H(w.after,_)}),b=0,e.font=h.string,H(s.footer,_),e.restore(),p+=m.width,{width:p,height:g}}function af(s,t){let{y:e,height:i}=t;return es.height-i/2?"bottom":"center"}function lf(s,t,e,i){let{x:n,width:r}=i,o=e.caretSize+e.caretPadding;if(s==="left"&&n+r+o>t.width||s==="right"&&n-r-o<0)return!0}function cf(s,t,e,i){let{x:n,width:r}=e,{width:o,chartArea:{left:a,right:l}}=s,c="center";return i==="center"?c=n<=(a+l)/2?"left":"right":n<=r/2?c="left":n>=o-r/2&&(c="right"),lf(c,s,t,e)&&(c="center"),c}function Ra(s,t,e){let i=e.yAlign||t.yAlign||af(s,e);return{xAlign:e.xAlign||t.xAlign||cf(s,t,e,i),yAlign:i}}function hf(s,t){let{x:e,width:i}=s;return t==="right"?e-=i:t==="center"&&(e-=i/2),e}function uf(s,t,e){let{y:i,height:n}=s;return t==="top"?i+=e:t==="bottom"?i-=n+e:i-=n/2,i}function Wa(s,t,e,i){let{caretSize:n,caretPadding:r,cornerRadius:o}=s,{xAlign:a,yAlign:l}=e,c=n+r,{topLeft:h,topRight:u,bottomLeft:d,bottomRight:f}=se(o),m=hf(t,a),g=uf(t,l,c);return l==="center"?a==="left"?m+=c:a==="right"&&(m-=c):a==="left"?m-=Math.max(h,d)+n:a==="right"&&(m+=Math.max(u,f)+n),{x:it(m,0,i.width-t.width),y:it(g,0,i.height-t.height)}}function Wi(s,t,e){let i=at(e.padding);return t==="center"?s.x+s.width/2:t==="right"?s.x+s.width-i.right:s.x+i.left}function za(s){return Lt([],Ut(s))}function df(s,t,e){return $t(s,{tooltip:t,tooltipItems:e,type:"tooltip"})}function Va(s,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?s.override(e):s}var Ls=class extends yt{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,i=this.options.setContext(this.getContext()),n=i.enabled&&e.options.animation&&i.animations,r=new Hi(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(r)),r}getContext(){return this.$context||(this.$context=df(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:i}=e,n=i.beforeTitle.apply(this,[t]),r=i.title.apply(this,[t]),o=i.afterTitle.apply(this,[t]),a=[];return a=Lt(a,Ut(n)),a=Lt(a,Ut(r)),a=Lt(a,Ut(o)),a}getBeforeBody(t,e){return za(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){let{callbacks:i}=e,n=[];return H(t,r=>{let o={before:[],lines:[],after:[]},a=Va(i,r);Lt(o.before,Ut(a.beforeLabel.call(this,r))),Lt(o.lines,a.label.call(this,r)),Lt(o.after,Ut(a.afterLabel.call(this,r))),n.push(o)}),n}getAfterBody(t,e){return za(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){let{callbacks:i}=e,n=i.beforeFooter.apply(this,[t]),r=i.footer.apply(this,[t]),o=i.afterFooter.apply(this,[t]),a=[];return a=Lt(a,Ut(n)),a=Lt(a,Ut(r)),a=Lt(a,Ut(o)),a}_createItems(t){let e=this._active,i=this.chart.data,n=[],r=[],o=[],a=[],l,c;for(l=0,c=e.length;lt.filter(h,u,d,i))),t.itemSort&&(a=a.sort((h,u)=>t.itemSort(h,u,i))),H(a,h=>{let u=Va(t.callbacks,h);n.push(u.labelColor.call(this,h)),r.push(u.labelPointStyle.call(this,h)),o.push(u.labelTextColor.call(this,h))}),this.labelColors=n,this.labelPointStyles=r,this.labelTextColors=o,this.dataPoints=a,a}update(t,e){let i=this.options.setContext(this.getContext()),n=this._active,r,o=[];if(!n.length)this.opacity!==0&&(r={opacity:0});else{let a=Es[i.position].call(this,n,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);let l=this._size=Na(this,i),c=Object.assign({},a,l),h=Ra(this.chart,i,c),u=Wa(i,c,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,r={opacity:1,x:u.x,y:u.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=o,this.$context=void 0,r&&this._resolveAnimations().update(this,r),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,n){let r=this.getCaretPosition(t,i,n);e.lineTo(r.x1,r.y1),e.lineTo(r.x2,r.y2),e.lineTo(r.x3,r.y3)}getCaretPosition(t,e,i){let{xAlign:n,yAlign:r}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:h,bottomRight:u}=se(a),{x:d,y:f}=t,{width:m,height:g}=e,p,y,b,_,w,x;return r==="center"?(w=f+g/2,n==="left"?(p=d,y=p-o,_=w+o,x=w-o):(p=d+m,y=p+o,_=w-o,x=w+o),b=p):(n==="left"?y=d+Math.max(l,h)+o:n==="right"?y=d+m-Math.max(c,u)-o:y=this.caretX,r==="top"?(_=f,w=_-o,p=y-o,b=y+o):(_=f+g,w=_+o,p=y+o,b=y-o),x=_),{x1:p,x2:y,x3:b,y1:_,y2:w,y3:x}}drawTitle(t,e,i){let n=this.title,r=n.length,o,a,l;if(r){let c=ye(i.rtl,this.x,this.width);for(t.x=Wi(this,i.titleAlign,i),e.textAlign=c.textAlign(i.titleAlign),e.textBaseline="middle",o=et(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,l=0;l_!==0)?(t.beginPath(),t.fillStyle=r.multiKeyBackground,We(t,{x:p,y:g,w:c,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=o.backgroundColor,t.beginPath(),We(t,{x:y,y:g+1,w:c-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=r.multiKeyBackground,t.fillRect(p,g,c,l),t.strokeRect(p,g,c,l),t.fillStyle=o.backgroundColor,t.fillRect(y,g+1,c-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){let{body:n}=this,{bodySpacing:r,bodyAlign:o,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:h}=i,u=et(i.bodyFont),d=u.lineHeight,f=0,m=ye(i.rtl,this.x,this.width),g=function(O){e.fillText(O,m.x(t.x+f),t.y+d/2),t.y+=d+r},p=m.textAlign(o),y,b,_,w,x,S,k;for(e.textAlign=o,e.textBaseline="middle",e.font=u.string,t.x=Wi(this,p,i),e.fillStyle=i.bodyColor,H(this.beforeBody,g),f=a&&p!=="right"?o==="center"?c/2+h:c+2+h:0,w=0,S=n.length;w0&&e.stroke()}_updateAnimationTarget(t){let e=this.chart,i=this.$animations,n=i&&i.x,r=i&&i.y;if(n||r){let o=Es[t.position].call(this,this._active,this._eventPosition);if(!o)return;let a=this._size=Na(this,t),l=Object.assign({},o,this._size),c=Ra(e,t,l),h=Wa(t,l,c,e);(n._to!==h.x||r._to!==h.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=o.x,this.caretY=o.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){let e=this.options.setContext(this.getContext()),i=this.opacity;if(!i)return;this._updateAnimationTarget(e);let n={width:this.width,height:this.height},r={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;let o=at(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(r,t,n,e),Kn(t,e.textDirection),r.y+=o.top,this.drawTitle(r,t,e),this.drawBody(r,t,e),this.drawFooter(r,t,e),Jn(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){let i=this._active,n=t.map(({datasetIndex:a,index:l})=>{let c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),r=!xs(i,n),o=this._positionChanged(n,e);(r||o)&&(this._active=n,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let n=this.options,r=this._active||[],o=this._getActiveElements(t,r,e,i),a=this._positionChanged(o,t),l=e||!xs(o,r)||a;return l&&(this._active=o,(n.enabled||n.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,i,n){let r=this.options;if(t.type==="mouseout")return[];if(!n)return e;let o=this.chart.getElementsAtEventForMode(t,r.mode,r,i);return r.reverse&&o.reverse(),o}_positionChanged(t,e){let{caretX:i,caretY:n,options:r}=this,o=Es[r.position].call(this,t,e);return o!==!1&&(i!==o.x||n!==o.y)}};Ls.positioners=Es;var ff={id:"tooltip",_element:Ls,positioners:Es,afterInit(s,t,e){e&&(s.tooltip=new Ls({chart:s,options:e}))},beforeUpdate(s,t,e){s.tooltip&&s.tooltip.initialize(e)},reset(s,t,e){s.tooltip&&s.tooltip.initialize(e)},afterDraw(s){let t=s.tooltip;if(t&&t._willRender()){let e={tooltip:t};if(s.notifyPlugins("beforeTooltipDraw",e)===!1)return;t.draw(s.ctx),s.notifyPlugins("afterTooltipDraw",e)}},afterEvent(s,t){if(s.tooltip){let e=t.replay;s.tooltip.handleEvent(t.event,e,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(s,t)=>t.bodyFont.size,boxWidth:(s,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:Ft,title(s){if(s.length>0){let t=s[0],e=t.chart.data.labels,i=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndexs!=="filter"&&s!=="itemSort"&&s!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},mf=Object.freeze({__proto__:null,Decimation:Fd,Filler:Jd,Legend:ef,SubTitle:rf,Title:nf,Tooltip:ff}),gf=(s,t,e,i)=>(typeof t=="string"?(e=s.push(t)-1,i.unshift({index:e,label:t})):isNaN(t)&&(e=null),e);function pf(s,t,e,i){let n=s.indexOf(t);if(n===-1)return gf(s,t,e,i);let r=s.lastIndexOf(t);return n!==r?e:n}var yf=(s,t)=>s===null?null:it(Math.round(s),0,t),Je=class extends Yt{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){let e=this._addedLabels;if(e.length){let i=this.getLabels();for(let{index:n,label:r}of e)i[n]===r&&i.splice(n,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(R(t))return null;let i=this.getLabels();return e=isFinite(e)&&i[e]===t?e:pf(i,t,I(e,t),this._addedLabels),yf(e,i.length-1)}determineDataLimits(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),{min:i,max:n}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(i=0),e||(n=this.getLabels().length-1)),this.min=i,this.max=n}buildTicks(){let t=this.min,e=this.max,i=this.options.offset,n=[],r=this.getLabels();r=t===0&&e===r.length-1?r:r.slice(t,e+1),this._valueRange=Math.max(r.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let o=t;o<=e;o++)n.push({value:o});return n}getLabelForValue(t){let e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}};Je.id="category";Je.defaults={ticks:{callback:Je.prototype.getLabelForValue}};function bf(s,t){let e=[],{bounds:n,step:r,min:o,max:a,precision:l,count:c,maxTicks:h,maxDigits:u,includeBounds:d}=s,f=r||1,m=h-1,{min:g,max:p}=t,y=!R(o),b=!R(a),_=!R(c),w=(p-g)/(u+1),x=On((p-g)/m/f)*f,S,k,O,T;if(x<1e-14&&!y&&!b)return[{value:g},{value:p}];T=Math.ceil(p/x)-Math.floor(g/x),T>m&&(x=On(T*x/m/f)*f),R(l)||(S=Math.pow(10,l),x=Math.ceil(x*S)/S),n==="ticks"?(k=Math.floor(g/x)*x,O=Math.ceil(p/x)*x):(k=g,O=p),y&&b&&r&&Eo((a-o)/r,x/1e3)?(T=Math.round(Math.min((a-o)/x,h)),x=(a-o)/T,k=o,O=a):_?(k=y?o:k,O=b?a:O,T=c-1,x=(O-k)/T):(T=(O-k)/x,Ne(T,Math.round(T),x/1e3)?T=Math.round(T):T=Math.ceil(T));let F=Math.max(En(x),En(k));S=Math.pow(10,R(l)?F:l),k=Math.round(k*S)/S,O=Math.round(O*S)/S;let W=0;for(y&&(d&&k!==o?(e.push({value:o}),kn=e?n:l,a=l=>r=i?r:l;if(t){let l=Tt(n),c=Tt(r);l<0&&c<0?a(0):l>0&&c>0&&o(0)}if(n===r){let l=1;(r>=Number.MAX_SAFE_INTEGER||n<=Number.MIN_SAFE_INTEGER)&&(l=Math.abs(r*.05)),a(r+l),t||o(n-l)}this.min=n,this.max=r}getTickLimit(){let t=this.options.ticks,{maxTicksLimit:e,stepSize:i}=t,n;return i?(n=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e=e||11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){let t=this.options,e=t.ticks,i=this.getTickLimit();i=Math.max(2,i);let n={maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},r=this._range||this,o=bf(n,r);return t.bounds==="ticks"&&Dn(o,this,"value"),t.reverse?(o.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),o}configure(){let t=this.ticks,e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){let n=(i-e)/Math.max(t.length-1,1)/2;e-=n,i+=n}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return Ve(t,this.chart.options.locale,this.options.ticks.format)}},Ps=class extends Qe{determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=K(t)?t:0,this.max=K(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){let t=this.isHorizontal(),e=t?this.width:this.height,i=wt(this.options.ticks.minRotation),n=(t?Math.sin(i):Math.cos(i))||.001,r=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,r.lineHeight/n))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}};Ps.id="linear";Ps.defaults={ticks:{callback:Zi.formatters.numeric}};function Ba(s){return s/Math.pow(10,Math.floor(gt(s)))===1}function xf(s,t){let e=Math.floor(gt(t.max)),i=Math.ceil(t.max/Math.pow(10,e)),n=[],r=mt(s.min,Math.pow(10,Math.floor(gt(t.min)))),o=Math.floor(gt(r)),a=Math.floor(r/Math.pow(10,o)),l=o<0?Math.pow(10,Math.abs(o)):1;do n.push({value:r,major:Ba(r)}),++a,a===10&&(a=1,++o,l=o>=0?1:l),r=Math.round(a*Math.pow(10,o)*l)/l;while(o0?i:null}determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=K(t)?Math.max(0,t):null,this.max=K(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),i=this.min,n=this.max,r=l=>i=t?i:l,o=l=>n=e?n:l,a=(l,c)=>Math.pow(10,Math.floor(gt(l))+c);i===n&&(i<=0?(r(1),o(10)):(r(a(i,-1)),o(a(n,1)))),i<=0&&r(a(n,-1)),n<=0&&o(a(i,1)),this._zero&&this.min!==this._suggestedMin&&i===a(this.min,0)&&r(a(i,-1)),this.min=i,this.max=n}buildTicks(){let t=this.options,e={min:this._userMin,max:this._userMax},i=xf(e,this);return t.bounds==="ticks"&&Dn(i,this,"value"),t.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}getLabelForValue(t){return t===void 0?"0":Ve(t,this.chart.options.locale,this.options.ticks.format)}configure(){let t=this.min;super.configure(),this._startValue=gt(t),this._valueRange=gt(this.max)-gt(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(gt(t)-this._startValue)/this._valueRange)}getValueForPixel(t){let e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}};Ns.id="logarithmic";Ns.defaults={ticks:{callback:Zi.formatters.logarithmic,major:{enabled:!0}}};function Sr(s){let t=s.ticks;if(t.display&&s.display){let e=at(t.backdropPadding);return I(t.font&&t.font.size,L.font.size)+e.height}return 0}function _f(s,t,e){return e=$(e)?e:[e],{w:Bo(s,t.string,e),h:e.length*t.lineHeight}}function $a(s,t,e,i,n){return s===i||s===n?{start:t-e/2,end:t+e/2}:sn?{start:t-e,end:t}:{start:t,end:t+e}}function wf(s){let t={l:s.left+s._padding.left,r:s.right-s._padding.right,t:s.top+s._padding.top,b:s.bottom-s._padding.bottom},e=Object.assign({},t),i=[],n=[],r=s._pointLabels.length,o=s.options.pointLabels,a=o.centerPointLabels?Y/r:0;for(let l=0;lt.r&&(a=(i.end-t.r)/r,s.r=Math.max(s.r,t.r+a)),n.startt.b&&(l=(n.end-t.b)/o,s.b=Math.max(s.b,t.b+l))}function kf(s,t,e){let i=[],n=s._pointLabels.length,r=s.options,o=Sr(r)/2,a=s.drawingArea,l=r.pointLabels.centerPointLabels?Y/n:0;for(let c=0;c270||e<90)&&(s-=t),s}function Of(s,t){let{ctx:e,options:{pointLabels:i}}=s;for(let n=t-1;n>=0;n--){let r=i.setContext(s.getPointLabelContext(n)),o=et(r.font),{x:a,y:l,textAlign:c,left:h,top:u,right:d,bottom:f}=s._pointLabelItems[n],{backdropColor:m}=r;if(!R(m)){let g=se(r.borderRadius),p=at(r.backdropPadding);e.fillStyle=m;let y=h-p.left,b=u-p.top,_=d-h+p.width,w=f-u+p.height;Object.values(g).some(x=>x!==0)?(e.beginPath(),We(e,{x:y,y:b,w:_,h:w,radius:g}),e.fill()):e.fillRect(y,b,_,w)}ee(e,s._pointLabels[n],a,l+o.lineHeight/2,o,{color:r.color,textAlign:c,textBaseline:"middle"})}}function dl(s,t,e,i){let{ctx:n}=s;if(e)n.arc(s.xCenter,s.yCenter,t,0,B);else{let r=s.getPointPosition(0,t);n.moveTo(r.x,r.y);for(let o=1;o{let n=j(this.options.pointLabels.callback,[e,i],this);return n||n===0?n:""}).filter((e,i)=>this.chart.getDataVisibility(i))}fit(){let t=this.options;t.display&&t.pointLabels.display?wf(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,n){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-n)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,n))}getIndexAngle(t){let e=B/(this._pointLabels.length||1),i=this.options.startAngle||0;return ht(t*e+wt(i))}getDistanceFromCenterForValue(t){if(R(t))return NaN;let e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(R(t))return NaN;let e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){let e=this._pointLabels||[];if(t>=0&&t{if(h!==0){a=this.getDistanceFromCenterForValue(c.value);let u=n.setContext(this.getContext(h-1));Df(this,u,a,r)}}),i.display){for(t.save(),o=r-1;o>=0;o--){let c=i.setContext(this.getPointLabelContext(o)),{color:h,lineWidth:u}=c;!u||!h||(t.lineWidth=u,t.strokeStyle=h,t.setLineDash(c.borderDash),t.lineDashOffset=c.borderDashOffset,a=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(o,a),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){let t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;let n=this.getIndexAngle(0),r,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(n),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((a,l)=>{if(l===0&&!e.reverse)return;let c=i.setContext(this.getContext(l)),h=et(c.font);if(r=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){t.font=h.string,o=t.measureText(a.label).width,t.fillStyle=c.backdropColor;let u=at(c.backdropPadding);t.fillRect(-o/2-u.left,-r-h.size/2-u.top,o+u.width,h.size+u.height)}ee(t,a.label,0,-r,h,{color:c.color})}),t.restore()}drawTitle(){}};_e.id="radialLinear";_e.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Zi.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(s){return s},padding:5,centerPointLabels:!1}};_e.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};_e.descriptors={angleLines:{_fallback:"grid"}};var qi={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ut=Object.keys(qi);function If(s,t){return s-t}function ja(s,t){if(R(t))return null;let e=s._adapter,{parser:i,round:n,isoWeekday:r}=s._parseOpts,o=t;return typeof i=="function"&&(o=i(o)),K(o)||(o=typeof i=="string"?e.parse(o,i):e.parse(o)),o===null?null:(n&&(o=n==="week"&&(pe(r)||r===!0)?e.startOf(o,"isoWeek",r):e.startOf(o,n)),+o)}function Ua(s,t,e,i){let n=ut.length;for(let r=ut.indexOf(s);r=ut.indexOf(e);r--){let o=ut[r];if(qi[o].common&&s._adapter.diff(n,i,o)>=t-1)return o}return ut[e?ut.indexOf(e):0]}function Ff(s){for(let t=ut.indexOf(s)+1,e=ut.length;t=t?e[i]:e[n];s[r]=!0}}function Af(s,t,e,i){let n=s._adapter,r=+n.startOf(t[0].value,i),o=t[t.length-1].value,a,l;for(a=r;a<=o;a=+n.add(a,1,i))l=e[a],l>=0&&(t[l].major=!0);return t}function Za(s,t,e){let i=[],n={},r=t.length,o,a;for(o=0;o+t.value))}initOffsets(t){let e=0,i=0,n,r;this.options.offset&&t.length&&(n=this.getDecimalForValue(t[0]),t.length===1?e=1-n:e=(this.getDecimalForValue(t[1])-n)/2,r=this.getDecimalForValue(t[t.length-1]),t.length===1?i=r:i=(r-this.getDecimalForValue(t[t.length-2]))/2);let o=t.length<3?.5:.25;e=it(e,0,o),i=it(i,0,o),this._offsets={start:e,end:i,factor:1/(e+1+i)}}_generate(){let t=this._adapter,e=this.min,i=this.max,n=this.options,r=n.time,o=r.unit||Ua(r.minUnit,e,i,this._getLabelCapacity(e)),a=I(r.stepSize,1),l=o==="week"?r.isoWeekday:!1,c=pe(l)||l===!0,h={},u=e,d,f;if(c&&(u=+t.startOf(u,"isoWeek",l)),u=+t.startOf(u,c?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);let m=n.ticks.source==="data"&&this.getDataTimestamps();for(d=u,f=0;dg-p).map(g=>+g)}getLabelForValue(t){let e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,n){let r=this.options,o=r.time.displayFormats,a=this._unit,l=this._majorUnit,c=a&&o[a],h=l&&o[l],u=i[e],d=l&&h&&u&&u.major,f=this._adapter.format(t,n||(d?h:c)),m=r.ticks.callback;return m?j(m,[f,e,i],this):f}generateTickLabels(t){let e,i,n;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t=this._cache.data||[],e,i;if(t.length)return t;let n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(e=0,i=n.length;e=s[i].pos&&t<=s[n].pos&&({lo:i,hi:n}=Ct(s,"pos",t)),{pos:r,time:a}=s[i],{pos:o,time:l}=s[n]):(t>=s[i].time&&t<=s[n].time&&({lo:i,hi:n}=Ct(s,"time",t)),{time:r,pos:a}=s[i],{time:o,pos:l}=s[n]);let c=o-r;return c?a+(l-a)*(t-r)/c:a}var Rs=class extends we{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=zi(e,this.min),this._tableRange=zi(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){let{min:e,max:i}=this,n=[],r=[],o,a,l,c,h;for(o=0,a=t.length;o=e&&c<=i&&n.push(c);if(n.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=n.length;o=0?m:1e3+m,(d-f)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}};var ml={};function zf(s,t={}){let e=JSON.stringify([s,t]),i=ml[e];return i||(i=new Intl.ListFormat(s,t),ml[e]=i),i}var Dr={};function Er(s,t={}){let e=JSON.stringify([s,t]),i=Dr[e];return i||(i=new Intl.DateTimeFormat(s,t),Dr[e]=i),i}var Ir={};function Vf(s,t={}){let e=JSON.stringify([s,t]),i=Ir[e];return i||(i=new Intl.NumberFormat(s,t),Ir[e]=i),i}var Cr={};function Hf(s,t={}){let{base:e,...i}=t,n=JSON.stringify([s,i]),r=Cr[n];return r||(r=new Intl.RelativeTimeFormat(s,t),Cr[n]=r),r}var ni=null;function Bf(){return ni||(ni=new Intl.DateTimeFormat().resolvedOptions().locale,ni)}var gl={};function $f(s){let t=gl[s];if(!t){let e=new Intl.Locale(s);t="getWeekInfo"in e?e.getWeekInfo():e.weekInfo,gl[s]=t}return t}function jf(s){let t=s.indexOf("-x-");t!==-1&&(s=s.substring(0,t));let e=s.indexOf("-u-");if(e===-1)return[s];{let i,n;try{i=Er(s).resolvedOptions(),n=s}catch{let l=s.substring(0,e);i=Er(l).resolvedOptions(),n=l}let{numberingSystem:r,calendar:o}=i;return[n,r,o]}}function Uf(s,t,e){return(e||t)&&(s.includes("-u-")||(s+="-u"),e&&(s+=`-ca-${e}`),t&&(s+=`-nu-${t}`)),s}function Yf(s){let t=[];for(let e=1;e<=12;e++){let i=v.utc(2009,e,1);t.push(s(i))}return t}function Zf(s){let t=[];for(let e=1;e<=7;e++){let i=v.utc(2016,11,13+e);t.push(s(i))}return t}function sn(s,t,e,i){let n=s.listingMode();return n==="error"?null:n==="en"?e(t):i(t)}function qf(s){return s.numberingSystem&&s.numberingSystem!=="latn"?!1:s.numberingSystem==="latn"||!s.locale||s.locale.startsWith("en")||new Intl.DateTimeFormat(s.intl).resolvedOptions().numberingSystem==="latn"}var Fr=class{constructor(t,e,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;let{padTo:n,floor:r,...o}=i;if(!e||Object.keys(o).length>0){let a={useGrouping:!1,...i};i.padTo>0&&(a.minimumIntegerDigits=i.padTo),this.inf=Vf(t,a)}}format(t){if(this.inf){let e=this.floor?Math.floor(t):t;return this.inf.format(e)}else{let e=this.floor?Math.floor(t):ss(t,3);return q(e,this.padTo)}}},Ar=class{constructor(t,e,i){this.opts=i,this.originalZone=void 0;let n;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){let o=-1*(t.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;t.offset!==0&&nt.create(a).valid?(n=a,this.dt=t):(n="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,n=t.zone.name):(n="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);let r={...this.opts};r.timeZone=r.timeZone||n,this.dtf=Er(e,r)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(e=>{if(e.type==="timeZoneName"){let i=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:i}}else return e}):t}resolvedOptions(){return this.dtf.resolvedOptions()}},Lr=class{constructor(t,e,i){this.opts={style:"long",...i},!e&&nn()&&(this.rtf=Hf(t,i))}format(t,e){return this.rtf?this.rtf.format(t,e):pl(e,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,e){return this.rtf?this.rtf.formatToParts(t,e):[]}},Gf={firstDay:1,minimalDays:4,weekend:[6,7]},N=class{static fromOpts(t){return N.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,e,i,n,r=!1){let o=t||z.defaultLocale,a=o||(r?"en-US":Bf()),l=e||z.defaultNumberingSystem,c=i||z.defaultOutputCalendar,h=ri(n)||z.defaultWeekSettings;return new N(a,l,c,h,o)}static resetCache(){ni=null,Dr={},Ir={},Cr={}}static fromObject({locale:t,numberingSystem:e,outputCalendar:i,weekSettings:n}={}){return N.create(t,e,i,n)}constructor(t,e,i,n,r){let[o,a,l]=jf(t);this.locale=o,this.numberingSystem=e||a||null,this.outputCalendar=i||l||null,this.weekSettings=n,this.intl=Uf(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=qf(this)),this.fastNumbersCached}listingMode(){let t=this.isEnglish(),e=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&e?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:N.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,ri(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,e=!1){return sn(this,t,Pr,()=>{let i=e?{month:t,day:"numeric"}:{month:t},n=e?"format":"standalone";return this.monthsCache[n][t]||(this.monthsCache[n][t]=Yf(r=>this.extract(r,i,"month"))),this.monthsCache[n][t]})}weekdays(t,e=!1){return sn(this,t,Nr,()=>{let i=e?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},n=e?"format":"standalone";return this.weekdaysCache[n][t]||(this.weekdaysCache[n][t]=Zf(r=>this.extract(r,i,"weekday"))),this.weekdaysCache[n][t]})}meridiems(){return sn(this,void 0,()=>Rr,()=>{if(!this.meridiemCache){let t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[v.utc(2016,11,13,9),v.utc(2016,11,13,19)].map(e=>this.extract(e,t,"dayperiod"))}return this.meridiemCache})}eras(t){return sn(this,t,Wr,()=>{let e={era:t};return this.eraCache[t]||(this.eraCache[t]=[v.utc(-40,1,1),v.utc(2017,1,1)].map(i=>this.extract(i,e,"era"))),this.eraCache[t]})}extract(t,e,i){let n=this.dtFormatter(t,e),r=n.formatToParts(),o=r.find(a=>a.type.toLowerCase()===i);return o?o.value:null}numberFormatter(t={}){return new Fr(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,e={}){return new Ar(t,this.intl,e)}relFormatter(t={}){return new Lr(this.intl,this.isEnglish(),t)}listFormatter(t={}){return zf(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:rn()?$f(this.locale):Gf}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}};var Vr=null,G=class extends dt{static get utcInstance(){return Vr===null&&(Vr=new G(0)),Vr}static instance(t){return t===0?G.utcInstance:new G(t)}static parseSpecifier(t){if(t){let e=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(e)return new G(Se(e[1],e[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${le(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${le(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,e){return le(this.fixed,e)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}};var is=class extends dt{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Et(s,t){let e;if(D(s)||s===null)return t;if(s instanceof dt)return s;if(yl(s)){let i=s.toLowerCase();return i==="default"?t:i==="local"||i==="system"?Wt.instance:i==="utc"||i==="gmt"?G.utcInstance:G.parseSpecifier(i)||nt.create(s)}else return zt(s)?G.instance(s):typeof s=="object"&&"offset"in s&&typeof s.offset=="function"?s:new is(s)}var bl=()=>Date.now(),xl="system",_l=null,wl=null,Sl=null,kl=60,Ml,Tl=null,z=class{static get now(){return bl}static set now(t){bl=t}static set defaultZone(t){xl=t}static get defaultZone(){return Et(xl,Wt.instance)}static get defaultLocale(){return _l}static set defaultLocale(t){_l=t}static get defaultNumberingSystem(){return wl}static set defaultNumberingSystem(t){wl=t}static get defaultOutputCalendar(){return Sl}static set defaultOutputCalendar(t){Sl=t}static get defaultWeekSettings(){return Tl}static set defaultWeekSettings(t){Tl=ri(t)}static get twoDigitCutoffYear(){return kl}static set twoDigitCutoffYear(t){kl=t%100}static get throwOnInvalid(){return Ml}static set throwOnInvalid(t){Ml=t}static resetCaches(){N.resetCache(),nt.resetCache()}};var rt=class{constructor(t,e){this.reason=t,this.explanation=e}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}};var vl=[0,31,59,90,120,151,181,212,243,273,304,334],Ol=[0,31,60,91,121,152,182,213,244,274,305,335];function St(s,t){return new rt("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${s}, which is invalid`)}function on(s,t,e){let i=new Date(Date.UTC(s,t-1,e));s<100&&s>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);let n=i.getUTCDay();return n===0?7:n}function Dl(s,t,e){return e+(Me(s)?Ol:vl)[t-1]}function El(s,t){let e=Me(s)?Ol:vl,i=e.findIndex(r=>rke(i,t,e)?(c=i+1,l=1):c=i,{weekYear:c,weekNumber:l,weekday:a,...li(s)}}function Hr(s,t=4,e=1){let{weekYear:i,weekNumber:n,weekday:r}=s,o=an(on(i,1,t),e),a=ce(i),l=n*7+r-o-7+t,c;l<1?(c=i-1,l+=ce(c)):l>a?(c=i+1,l-=ce(i)):c=i;let{month:h,day:u}=El(c,l);return{year:c,month:h,day:u,...li(s)}}function ln(s){let{year:t,month:e,day:i}=s,n=Dl(t,e,i);return{year:t,ordinal:n,...li(s)}}function Br(s){let{year:t,ordinal:e}=s,{month:i,day:n}=El(t,e);return{year:t,month:i,day:n,...li(s)}}function $r(s,t){if(!D(s.localWeekday)||!D(s.localWeekNumber)||!D(s.localWeekYear)){if(!D(s.weekday)||!D(s.weekNumber)||!D(s.weekYear))throw new vt("Cannot mix locale-based week fields with ISO-based week fields");return D(s.localWeekday)||(s.weekday=s.localWeekday),D(s.localWeekNumber)||(s.weekNumber=s.localWeekNumber),D(s.localWeekYear)||(s.weekYear=s.localWeekYear),delete s.localWeekday,delete s.localWeekNumber,delete s.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Il(s,t=4,e=1){let i=ai(s.weekYear),n=xt(s.weekNumber,1,ke(s.weekYear,t,e)),r=xt(s.weekday,1,7);return i?n?r?!1:St("weekday",s.weekday):St("week",s.weekNumber):St("weekYear",s.weekYear)}function Cl(s){let t=ai(s.year),e=xt(s.ordinal,1,ce(s.year));return t?e?!1:St("ordinal",s.ordinal):St("year",s.year)}function jr(s){let t=ai(s.year),e=xt(s.month,1,12),i=xt(s.day,1,ns(s.year,s.month));return t?e?i?!1:St("day",s.day):St("month",s.month):St("year",s.year)}function Ur(s){let{hour:t,minute:e,second:i,millisecond:n}=s,r=xt(t,0,23)||t===24&&e===0&&i===0&&n===0,o=xt(e,0,59),a=xt(i,0,59),l=xt(n,0,999);return r?o?a?l?!1:St("millisecond",n):St("second",i):St("minute",e):St("hour",t)}function D(s){return typeof s>"u"}function zt(s){return typeof s=="number"}function ai(s){return typeof s=="number"&&s%1===0}function yl(s){return typeof s=="string"}function Al(s){return Object.prototype.toString.call(s)==="[object Date]"}function nn(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function rn(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function Ll(s){return Array.isArray(s)?s:[s]}function Yr(s,t,e){if(s.length!==0)return s.reduce((i,n)=>{let r=[t(n),n];return i&&e(i[0],r[0])===i[0]?i:r},null)[1]}function Pl(s,t){return t.reduce((e,i)=>(e[i]=s[i],e),{})}function he(s,t){return Object.prototype.hasOwnProperty.call(s,t)}function ri(s){if(s==null)return null;if(typeof s!="object")throw new st("Week settings must be an object");if(!xt(s.firstDay,1,7)||!xt(s.minimalDays,1,7)||!Array.isArray(s.weekend)||s.weekend.some(t=>!xt(t,1,7)))throw new st("Invalid week settings");return{firstDay:s.firstDay,minimalDays:s.minimalDays,weekend:Array.from(s.weekend)}}function xt(s,t,e){return ai(s)&&s>=t&&s<=e}function Xf(s,t){return s-t*Math.floor(s/t)}function q(s,t=2){let e=s<0,i;return e?i="-"+(""+-s).padStart(t,"0"):i=(""+s).padStart(t,"0"),i}function qt(s){if(!(D(s)||s===null||s===""))return parseInt(s,10)}function ue(s){if(!(D(s)||s===null||s===""))return parseFloat(s)}function ci(s){if(!(D(s)||s===null||s==="")){let t=parseFloat("0."+s)*1e3;return Math.floor(t)}}function ss(s,t,e=!1){let i=10**t;return(e?Math.trunc:Math.round)(s*i)/i}function Me(s){return s%4===0&&(s%100!==0||s%400===0)}function ce(s){return Me(s)?366:365}function ns(s,t){let e=Xf(t-1,12)+1,i=s+(t-e)/12;return e===2?Me(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][e-1]}function es(s){let t=Date.UTC(s.year,s.month-1,s.day,s.hour,s.minute,s.second,s.millisecond);return s.year<100&&s.year>=0&&(t=new Date(t),t.setUTCFullYear(s.year,s.month-1,s.day)),+t}function Fl(s,t,e){return-an(on(s,1,t),e)+t-1}function ke(s,t=4,e=1){let i=Fl(s,t,e),n=Fl(s+1,t,e);return(ce(s)-i+n)/7}function hi(s){return s>99?s:s>z.twoDigitCutoffYear?1900+s:2e3+s}function Qi(s,t,e,i=null){let n=new Date(s),r={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(r.timeZone=i);let o={timeZoneName:t,...r},a=new Intl.DateTimeFormat(e,o).formatToParts(n).find(l=>l.type.toLowerCase()==="timezonename");return a?a.value:null}function Se(s,t){let e=parseInt(s,10);Number.isNaN(e)&&(e=0);let i=parseInt(t,10)||0,n=e<0||Object.is(e,-0)?-i:i;return e*60+n}function Zr(s){let t=Number(s);if(typeof s=="boolean"||s===""||Number.isNaN(t))throw new st(`Invalid unit value ${s}`);return t}function rs(s,t){let e={};for(let i in s)if(he(s,i)){let n=s[i];if(n==null)continue;e[t(i)]=Zr(n)}return e}function le(s,t){let e=Math.trunc(Math.abs(s/60)),i=Math.trunc(Math.abs(s%60)),n=s>=0?"+":"-";switch(t){case"short":return`${n}${q(e,2)}:${q(i,2)}`;case"narrow":return`${n}${e}${i>0?`:${i}`:""}`;case"techie":return`${n}${q(e,2)}${q(i,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function li(s){return Pl(s,["hour","minute","second","millisecond"])}var Kf=["January","February","March","April","May","June","July","August","September","October","November","December"],qr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Jf=["J","F","M","A","M","J","J","A","S","O","N","D"];function Pr(s){switch(s){case"narrow":return[...Jf];case"short":return[...qr];case"long":return[...Kf];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var Gr=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Xr=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Qf=["M","T","W","T","F","S","S"];function Nr(s){switch(s){case"narrow":return[...Qf];case"short":return[...Xr];case"long":return[...Gr];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Rr=["AM","PM"],tm=["Before Christ","Anno Domini"],em=["BC","AD"],sm=["B","A"];function Wr(s){switch(s){case"narrow":return[...sm];case"short":return[...em];case"long":return[...tm];default:return null}}function Nl(s){return Rr[s.hour<12?0:1]}function Rl(s,t){return Nr(t)[s.weekday-1]}function Wl(s,t){return Pr(t)[s.month-1]}function zl(s,t){return Wr(t)[s.year<0?0:1]}function pl(s,t,e="always",i=!1){let n={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},r=["hours","minutes","seconds"].indexOf(s)===-1;if(e==="auto"&&r){let u=s==="days";switch(t){case 1:return u?"tomorrow":`next ${n[s][0]}`;case-1:return u?"yesterday":`last ${n[s][0]}`;case 0:return u?"today":`this ${n[s][0]}`;default:}}let o=Object.is(t,-0)||t<0,a=Math.abs(t),l=a===1,c=n[s],h=i?l?c[1]:c[2]||c[1]:l?n[s][0]:s;return o?`${a} ${h} ago`:`in ${a} ${h}`}function Vl(s,t){let e="";for(let i of s)i.literal?e+=i.val:e+=t(i.val);return e}var im={D:ae,DD:zs,DDD:Vs,DDDD:Hs,t:Bs,tt:$s,ttt:js,tttt:Us,T:Ys,TT:Zs,TTT:qs,TTTT:Gs,f:Xs,ff:Js,fff:ti,ffff:si,F:Ks,FF:Qs,FFF:ei,FFFF:ii},X=class{static create(t,e={}){return new X(t,e)}static parseFormat(t){let e=null,i="",n=!1,r=[];for(let o=0;o0&&r.push({literal:n||/^\s+$/.test(i),val:i}),e=null,i="",n=!n):n||a===e?i+=a:(i.length>0&&r.push({literal:/^\s+$/.test(i),val:i}),i=a,e=a)}return i.length>0&&r.push({literal:n||/^\s+$/.test(i),val:i}),r}static macroTokenToFormatOpts(t){return im[t]}constructor(t,e){this.opts=e,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,e){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...e}).format()}dtFormatter(t,e={}){return this.loc.dtFormatter(t,{...this.opts,...e})}formatDateTime(t,e){return this.dtFormatter(t,e).format()}formatDateTimeParts(t,e){return this.dtFormatter(t,e).formatToParts()}formatInterval(t,e){return this.dtFormatter(t.start,e).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,e){return this.dtFormatter(t,e).resolvedOptions()}num(t,e=0){if(this.opts.forceSimple)return q(t,e);let i={...this.opts};return e>0&&(i.padTo=e),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,e){let i=this.loc.listingMode()==="en",n=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",r=(f,m)=>this.loc.extract(t,f,m),o=f=>t.isOffsetFixed&&t.offset===0&&f.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,f.format):"",a=()=>i?Nl(t):r({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(f,m)=>i?Wl(t,f):r(m?{month:f}:{month:f,day:"numeric"},"month"),c=(f,m)=>i?Rl(t,f):r(m?{weekday:f}:{weekday:f,month:"long",day:"numeric"},"weekday"),h=f=>{let m=X.macroTokenToFormatOpts(f);return m?this.formatWithSystemDefault(t,m):f},u=f=>i?zl(t,f):r({era:f},"era"),d=f=>{switch(f){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return a();case"d":return n?r({day:"numeric"},"day"):this.num(t.day);case"dd":return n?r({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return n?r({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return n?r({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return n?r({month:"numeric"},"month"):this.num(t.month);case"MM":return n?r({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return n?r({year:"numeric"},"year"):this.num(t.year);case"yy":return n?r({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return n?r({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return n?r({year:"numeric"},"year"):this.num(t.year,6);case"G":return u("short");case"GG":return u("long");case"GGGGG":return u("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return h(f)}};return Vl(X.parseFormat(e),d)}formatDurationFromString(t,e){let i=l=>{switch(l[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},n=l=>c=>{let h=i(c);return h?this.num(l.get(h),c.length):c},r=X.parseFormat(e),o=r.reduce((l,{literal:c,val:h})=>c?l:l.concat(h),[]),a=t.shiftTo(...o.map(i).filter(l=>l));return Vl(r,n(a))}};var Bl=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function as(...s){let t=s.reduce((e,i)=>e+i.source,"");return RegExp(`^${t}$`)}function ls(...s){return t=>s.reduce(([e,i,n],r)=>{let[o,a,l]=r(t,n);return[{...e,...o},a||i,l]},[{},null,1]).slice(0,2)}function cs(s,...t){if(s==null)return[null,null];for(let[e,i]of t){let n=e.exec(s);if(n)return i(n)}return[null,null]}function $l(...s){return(t,e)=>{let i={},n;for(n=0;nf!==void 0&&(m||f&&h)?-f:f;return[{years:d(ue(e)),months:d(ue(i)),weeks:d(ue(n)),days:d(ue(r)),hours:d(ue(o)),minutes:d(ue(a)),seconds:d(ue(l),l==="-0"),milliseconds:d(ci(c),u)}]}var pm={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Qr(s,t,e,i,n,r,o){let a={year:t.length===2?hi(qt(t)):qt(t),month:qr.indexOf(e)+1,day:qt(i),hour:qt(n),minute:qt(r)};return o&&(a.second=qt(o)),s&&(a.weekday=s.length>3?Gr.indexOf(s)+1:Xr.indexOf(s)+1),a}var ym=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function bm(s){let[,t,e,i,n,r,o,a,l,c,h,u]=s,d=Qr(t,n,i,e,r,o,a),f;return l?f=pm[l]:c?f=0:f=Se(h,u),[d,new G(f)]}function xm(s){return s.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var _m=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,wm=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Sm=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Hl(s){let[,t,e,i,n,r,o,a]=s;return[Qr(t,n,i,e,r,o,a),G.utcInstance]}function km(s){let[,t,e,i,n,r,o,a]=s;return[Qr(t,a,e,i,n,r,o),G.utcInstance]}var Mm=as(rm,Jr),Tm=as(om,Jr),vm=as(am,Jr),Om=as(Ul),Zl=ls(dm,hs,ui,di),Dm=ls(lm,hs,ui,di),Em=ls(cm,hs,ui,di),Im=ls(hs,ui,di);function ql(s){return cs(s,[Mm,Zl],[Tm,Dm],[vm,Em],[Om,Im])}function Gl(s){return cs(xm(s),[ym,bm])}function Xl(s){return cs(s,[_m,Hl],[wm,Hl],[Sm,km])}function Kl(s){return cs(s,[mm,gm])}var Cm=ls(hs);function Jl(s){return cs(s,[fm,Cm])}var Fm=as(hm,um),Am=as(Yl),Lm=ls(hs,ui,di);function Ql(s){return cs(s,[Fm,Zl],[Am,Lm])}var tc="Invalid Duration",sc={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Pm={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...sc},kt=146097/400,us=146097/4800,Nm={years:{quarters:4,months:12,weeks:kt/7,days:kt,hours:kt*24,minutes:kt*24*60,seconds:kt*24*60*60,milliseconds:kt*24*60*60*1e3},quarters:{months:3,weeks:kt/28,days:kt/4,hours:kt*24/4,minutes:kt*24*60/4,seconds:kt*24*60*60/4,milliseconds:kt*24*60*60*1e3/4},months:{weeks:us/7,days:us,hours:us*24,minutes:us*24*60,seconds:us*24*60*60,milliseconds:us*24*60*60*1e3},...sc},Te=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Rm=Te.slice(0).reverse();function de(s,t,e=!1){let i={values:e?t.values:{...s.values,...t.values||{}},loc:s.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||s.conversionAccuracy,matrix:t.matrix||s.matrix};return new C(i)}function ic(s,t){let e=t.milliseconds??0;for(let i of Rm.slice(1))t[i]&&(e+=t[i]*s[i].milliseconds);return e}function ec(s,t){let e=ic(s,t)<0?-1:1;Te.reduceRight((i,n)=>{if(D(t[n]))return i;if(i){let r=t[i]*e,o=s[n][i],a=Math.floor(r/o);t[n]+=a*e,t[i]-=a*o*e}return n},null),Te.reduce((i,n)=>{if(D(t[n]))return i;if(i){let r=t[i]%1;t[i]-=r,t[n]+=r*s[i][n]}return n},null)}function Wm(s){let t={};for(let[e,i]of Object.entries(s))i!==0&&(t[e]=i);return t}var C=class{constructor(t){let e=t.conversionAccuracy==="longterm"||!1,i=e?Nm:Pm;t.matrix&&(i=t.matrix),this.values=t.values,this.loc=t.loc||N.create(),this.conversionAccuracy=e?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(t,e){return C.fromObject({milliseconds:t},e)}static fromObject(t,e={}){if(t==null||typeof t!="object")throw new st(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new C({values:rs(t,C.normalizeUnit),loc:N.fromObject(e),conversionAccuracy:e.conversionAccuracy,matrix:e.matrix})}static fromDurationLike(t){if(zt(t))return C.fromMillis(t);if(C.isDuration(t))return t;if(typeof t=="object")return C.fromObject(t);throw new st(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,e){let[i]=Kl(t);return i?C.fromObject(i,e):C.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,e){let[i]=Jl(t);return i?C.fromObject(i,e):C.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,e=null){if(!t)throw new st("need to specify a reason the Duration is invalid");let i=t instanceof rt?t:new rt(t,e);if(z.throwOnInvalid)throw new Ki(i);return new C({invalid:i})}static normalizeUnit(t){let e={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!e)throw new ts(t);return e}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,e={}){let i={...e,floor:e.round!==!1&&e.floor!==!1};return this.isValid?X.create(this.loc,i).formatDurationFromString(this,t):tc}toHuman(t={}){if(!this.isValid)return tc;let e=Te.map(i=>{let n=this.values[i];return D(n)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(n)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(e)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=ss(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;let e=this.toMillis();return e<0||e>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},v.fromMillis(e,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?ic(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let e=C.fromDurationLike(t),i={};for(let n of Te)(he(e.values,n)||he(this.values,n))&&(i[n]=e.get(n)+this.get(n));return de(this,{values:i},!0)}minus(t){if(!this.isValid)return this;let e=C.fromDurationLike(t);return this.plus(e.negate())}mapUnits(t){if(!this.isValid)return this;let e={};for(let i of Object.keys(this.values))e[i]=Zr(t(this.values[i],i));return de(this,{values:e},!0)}get(t){return this[C.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let e={...this.values,...rs(t,C.normalizeUnit)};return de(this,{values:e})}reconfigure({locale:t,numberingSystem:e,conversionAccuracy:i,matrix:n}={}){let o={loc:this.loc.clone({locale:t,numberingSystem:e}),matrix:n,conversionAccuracy:i};return de(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;let t=this.toObject();return ec(this.matrix,t),de(this,{values:t},!0)}rescale(){if(!this.isValid)return this;let t=Wm(this.normalize().shiftToAll().toObject());return de(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(o=>C.normalizeUnit(o));let e={},i={},n=this.toObject(),r;for(let o of Te)if(t.indexOf(o)>=0){r=o;let a=0;for(let c in i)a+=this.matrix[c][o]*i[c],i[c]=0;zt(n[o])&&(a+=n[o]);let l=Math.trunc(a);e[o]=l,i[o]=(a*1e3-l*1e3)/1e3}else zt(n[o])&&(i[o]=n[o]);for(let o in i)i[o]!==0&&(e[r]+=o===r?i[o]:i[o]/this.matrix[r][o]);return ec(this.matrix,e),de(this,{values:e},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let t={};for(let e of Object.keys(this.values))t[e]=this.values[e]===0?0:-this.values[e];return de(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function e(i,n){return i===void 0||i===0?n===void 0||n===0:i===n}for(let i of Te)if(!e(this.values[i],t.values[i]))return!1;return!0}};var ds="Invalid Interval";function zm(s,t){return!s||!s.isValid?U.invalid("missing or invalid start"):!t||!t.isValid?U.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:e}={}){return this.isValid?U.fromDateTimes(t||this.s,e||this.e):this}splitAt(...t){if(!this.isValid)return[];let e=t.map(fs).filter(o=>this.contains(o)).sort((o,a)=>o.toMillis()-a.toMillis()),i=[],{s:n}=this,r=0;for(;n+this.e?this.e:o;i.push(U.fromDateTimes(n,a)),n=a,r+=1}return i}splitBy(t){let e=C.fromDurationLike(t);if(!this.isValid||!e.isValid||e.as("milliseconds")===0)return[];let{s:i}=this,n=1,r,o=[];for(;il*n));r=+a>+this.e?this.e:a,o.push(U.fromDateTimes(i,r)),i=r,n+=1}return o}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;let e=this.s>t.s?this.s:t.s,i=this.e=i?null:U.fromDateTimes(e,i)}union(t){if(!this.isValid)return this;let e=this.st.e?this.e:t.e;return U.fromDateTimes(e,i)}static merge(t){let[e,i]=t.sort((n,r)=>n.s-r.s).reduce(([n,r],o)=>r?r.overlaps(o)||r.abutsStart(o)?[n,r.union(o)]:[n.concat([r]),o]:[n,o],[[],null]);return i&&e.push(i),e}static xor(t){let e=null,i=0,n=[],r=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),o=Array.prototype.concat(...r),a=o.sort((l,c)=>l.time-c.time);for(let l of a)i+=l.type==="s"?1:-1,i===1?e=l.time:(e&&+e!=+l.time&&n.push(U.fromDateTimes(e,l.time)),e=null);return U.merge(n)}difference(...t){return U.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:ds}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=ae,e={}){return this.isValid?X.create(this.s.loc.clone(e),t).formatInterval(this):ds}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:ds}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ds}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:ds}toFormat(t,{separator:e=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${e}${this.e.toFormat(t)}`:ds}toDuration(t,e){return this.isValid?this.e.diff(this.s,t,e):C.invalid(this.invalidReason)}mapEndpoints(t){return U.fromDateTimes(t(this.s),t(this.e))}};var Gt=class{static hasDST(t=z.defaultZone){let e=v.now().setZone(t).set({month:12});return!t.isUniversal&&e.offset!==e.set({month:6}).offset}static isValidIANAZone(t){return nt.isValidZone(t)}static normalizeZone(t){return Et(t,z.defaultZone)}static getStartOfWeek({locale:t=null,locObj:e=null}={}){return(e||N.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:e=null}={}){return(e||N.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:e=null}={}){return(e||N.create(t)).getWeekendDays().slice()}static months(t="long",{locale:e=null,numberingSystem:i=null,locObj:n=null,outputCalendar:r="gregory"}={}){return(n||N.create(e,i,r)).months(t)}static monthsFormat(t="long",{locale:e=null,numberingSystem:i=null,locObj:n=null,outputCalendar:r="gregory"}={}){return(n||N.create(e,i,r)).months(t,!0)}static weekdays(t="long",{locale:e=null,numberingSystem:i=null,locObj:n=null}={}){return(n||N.create(e,i,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:e=null,numberingSystem:i=null,locObj:n=null}={}){return(n||N.create(e,i,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return N.create(t).meridiems()}static eras(t="short",{locale:e=null}={}){return N.create(e,null,"gregory").eras(t)}static features(){return{relative:nn(),localeWeek:rn()}}};function nc(s,t){let e=n=>n.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=e(t)-e(s);return Math.floor(C.fromMillis(i).as("days"))}function Vm(s,t,e){let i=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{let h=nc(l,c);return(h-h%7)/7}],["days",nc]],n={},r=s,o,a;for(let[l,c]of i)e.indexOf(l)>=0&&(o=l,n[l]=c(s,t),a=r.plus(n),a>t?(n[l]--,s=r.plus(n),s>t&&(a=s,n[l]--,s=r.plus(n))):s=a);return[s,n,a,o]}function rc(s,t,e,i){let[n,r,o,a]=Vm(s,t,e),l=t-n,c=e.filter(u=>["hours","minutes","seconds","milliseconds"].indexOf(u)>=0);c.length===0&&(o0?C.fromMillis(l,i).shiftTo(...c).plus(h):h}var to={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},oc={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Hm=to.hanidec.replace(/[\[|\]]/g,"").split("");function ac(s){let t=parseInt(s,10);if(isNaN(t)){t="";for(let e=0;e=r&&i<=o&&(t+=i-r)}}return parseInt(t,10)}else return t}function Mt({numberingSystem:s},t=""){return new RegExp(`${to[s||"latn"]}${t}`)}var Bm="missing Intl.DateTimeFormat.formatToParts support";function V(s,t=e=>e){return{regex:s,deser:([e])=>t(ac(e))}}var $m=String.fromCharCode(160),hc=`[ ${$m}]`,uc=new RegExp(hc,"g");function jm(s){return s.replace(/\./g,"\\.?").replace(uc,hc)}function lc(s){return s.replace(/\./g,"").replace(uc," ").toLowerCase()}function It(s,t){return s===null?null:{regex:RegExp(s.map(jm).join("|")),deser:([e])=>s.findIndex(i=>lc(e)===lc(i))+t}}function cc(s,t){return{regex:s,deser:([,e,i])=>Se(e,i),groups:t}}function cn(s){return{regex:s,deser:([t])=>t}}function Um(s){return s.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Ym(s,t){let e=Mt(t),i=Mt(t,"{2}"),n=Mt(t,"{3}"),r=Mt(t,"{4}"),o=Mt(t,"{6}"),a=Mt(t,"{1,2}"),l=Mt(t,"{1,3}"),c=Mt(t,"{1,6}"),h=Mt(t,"{1,9}"),u=Mt(t,"{2,4}"),d=Mt(t,"{4,6}"),f=p=>({regex:RegExp(Um(p.val)),deser:([y])=>y,literal:!0}),g=(p=>{if(s.literal)return f(p);switch(p.val){case"G":return It(t.eras("short"),0);case"GG":return It(t.eras("long"),0);case"y":return V(c);case"yy":return V(u,hi);case"yyyy":return V(r);case"yyyyy":return V(d);case"yyyyyy":return V(o);case"M":return V(a);case"MM":return V(i);case"MMM":return It(t.months("short",!0),1);case"MMMM":return It(t.months("long",!0),1);case"L":return V(a);case"LL":return V(i);case"LLL":return It(t.months("short",!1),1);case"LLLL":return It(t.months("long",!1),1);case"d":return V(a);case"dd":return V(i);case"o":return V(l);case"ooo":return V(n);case"HH":return V(i);case"H":return V(a);case"hh":return V(i);case"h":return V(a);case"mm":return V(i);case"m":return V(a);case"q":return V(a);case"qq":return V(i);case"s":return V(a);case"ss":return V(i);case"S":return V(l);case"SSS":return V(n);case"u":return cn(h);case"uu":return cn(a);case"uuu":return V(e);case"a":return It(t.meridiems(),0);case"kkkk":return V(r);case"kk":return V(u,hi);case"W":return V(a);case"WW":return V(i);case"E":case"c":return V(e);case"EEE":return It(t.weekdays("short",!1),1);case"EEEE":return It(t.weekdays("long",!1),1);case"ccc":return It(t.weekdays("short",!0),1);case"cccc":return It(t.weekdays("long",!0),1);case"Z":case"ZZ":return cc(new RegExp(`([+-]${a.source})(?::(${i.source}))?`),2);case"ZZZ":return cc(new RegExp(`([+-]${a.source})(${i.source})?`),2);case"z":return cn(/[a-z_+-/]{1,256}?/i);case" ":return cn(/[^\S\n\r]/);default:return f(p)}})(s)||{invalidReason:Bm};return g.token=s,g}var Zm={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function qm(s,t,e){let{type:i,value:n}=s;if(i==="literal"){let l=/^\s+$/.test(n);return{literal:!l,val:l?" ":n}}let r=t[i],o=i;i==="hour"&&(t.hour12!=null?o=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?o="hour12":o="hour24":o=e.hour12?"hour12":"hour24");let a=Zm[o];if(typeof a=="object"&&(a=a[r]),a)return{literal:!1,val:a}}function Gm(s){return[`^${s.map(e=>e.regex).reduce((e,i)=>`${e}(${i.source})`,"")}$`,s]}function Xm(s,t,e){let i=s.match(t);if(i){let n={},r=1;for(let o in e)if(he(e,o)){let a=e[o],l=a.groups?a.groups+1:1;!a.literal&&a.token&&(n[a.token.val[0]]=a.deser(i.slice(r,r+l))),r+=l}return[i,n]}else return[i,{}]}function Km(s){let t=r=>{switch(r){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},e=null,i;return D(s.z)||(e=nt.create(s.z)),D(s.Z)||(e||(e=new G(s.Z)),i=s.Z),D(s.q)||(s.M=(s.q-1)*3+1),D(s.h)||(s.h<12&&s.a===1?s.h+=12:s.h===12&&s.a===0&&(s.h=0)),s.G===0&&s.y&&(s.y=-s.y),D(s.u)||(s.S=ci(s.u)),[Object.keys(s).reduce((r,o)=>{let a=t(o);return a&&(r[a]=s[o]),r},{}),e,i]}var eo=null;function Jm(){return eo||(eo=v.fromMillis(1555555555555)),eo}function Qm(s,t){if(s.literal)return s;let e=X.macroTokenToFormatOpts(s.val),i=no(e,t);return i==null||i.includes(void 0)?s:i}function so(s,t){return Array.prototype.concat(...s.map(e=>Qm(e,t)))}function io(s,t,e){let i=so(X.parseFormat(e),s),n=i.map(o=>Ym(o,s)),r=n.find(o=>o.invalidReason);if(r)return{input:t,tokens:i,invalidReason:r.invalidReason};{let[o,a]=Gm(n),l=RegExp(o,"i"),[c,h]=Xm(t,l,a),[u,d,f]=h?Km(h):[null,null,void 0];if(he(h,"a")&&he(h,"H"))throw new vt("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:i,regex:l,rawMatches:c,matches:h,result:u,zone:d,specificOffset:f}}}function dc(s,t,e){let{result:i,zone:n,specificOffset:r,invalidReason:o}=io(s,t,e);return[i,n,r,o]}function no(s,t){if(!s)return null;let i=X.create(t,s).dtFormatter(Jm()),n=i.formatToParts(),r=i.resolvedOptions();return n.map(o=>qm(o,s,r))}var ro="Invalid DateTime",fc=864e13;function hn(s){return new rt("unsupported zone",`the zone "${s.name}" is not supported`)}function oo(s){return s.weekData===null&&(s.weekData=oi(s.c)),s.weekData}function ao(s){return s.localWeekData===null&&(s.localWeekData=oi(s.c,s.loc.getMinDaysInFirstWeek(),s.loc.getStartOfWeek())),s.localWeekData}function ve(s,t){let e={ts:s.ts,zone:s.zone,c:s.c,o:s.o,loc:s.loc,invalid:s.invalid};return new v({...e,...t,old:e})}function _c(s,t,e){let i=s-t*60*1e3,n=e.offset(i);if(t===n)return[i,t];i-=(n-t)*60*1e3;let r=e.offset(i);return n===r?[i,n]:[s-Math.min(n,r)*60*1e3,Math.max(n,r)]}function un(s,t){s+=t*60*1e3;let e=new Date(s);return{year:e.getUTCFullYear(),month:e.getUTCMonth()+1,day:e.getUTCDate(),hour:e.getUTCHours(),minute:e.getUTCMinutes(),second:e.getUTCSeconds(),millisecond:e.getUTCMilliseconds()}}function fn(s,t,e){return _c(es(s),t,e)}function mc(s,t){let e=s.o,i=s.c.year+Math.trunc(t.years),n=s.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,r={...s.c,year:i,month:n,day:Math.min(s.c.day,ns(i,n))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=C.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),a=es(r),[l,c]=_c(a,e,s.zone);return o!==0&&(l+=o,c=s.zone.offset(l)),{ts:l,o:c}}function fi(s,t,e,i,n,r){let{setZone:o,zone:a}=e;if(s&&Object.keys(s).length!==0||t){let l=t||a,c=v.fromObject(s,{...e,zone:l,specificOffset:r});return o?c:c.setZone(a)}else return v.invalid(new rt("unparsable",`the input "${n}" can't be parsed as ${i}`))}function dn(s,t,e=!0){return s.isValid?X.create(N.create("en-US"),{allowZ:e,forceSimple:!0}).formatDateTimeFromString(s,t):null}function lo(s,t){let e=s.c.year>9999||s.c.year<0,i="";return e&&s.c.year>=0&&(i+="+"),i+=q(s.c.year,e?6:4),t?(i+="-",i+=q(s.c.month),i+="-",i+=q(s.c.day)):(i+=q(s.c.month),i+=q(s.c.day)),i}function gc(s,t,e,i,n,r){let o=q(s.c.hour);return t?(o+=":",o+=q(s.c.minute),(s.c.millisecond!==0||s.c.second!==0||!e)&&(o+=":")):o+=q(s.c.minute),(s.c.millisecond!==0||s.c.second!==0||!e)&&(o+=q(s.c.second),(s.c.millisecond!==0||!i)&&(o+=".",o+=q(s.c.millisecond,3))),n&&(s.isOffsetFixed&&s.offset===0&&!r?o+="Z":s.o<0?(o+="-",o+=q(Math.trunc(-s.o/60)),o+=":",o+=q(Math.trunc(-s.o%60))):(o+="+",o+=q(Math.trunc(s.o/60)),o+=":",o+=q(Math.trunc(s.o%60)))),r&&(o+="["+s.zone.ianaName+"]"),o}var wc={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},tg={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},eg={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Sc=["year","month","day","hour","minute","second","millisecond"],sg=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ig=["year","ordinal","hour","minute","second","millisecond"];function ng(s){let t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[s.toLowerCase()];if(!t)throw new ts(s);return t}function pc(s){switch(s.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return ng(s)}}function yc(s,t){let e=Et(t.zone,z.defaultZone),i=N.fromObject(t),n=z.now(),r,o;if(D(s.year))r=n;else{for(let c of Sc)D(s[c])&&(s[c]=wc[c]);let a=jr(s)||Ur(s);if(a)return v.invalid(a);let l=e.offset(n);[r,o]=fn(s,l,e)}return new v({ts:r,zone:e,loc:i,o})}function bc(s,t,e){let i=D(e.round)?!0:e.round,n=(o,a)=>(o=ss(o,i||e.calendary?0:2,!0),t.loc.clone(e).relFormatter(e).format(o,a)),r=o=>e.calendary?t.hasSame(s,o)?0:t.startOf(o).diff(s.startOf(o),o).get(o):t.diff(s,o).get(o);if(e.unit)return n(r(e.unit),e.unit);for(let o of e.units){let a=r(o);if(Math.abs(a)>=1)return n(a,o)}return n(s>t?-0:0,e.units[e.units.length-1])}function xc(s){let t={},e;return s.length>0&&typeof s[s.length-1]=="object"?(t=s[s.length-1],e=Array.from(s).slice(0,s.length-1)):e=Array.from(s),[t,e]}var v=class{constructor(t){let e=t.zone||z.defaultZone,i=t.invalid||(Number.isNaN(t.ts)?new rt("invalid input"):null)||(e.isValid?null:hn(e));this.ts=D(t.ts)?z.now():t.ts;let n=null,r=null;if(!i)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(e))[n,r]=[t.old.c,t.old.o];else{let a=e.offset(this.ts);n=un(this.ts,a),i=Number.isNaN(n.year)?new rt("invalid input"):null,n=i?null:n,r=i?null:a}this._zone=e,this.loc=t.loc||N.create(),this.invalid=i,this.weekData=null,this.localWeekData=null,this.c=n,this.o=r,this.isLuxonDateTime=!0}static now(){return new v({})}static local(){let[t,e]=xc(arguments),[i,n,r,o,a,l,c]=e;return yc({year:i,month:n,day:r,hour:o,minute:a,second:l,millisecond:c},t)}static utc(){let[t,e]=xc(arguments),[i,n,r,o,a,l,c]=e;return t.zone=G.utcInstance,yc({year:i,month:n,day:r,hour:o,minute:a,second:l,millisecond:c},t)}static fromJSDate(t,e={}){let i=Al(t)?t.valueOf():NaN;if(Number.isNaN(i))return v.invalid("invalid input");let n=Et(e.zone,z.defaultZone);return n.isValid?new v({ts:i,zone:n,loc:N.fromObject(e)}):v.invalid(hn(n))}static fromMillis(t,e={}){if(zt(t))return t<-fc||t>fc?v.invalid("Timestamp out of range"):new v({ts:t,zone:Et(e.zone,z.defaultZone),loc:N.fromObject(e)});throw new st(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,e={}){if(zt(t))return new v({ts:t*1e3,zone:Et(e.zone,z.defaultZone),loc:N.fromObject(e)});throw new st("fromSeconds requires a numerical input")}static fromObject(t,e={}){t=t||{};let i=Et(e.zone,z.defaultZone);if(!i.isValid)return v.invalid(hn(i));let n=N.fromObject(e),r=rs(t,pc),{minDaysInFirstWeek:o,startOfWeek:a}=$r(r,n),l=z.now(),c=D(e.specificOffset)?i.offset(l):e.specificOffset,h=!D(r.ordinal),u=!D(r.year),d=!D(r.month)||!D(r.day),f=u||d,m=r.weekYear||r.weekNumber;if((f||h)&&m)throw new vt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(d&&h)throw new vt("Can't mix ordinal dates with month/day");let g=m||r.weekday&&!f,p,y,b=un(l,c);g?(p=sg,y=tg,b=oi(b,o,a)):h?(p=ig,y=eg,b=ln(b)):(p=Sc,y=wc);let _=!1;for(let F of p){let W=r[F];D(W)?_?r[F]=y[F]:r[F]=b[F]:_=!0}let w=g?Il(r,o,a):h?Cl(r):jr(r),x=w||Ur(r);if(x)return v.invalid(x);let S=g?Hr(r,o,a):h?Br(r):r,[k,O]=fn(S,c,i),T=new v({ts:k,zone:i,o:O,loc:n});return r.weekday&&f&&t.weekday!==T.weekday?v.invalid("mismatched weekday",`you can't specify both a weekday of ${r.weekday} and a date of ${T.toISO()}`):T}static fromISO(t,e={}){let[i,n]=ql(t);return fi(i,n,e,"ISO 8601",t)}static fromRFC2822(t,e={}){let[i,n]=Gl(t);return fi(i,n,e,"RFC 2822",t)}static fromHTTP(t,e={}){let[i,n]=Xl(t);return fi(i,n,e,"HTTP",e)}static fromFormat(t,e,i={}){if(D(t)||D(e))throw new st("fromFormat requires an input string and a format");let{locale:n=null,numberingSystem:r=null}=i,o=N.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),[a,l,c,h]=dc(o,t,e);return h?v.invalid(h):fi(a,l,i,`format ${e}`,t,c)}static fromString(t,e,i={}){return v.fromFormat(t,e,i)}static fromSQL(t,e={}){let[i,n]=Ql(t);return fi(i,n,e,"SQL",t)}static invalid(t,e=null){if(!t)throw new st("need to specify a reason the DateTime is invalid");let i=t instanceof rt?t:new rt(t,e);if(z.throwOnInvalid)throw new Gi(i);return new v({invalid:i})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,e={}){let i=no(t,N.fromObject(e));return i?i.map(n=>n?n.val:null).join(""):null}static expandFormat(t,e={}){return so(X.parseFormat(t),N.fromObject(e)).map(n=>n.val).join("")}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?oo(this).weekYear:NaN}get weekNumber(){return this.isValid?oo(this).weekNumber:NaN}get weekday(){return this.isValid?oo(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?ao(this).weekday:NaN}get localWeekNumber(){return this.isValid?ao(this).weekNumber:NaN}get localWeekYear(){return this.isValid?ao(this).weekYear:NaN}get ordinal(){return this.isValid?ln(this.c).ordinal:NaN}get monthShort(){return this.isValid?Gt.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Gt.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Gt.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Gt.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let t=864e5,e=6e4,i=es(this.c),n=this.zone.offset(i-t),r=this.zone.offset(i+t),o=this.zone.offset(i-n*e),a=this.zone.offset(i-r*e);if(o===a)return[this];let l=i-o*e,c=i-a*e,h=un(l,o),u=un(c,a);return h.hour===u.hour&&h.minute===u.minute&&h.second===u.second&&h.millisecond===u.millisecond?[ve(this,{ts:l}),ve(this,{ts:c})]:[this]}get isInLeapYear(){return Me(this.year)}get daysInMonth(){return ns(this.year,this.month)}get daysInYear(){return this.isValid?ce(this.year):NaN}get weeksInWeekYear(){return this.isValid?ke(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?ke(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){let{locale:e,numberingSystem:i,calendar:n}=X.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:e,numberingSystem:i,outputCalendar:n}}toUTC(t=0,e={}){return this.setZone(G.instance(t),e)}toLocal(){return this.setZone(z.defaultZone)}setZone(t,{keepLocalTime:e=!1,keepCalendarTime:i=!1}={}){if(t=Et(t,z.defaultZone),t.equals(this.zone))return this;if(t.isValid){let n=this.ts;if(e||i){let r=t.offset(this.ts),o=this.toObject();[n]=fn(o,r,t)}return ve(this,{ts:n,zone:t})}else return v.invalid(hn(t))}reconfigure({locale:t,numberingSystem:e,outputCalendar:i}={}){let n=this.loc.clone({locale:t,numberingSystem:e,outputCalendar:i});return ve(this,{loc:n})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;let e=rs(t,pc),{minDaysInFirstWeek:i,startOfWeek:n}=$r(e,this.loc),r=!D(e.weekYear)||!D(e.weekNumber)||!D(e.weekday),o=!D(e.ordinal),a=!D(e.year),l=!D(e.month)||!D(e.day),c=a||l,h=e.weekYear||e.weekNumber;if((c||o)&&h)throw new vt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&o)throw new vt("Can't mix ordinal dates with month/day");let u;r?u=Hr({...oi(this.c,i,n),...e},i,n):D(e.ordinal)?(u={...this.toObject(),...e},D(e.day)&&(u.day=Math.min(ns(u.year,u.month),u.day))):u=Br({...ln(this.c),...e});let[d,f]=fn(u,this.o,this.zone);return ve(this,{ts:d,o:f})}plus(t){if(!this.isValid)return this;let e=C.fromDurationLike(t);return ve(this,mc(this,e))}minus(t){if(!this.isValid)return this;let e=C.fromDurationLike(t).negate();return ve(this,mc(this,e))}startOf(t,{useLocaleWeeks:e=!1}={}){if(!this.isValid)return this;let i={},n=C.normalizeUnit(t);switch(n){case"years":i.month=1;case"quarters":case"months":i.day=1;case"weeks":case"days":i.hour=0;case"hours":i.minute=0;case"minutes":i.second=0;case"seconds":i.millisecond=0;break;case"milliseconds":break}if(n==="weeks")if(e){let r=this.loc.getStartOfWeek(),{weekday:o}=this;othis.valueOf(),a=o?this:t,l=o?t:this,c=rc(a,l,r,n);return o?c.negate():c}diffNow(t="milliseconds",e={}){return this.diff(v.now(),t,e)}until(t){return this.isValid?U.fromDateTimes(this,t):this}hasSame(t,e,i){if(!this.isValid)return!1;let n=t.valueOf(),r=this.setZone(t.zone,{keepLocalTime:!0});return r.startOf(e,i)<=n&&n<=r.endOf(e,i)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;let e=t.base||v.fromObject({},{zone:this.zone}),i=t.padding?thise.valueOf(),Math.min)}static max(...t){if(!t.every(v.isDateTime))throw new st("max requires all arguments be DateTimes");return Yr(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(t,e,i={}){let{locale:n=null,numberingSystem:r=null}=i,o=N.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return io(o,t,e)}static fromStringExplain(t,e,i={}){return v.fromFormatExplain(t,e,i)}static get DATE_SHORT(){return ae}static get DATE_MED(){return zs}static get DATE_MED_WITH_WEEKDAY(){return Tr}static get DATE_FULL(){return Vs}static get DATE_HUGE(){return Hs}static get TIME_SIMPLE(){return Bs}static get TIME_WITH_SECONDS(){return $s}static get TIME_WITH_SHORT_OFFSET(){return js}static get TIME_WITH_LONG_OFFSET(){return Us}static get TIME_24_SIMPLE(){return Ys}static get TIME_24_WITH_SECONDS(){return Zs}static get TIME_24_WITH_SHORT_OFFSET(){return qs}static get TIME_24_WITH_LONG_OFFSET(){return Gs}static get DATETIME_SHORT(){return Xs}static get DATETIME_SHORT_WITH_SECONDS(){return Ks}static get DATETIME_MED(){return Js}static get DATETIME_MED_WITH_SECONDS(){return Qs}static get DATETIME_MED_WITH_WEEKDAY(){return vr}static get DATETIME_FULL(){return ti}static get DATETIME_FULL_WITH_SECONDS(){return ei}static get DATETIME_HUGE(){return si}static get DATETIME_HUGE_WITH_SECONDS(){return ii}};function fs(s){if(v.isDateTime(s))return s;if(s&&s.valueOf&&zt(s.valueOf()))return v.fromJSDate(s);if(s&&typeof s=="object")return v.fromObject(s);throw new st(`Unknown datetime argument: ${s}, of type ${typeof s}`)}var rg={datetime:v.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:v.TIME_WITH_SECONDS,minute:v.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};kr._date.override({_id:"luxon",_create:function(s){return v.fromMillis(s,this.options)},init(s){this.options.locale||(this.options.locale=s.locale)},formats:function(){return rg},parse:function(s,t){let e=this.options,i=typeof s;return s===null||i==="undefined"?null:(i==="number"?s=this._create(s):i==="string"?typeof t=="string"?s=v.fromFormat(s,t,e):s=v.fromISO(s,e):s instanceof Date?s=v.fromJSDate(s,e):i==="object"&&!(s instanceof v)&&(s=v.fromObject(s,e)),s.isValid?s.valueOf():null)},format:function(s,t){let e=this._create(s);return typeof t=="string"?e.toFormat(t):e.toLocaleString(t)},add:function(s,t,e){let i={};return i[e]=t,this._create(s).plus(i).valueOf()},diff:function(s,t,e){return this._create(s).diff(this._create(t)).as(e).valueOf()},startOf:function(s,t,e){if(t==="isoWeek"){e=Math.trunc(Math.min(Math.max(0,e),6));let i=this._create(s);return i.minus({days:(i.weekday-e+7)%7}).startOf("day").valueOf()}return t?this._create(s).startOf(t).valueOf():s},endOf:function(s,t){return this._create(s).endOf(t).valueOf()}});function mn({cachedData:s,options:t,type:e}){return{init:function(){this.initChart(),this.$wire.$on("updateChartData",({data:i})=>{mn=this.getChart(),mn.data=i,mn.update("resize")}),Alpine.effect(()=>{Alpine.store("theme"),this.$nextTick(()=>{this.getChart().destroy(),this.initChart()})}),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{Alpine.store("theme")==="system"&&this.$nextTick(()=>{this.getChart().destroy(),this.initChart()})})},initChart:function(i=null){var o,a,l,c,h,u,d;Rt.defaults.animation.duration=0,Rt.defaults.backgroundColor=getComputedStyle(this.$refs.backgroundColorElement).color;let n=getComputedStyle(this.$refs.borderColorElement).color;Rt.defaults.borderColor=n,Rt.defaults.color=getComputedStyle(this.$refs.textColorElement).color,Rt.defaults.font.family=getComputedStyle(this.$el).fontFamily,Rt.defaults.plugins.legend.labels.boxWidth=12,Rt.defaults.plugins.legend.position="bottom";let r=getComputedStyle(this.$refs.gridColorElement).color;return t??(t={}),t.borderWidth??(t.borderWidth=2),t.pointBackgroundColor??(t.pointBackgroundColor=n),t.pointHitRadius??(t.pointHitRadius=4),t.pointRadius??(t.pointRadius=2),t.scales??(t.scales={}),(o=t.scales).x??(o.x={}),(a=t.scales.x).grid??(a.grid={}),t.scales.x.grid.color=r,(l=t.scales.x.grid).display??(l.display=!1),(c=t.scales.x.grid).drawBorder??(c.drawBorder=!1),(h=t.scales).y??(h.y={}),(u=t.scales.y).grid??(u.grid={}),t.scales.y.grid.color=r,(d=t.scales.y.grid).drawBorder??(d.drawBorder=!1),new Rt(this.$refs.canvas,{type:e,data:i??s,options:t})},getChart:function(){return Rt.getChart(this.$refs.canvas)}}}export{mn as default}; +/*! Bundled license information: + +chart.js/dist/chunks/helpers.segment.mjs: + (*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + *) + +chart.js/dist/chunks/helpers.segment.mjs: + (*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + *) + +chart.js/dist/chart.mjs: + (*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + *) + +chartjs-adapter-luxon/dist/chartjs-adapter-luxon.esm.js: + (*! + * chartjs-adapter-luxon v1.3.1 + * https://www.chartjs.org + * (c) 2023 chartjs-adapter-luxon Contributors + * Released under the MIT license + *) +*/ diff --git a/public/js/filament/widgets/components/stats-overview/stat/chart.js b/public/js/filament/widgets/components/stats-overview/stat/chart.js new file mode 100644 index 000000000..ea2cbe7d3 --- /dev/null +++ b/public/js/filament/widgets/components/stats-overview/stat/chart.js @@ -0,0 +1,29 @@ +function rt(){}var Hs=function(){let i=0;return function(){return i++}}();function T(i){return i===null||typeof i>"u"}function I(i){if(Array.isArray&&Array.isArray(i))return!0;let t=Object.prototype.toString.call(i);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function D(i){return i!==null&&Object.prototype.toString.call(i)==="[object Object]"}var W=i=>(typeof i=="number"||i instanceof Number)&&isFinite(+i);function Q(i,t){return W(i)?i:t}function C(i,t){return typeof i>"u"?t:i}var js=(i,t)=>typeof i=="string"&&i.endsWith("%")?parseFloat(i)/100:i/t,Oi=(i,t)=>typeof i=="string"&&i.endsWith("%")?parseFloat(i)/100*t:+i;function z(i,t,e){if(i&&typeof i.call=="function")return i.apply(e,t)}function E(i,t,e,s){let n,o,a;if(I(i))if(o=i.length,s)for(n=o-1;n>=0;n--)t.call(e,i[n],n);else for(n=0;ni,x:i=>i.x,y:i=>i.y};function gt(i,t){return(Ds[t]||(Ds[t]=Io(t)))(i)}function Io(i){let t=zo(i);return e=>{for(let s of t){if(s==="")break;e=e&&e[s]}return e}}function zo(i){let t=i.split("."),e=[],s="";for(let n of t)s+=n,s.endsWith("\\")?s=s.slice(0,-1)+".":(e.push(s),s="");return e}function Ke(i){return i.charAt(0).toUpperCase()+i.slice(1)}var J=i=>typeof i<"u",ft=i=>typeof i=="function",Ai=(i,t)=>{if(i.size!==t.size)return!1;for(let e of i)if(!t.has(e))return!1;return!0};function Ys(i){return i.type==="mouseup"||i.type==="click"||i.type==="contextmenu"}var B=Math.PI,F=2*B,Bo=F+B,Ye=Number.POSITIVE_INFINITY,Vo=B/180,V=B/2,fe=B/4,Os=B*2/3,tt=Math.log10,ot=Math.sign;function Ti(i){let t=Math.round(i);i=Kt(i,t,i/1e3)?t:i;let e=Math.pow(10,Math.floor(tt(i))),s=i/e;return(s<=1?1:s<=2?2:s<=5?5:10)*e}function Xs(i){let t=[],e=Math.sqrt(i),s;for(s=1;sn-o).pop(),t}function Rt(i){return!isNaN(parseFloat(i))&&isFinite(i)}function Kt(i,t,e){return Math.abs(i-t)=i}function Li(i,t,e){let s,n,o;for(s=0,n=i.length;sl&&c=Math.min(t,e)-s&&i<=Math.max(t,e)+s}function Ge(i,t,e){e=e||(a=>i[a]1;)o=n+s>>1,e(o)?n=o:s=o;return{lo:n,hi:s}}var at=(i,t,e,s)=>Ge(i,e,s?n=>i[n][t]<=e:n=>i[n][t]Ge(i,e,s=>i[s][t]>=e);function Gs(i,t,e){let s=0,n=i.length;for(;ss&&i[n-1]>e;)n--;return s>0||n{let s="_onData"+Ke(e),n=i[e];Object.defineProperty(i,e,{configurable:!0,enumerable:!1,value(...o){let a=n.apply(this,o);return i._chartjs.listeners.forEach(r=>{typeof r[s]=="function"&&r[s](...o)}),a}})})}function Fi(i,t){let e=i._chartjs;if(!e)return;let s=e.listeners,n=s.indexOf(t);n!==-1&&s.splice(n,1),!(s.length>0)&&(Zs.forEach(o=>{delete i[o]}),delete i._chartjs)}function Ii(i){let t=new Set,e,s;for(e=0,s=i.length;e"u"?function(i){return i()}:window.requestAnimationFrame}();function Bi(i,t,e){let s=e||(a=>Array.prototype.slice.call(a)),n=!1,o=[];return function(...a){o=s(a),n||(n=!0,zi.call(window,()=>{n=!1,i.apply(t,o)}))}}function Qs(i,t){let e;return function(...s){return t?(clearTimeout(e),e=setTimeout(i,t,s)):i.apply(this,s),t}}var Ze=i=>i==="start"?"left":i==="end"?"right":"center",X=(i,t,e)=>i==="start"?t:i==="end"?e:(t+e)/2,tn=(i,t,e,s)=>i===(s?"left":"right")?e:i==="center"?(t+e)/2:t;function Vi(i,t,e){let s=t.length,n=0,o=s;if(i._sorted){let{iScale:a,_parsed:r}=i,l=a.axis,{min:c,max:h,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=Y(Math.min(at(r,a.axis,c).lo,e?s:at(t,l,a.getPixelForValue(c)).lo),0,s-1)),u?o=Y(Math.max(at(r,a.axis,h,!0).hi+1,e?0:at(t,l,a.getPixelForValue(h),!0).hi+1),n,s)-n:o=s-n}return{start:n,count:o}}function Wi(i){let{xScale:t,yScale:e,_scaleRanges:s}=i,n={xmin:t.min,xmax:t.max,ymin:e.min,ymax:e.max};if(!s)return i._scaleRanges=n,!0;let o=s.xmin!==t.min||s.xmax!==t.max||s.ymin!==e.min||s.ymax!==e.max;return Object.assign(s,n),o}var Ve=i=>i===0||i===1,As=(i,t,e)=>-(Math.pow(2,10*(i-=1))*Math.sin((i-t)*F/e)),Ts=(i,t,e)=>Math.pow(2,-10*i)*Math.sin((i-t)*F/e)+1,Ht={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>-i*(i-2),easeInOutQuad:i=>(i/=.5)<1?.5*i*i:-.5*(--i*(i-2)-1),easeInCubic:i=>i*i*i,easeOutCubic:i=>(i-=1)*i*i+1,easeInOutCubic:i=>(i/=.5)<1?.5*i*i*i:.5*((i-=2)*i*i+2),easeInQuart:i=>i*i*i*i,easeOutQuart:i=>-((i-=1)*i*i*i-1),easeInOutQuart:i=>(i/=.5)<1?.5*i*i*i*i:-.5*((i-=2)*i*i*i-2),easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>(i-=1)*i*i*i*i+1,easeInOutQuint:i=>(i/=.5)<1?.5*i*i*i*i*i:.5*((i-=2)*i*i*i*i+2),easeInSine:i=>-Math.cos(i*V)+1,easeOutSine:i=>Math.sin(i*V),easeInOutSine:i=>-.5*(Math.cos(B*i)-1),easeInExpo:i=>i===0?0:Math.pow(2,10*(i-1)),easeOutExpo:i=>i===1?1:-Math.pow(2,-10*i)+1,easeInOutExpo:i=>Ve(i)?i:i<.5?.5*Math.pow(2,10*(i*2-1)):.5*(-Math.pow(2,-10*(i*2-1))+2),easeInCirc:i=>i>=1?i:-(Math.sqrt(1-i*i)-1),easeOutCirc:i=>Math.sqrt(1-(i-=1)*i),easeInOutCirc:i=>(i/=.5)<1?-.5*(Math.sqrt(1-i*i)-1):.5*(Math.sqrt(1-(i-=2)*i)+1),easeInElastic:i=>Ve(i)?i:As(i,.075,.3),easeOutElastic:i=>Ve(i)?i:Ts(i,.075,.3),easeInOutElastic(i){return Ve(i)?i:i<.5?.5*As(i*2,.1125,.45):.5+.5*Ts(i*2-1,.1125,.45)},easeInBack(i){return i*i*((1.70158+1)*i-1.70158)},easeOutBack(i){return(i-=1)*i*((1.70158+1)*i+1.70158)+1},easeInOutBack(i){let t=1.70158;return(i/=.5)<1?.5*(i*i*(((t*=1.525)+1)*i-t)):.5*((i-=2)*i*(((t*=1.525)+1)*i+t)+2)},easeInBounce:i=>1-Ht.easeOutBounce(1-i),easeOutBounce(i){return i<1/2.75?7.5625*i*i:i<2/2.75?7.5625*(i-=1.5/2.75)*i+.75:i<2.5/2.75?7.5625*(i-=2.25/2.75)*i+.9375:7.5625*(i-=2.625/2.75)*i+.984375},easeInOutBounce:i=>i<.5?Ht.easeInBounce(i*2)*.5:Ht.easeOutBounce(i*2-1)*.5+.5};function _e(i){return i+.5|0}var yt=(i,t,e)=>Math.max(Math.min(i,e),t);function ge(i){return yt(_e(i*2.55),0,255)}function vt(i){return yt(_e(i*255),0,255)}function ut(i){return yt(_e(i/2.55)/100,0,1)}function Ls(i){return yt(_e(i*100),0,100)}var st={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Ci=[..."0123456789ABCDEF"],No=i=>Ci[i&15],Ho=i=>Ci[(i&240)>>4]+Ci[i&15],We=i=>(i&240)>>4===(i&15),jo=i=>We(i.r)&&We(i.g)&&We(i.b)&&We(i.a);function $o(i){var t=i.length,e;return i[0]==="#"&&(t===4||t===5?e={r:255&st[i[1]]*17,g:255&st[i[2]]*17,b:255&st[i[3]]*17,a:t===5?st[i[4]]*17:255}:(t===7||t===9)&&(e={r:st[i[1]]<<4|st[i[2]],g:st[i[3]]<<4|st[i[4]],b:st[i[5]]<<4|st[i[6]],a:t===9?st[i[7]]<<4|st[i[8]]:255})),e}var Yo=(i,t)=>i<255?t(i):"";function Xo(i){var t=jo(i)?No:Ho;return i?"#"+t(i.r)+t(i.g)+t(i.b)+Yo(i.a,t):void 0}var Uo=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function en(i,t,e){let s=t*Math.min(e,1-e),n=(o,a=(o+i/30)%12)=>e-s*Math.max(Math.min(a-3,9-a,1),-1);return[n(0),n(8),n(4)]}function Ko(i,t,e){let s=(n,o=(n+i/60)%6)=>e-e*t*Math.max(Math.min(o,4-o,1),0);return[s(5),s(3),s(1)]}function qo(i,t,e){let s=en(i,1,.5),n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)s[n]*=1-t-e,s[n]+=t;return s}function Go(i,t,e,s,n){return i===n?(t-e)/s+(t.5?h/(2-o-a):h/(o+a),l=Go(e,s,n,h,o),l=l*60+.5),[l|0,c||0,r]}function Hi(i,t,e,s){return(Array.isArray(t)?i(t[0],t[1],t[2]):i(t,e,s)).map(vt)}function ji(i,t,e){return Hi(en,i,t,e)}function Zo(i,t,e){return Hi(qo,i,t,e)}function Jo(i,t,e){return Hi(Ko,i,t,e)}function sn(i){return(i%360+360)%360}function Qo(i){let t=Uo.exec(i),e=255,s;if(!t)return;t[5]!==s&&(e=t[6]?ge(+t[5]):vt(+t[5]));let n=sn(+t[2]),o=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?s=Zo(n,o,a):t[1]==="hsv"?s=Jo(n,o,a):s=ji(n,o,a),{r:s[0],g:s[1],b:s[2],a:e}}function ta(i,t){var e=Ni(i);e[0]=sn(e[0]+t),e=ji(e),i.r=e[0],i.g=e[1],i.b=e[2]}function ea(i){if(!i)return;let t=Ni(i),e=t[0],s=Ls(t[1]),n=Ls(t[2]);return i.a<255?`hsla(${e}, ${s}%, ${n}%, ${ut(i.a)})`:`hsl(${e}, ${s}%, ${n}%)`}var Rs={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Es={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function ia(){let i={},t=Object.keys(Es),e=Object.keys(Rs),s,n,o,a,r;for(s=0;s>16&255,o>>8&255,o&255]}return i}var Ne;function sa(i){Ne||(Ne=ia(),Ne.transparent=[0,0,0,0]);let t=Ne[i.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var na=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function oa(i){let t=na.exec(i),e=255,s,n,o;if(t){if(t[7]!==s){let a=+t[7];e=t[8]?ge(a):yt(a*255,0,255)}return s=+t[1],n=+t[3],o=+t[5],s=255&(t[2]?ge(s):yt(s,0,255)),n=255&(t[4]?ge(n):yt(n,0,255)),o=255&(t[6]?ge(o):yt(o,0,255)),{r:s,g:n,b:o,a:e}}}function aa(i){return i&&(i.a<255?`rgba(${i.r}, ${i.g}, ${i.b}, ${ut(i.a)})`:`rgb(${i.r}, ${i.g}, ${i.b})`)}var wi=i=>i<=.0031308?i*12.92:Math.pow(i,1/2.4)*1.055-.055,Nt=i=>i<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4);function ra(i,t,e){let s=Nt(ut(i.r)),n=Nt(ut(i.g)),o=Nt(ut(i.b));return{r:vt(wi(s+e*(Nt(ut(t.r))-s))),g:vt(wi(n+e*(Nt(ut(t.g))-n))),b:vt(wi(o+e*(Nt(ut(t.b))-o))),a:i.a+e*(t.a-i.a)}}function He(i,t,e){if(i){let s=Ni(i);s[t]=Math.max(0,Math.min(s[t]+s[t]*e,t===0?360:1)),s=ji(s),i.r=s[0],i.g=s[1],i.b=s[2]}}function nn(i,t){return i&&Object.assign(t||{},i)}function Fs(i){var t={r:0,g:0,b:0,a:255};return Array.isArray(i)?i.length>=3&&(t={r:i[0],g:i[1],b:i[2],a:255},i.length>3&&(t.a=vt(i[3]))):(t=nn(i,{r:0,g:0,b:0,a:1}),t.a=vt(t.a)),t}function la(i){return i.charAt(0)==="r"?oa(i):Qo(i)}var $t=class{constructor(t){if(t instanceof $t)return t;let e=typeof t,s;e==="object"?s=Fs(t):e==="string"&&(s=$o(t)||sa(t)||la(t)),this._rgb=s,this._valid=!!s}get valid(){return this._valid}get rgb(){var t=nn(this._rgb);return t&&(t.a=ut(t.a)),t}set rgb(t){this._rgb=Fs(t)}rgbString(){return this._valid?aa(this._rgb):void 0}hexString(){return this._valid?Xo(this._rgb):void 0}hslString(){return this._valid?ea(this._rgb):void 0}mix(t,e){if(t){let s=this.rgb,n=t.rgb,o,a=e===o?.5:e,r=2*a-1,l=s.a-n.a,c=((r*l===-1?r:(r+l)/(1+r*l))+1)/2;o=1-c,s.r=255&c*s.r+o*n.r+.5,s.g=255&c*s.g+o*n.g+.5,s.b=255&c*s.b+o*n.b+.5,s.a=a*s.a+(1-a)*n.a,this.rgb=s}return this}interpolate(t,e){return t&&(this._rgb=ra(this._rgb,t._rgb,e)),this}clone(){return new $t(this.rgb)}alpha(t){return this._rgb.a=vt(t),this}clearer(t){let e=this._rgb;return e.a*=1-t,this}greyscale(){let t=this._rgb,e=_e(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=e,this}opaquer(t){let e=this._rgb;return e.a*=1+t,this}negate(){let t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return He(this._rgb,2,t),this}darken(t){return He(this._rgb,2,-t),this}saturate(t){return He(this._rgb,1,t),this}desaturate(t){return He(this._rgb,1,-t),this}rotate(t){return ta(this._rgb,t),this}};function on(i){return new $t(i)}function an(i){if(i&&typeof i=="object"){let t=i.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function $i(i){return an(i)?i:on(i)}function ki(i){return an(i)?i:on(i).saturate(.5).darken(.1).hexString()}var Mt=Object.create(null),Je=Object.create(null);function pe(i,t){if(!t)return i;let e=t.split(".");for(let s=0,n=e.length;se.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,s)=>ki(s.backgroundColor),this.hoverBorderColor=(e,s)=>ki(s.borderColor),this.hoverColor=(e,s)=>ki(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return Si(this,t,e)}get(t){return pe(this,t)}describe(t,e){return Si(Je,t,e)}override(t,e){return Si(Mt,t,e)}route(t,e,s,n){let o=pe(this,t),a=pe(this,s),r="_"+e;Object.defineProperties(o,{[r]:{value:o[e],writable:!0},[e]:{enumerable:!0,get(){let l=this[r],c=a[n];return D(l)?Object.assign({},c,l):C(l,c)},set(l){this[r]=l}}})}},O=new Di({_scriptable:i=>!i.startsWith("on"),_indexable:i=>i!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function ca(i){return!i||T(i.size)||T(i.family)?null:(i.style?i.style+" ":"")+(i.weight?i.weight+" ":"")+i.size+"px "+i.family}function me(i,t,e,s,n){let o=t[n];return o||(o=t[n]=i.measureText(n).width,e.push(n)),o>s&&(s=o),s}function rn(i,t,e,s){s=s||{};let n=s.data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==t&&(n=s.data={},o=s.garbageCollect=[],s.font=t),i.save(),i.font=t;let a=0,r=e.length,l,c,h,d,u;for(l=0;le.length){for(l=0;l0&&i.stroke()}}function Yt(i,t,e){return e=e||.5,!t||i&&i.x>t.left-e&&i.xt.top-e&&i.y0&&o.strokeColor!=="",l,c;for(i.save(),i.font=n.string,ha(i,o),l=0;l+i||0;function ti(i,t){let e={},s=D(t),n=s?Object.keys(t):t,o=D(i)?s?a=>C(i[a],i[t[a]]):a=>i[a]:()=>i;for(let a of n)e[a]=pa(o(a));return e}function Ui(i){return ti(i,{top:"y",right:"x",bottom:"y",left:"x"})}function St(i){return ti(i,["topLeft","topRight","bottomLeft","bottomRight"])}function U(i){let t=Ui(i);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function $(i,t){i=i||{},t=t||O.font;let e=C(i.size,t.size);typeof e=="string"&&(e=parseInt(e,10));let s=C(i.style,t.style);s&&!(""+s).match(fa)&&(console.warn('Invalid font style specified: "'+s+'"'),s="");let n={family:C(i.family,t.family),lineHeight:ga(C(i.lineHeight,t.lineHeight),e),size:e,style:s,weight:C(i.weight,t.weight),string:""};return n.string=ca(n),n}function Zt(i,t,e,s){let n=!0,o,a,r;for(o=0,a=i.length;oe&&r===0?0:r+l;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function pt(i,t){return Object.assign(Object.create(i),t)}function ei(i,t=[""],e=i,s,n=()=>i[0]){J(s)||(s=fn("_fallback",i));let o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:i,_rootScopes:e,_fallback:s,_getTarget:n,override:a=>ei([a,...i],t,e,s)};return new Proxy(o,{deleteProperty(a,r){return delete a[r],delete a._keys,delete i[0][r],!0},get(a,r){return dn(a,r,()=>wa(r,t,i,a))},getOwnPropertyDescriptor(a,r){return Reflect.getOwnPropertyDescriptor(a._scopes[0],r)},getPrototypeOf(){return Reflect.getPrototypeOf(i[0])},has(a,r){return zs(a).includes(r)},ownKeys(a){return zs(a)},set(a,r,l){let c=a._storage||(a._storage=n());return a[r]=c[r]=l,delete a._keys,!0}})}function Lt(i,t,e,s){let n={_cacheable:!1,_proxy:i,_context:t,_subProxy:e,_stack:new Set,_descriptors:Ki(i,s),setContext:o=>Lt(i,o,e,s),override:o=>Lt(i.override(o),t,e,s)};return new Proxy(n,{deleteProperty(o,a){return delete o[a],delete i[a],!0},get(o,a,r){return dn(o,a,()=>ba(o,a,r))},getOwnPropertyDescriptor(o,a){return o._descriptors.allKeys?Reflect.has(i,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(i,a)},getPrototypeOf(){return Reflect.getPrototypeOf(i)},has(o,a){return Reflect.has(i,a)},ownKeys(){return Reflect.ownKeys(i)},set(o,a,r){return i[a]=r,delete o[a],!0}})}function Ki(i,t={scriptable:!0,indexable:!0}){let{_scriptable:e=t.scriptable,_indexable:s=t.indexable,_allKeys:n=t.allKeys}=i;return{allKeys:n,scriptable:e,indexable:s,isScriptable:ft(e)?e:()=>e,isIndexable:ft(s)?s:()=>s}}var ma=(i,t)=>i?i+Ke(t):t,qi=(i,t)=>D(t)&&i!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function dn(i,t,e){if(Object.prototype.hasOwnProperty.call(i,t))return i[t];let s=e();return i[t]=s,s}function ba(i,t,e){let{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=i,r=s[t];return ft(r)&&a.isScriptable(t)&&(r=_a(t,r,i,e)),I(r)&&r.length&&(r=xa(t,r,i,a.isIndexable)),qi(t,r)&&(r=Lt(r,n,o&&o[t],a)),r}function _a(i,t,e,s){let{_proxy:n,_context:o,_subProxy:a,_stack:r}=e;if(r.has(i))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+i);return r.add(i),t=t(o,a||s),r.delete(i),qi(i,t)&&(t=Gi(n._scopes,n,i,t)),t}function xa(i,t,e,s){let{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=e;if(J(o.index)&&s(i))t=t[o.index%t.length];else if(D(t[0])){let l=t,c=n._scopes.filter(h=>h!==l);t=[];for(let h of l){let d=Gi(c,n,i,h);t.push(Lt(d,o,a&&a[i],r))}}return t}function un(i,t,e){return ft(i)?i(t,e):i}var ya=(i,t)=>i===!0?t:typeof i=="string"?gt(t,i):void 0;function va(i,t,e,s,n){for(let o of t){let a=ya(e,o);if(a){i.add(a);let r=un(a._fallback,e,n);if(J(r)&&r!==e&&r!==s)return r}else if(a===!1&&J(s)&&e!==s)return null}return!1}function Gi(i,t,e,s){let n=t._rootScopes,o=un(t._fallback,e,s),a=[...i,...n],r=new Set;r.add(s);let l=Is(r,a,e,o||e,s);return l===null||J(o)&&o!==e&&(l=Is(r,a,o,l,s),l===null)?!1:ei(Array.from(r),[""],n,o,()=>Ma(t,e,s))}function Is(i,t,e,s,n){for(;e;)e=va(i,t,e,s,n);return e}function Ma(i,t,e){let s=i._getTarget();t in s||(s[t]={});let n=s[t];return I(n)&&D(e)?e:n}function wa(i,t,e,s){let n;for(let o of t)if(n=fn(ma(o,i),e),J(n))return qi(i,n)?Gi(e,s,i,n):n}function fn(i,t){for(let e of t){if(!e)continue;let s=e[i];if(J(s))return s}}function zs(i){let t=i._keys;return t||(t=i._keys=ka(i._scopes)),t}function ka(i){let t=new Set;for(let e of i)for(let s of Object.keys(e).filter(n=>!n.startsWith("_")))t.add(s);return Array.from(t)}function Zi(i,t,e,s){let{iScale:n}=i,{key:o="r"}=this._parsing,a=new Array(s),r,l,c,h;for(r=0,l=s;rti==="x"?"y":"x";function Pa(i,t,e,s){let n=i.skip?t:i,o=t,a=e.skip?t:e,r=Xe(o,n),l=Xe(a,o),c=r/(r+l),h=l/(r+l);c=isNaN(c)?0:c,h=isNaN(h)?0:h;let d=s*c,u=s*h;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function Ca(i,t,e){let s=i.length,n,o,a,r,l,c=Xt(i,0);for(let h=0;h!c.skip)),t.cubicInterpolationMode==="monotone")Oa(i,n);else{let c=s?i[i.length-1]:i[0];for(o=0,a=i.length;owindow.getComputedStyle(i,null);function Ta(i,t){return si(i).getPropertyValue(t)}var La=["top","right","bottom","left"];function Tt(i,t,e){let s={};e=e?"-"+e:"";for(let n=0;n<4;n++){let o=La[n];s[o]=parseFloat(i[t+"-"+o+e])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}var Ra=(i,t,e)=>(i>0||t>0)&&(!e||!e.shadowRoot);function Ea(i,t){let e=i.touches,s=e&&e.length?e[0]:i,{offsetX:n,offsetY:o}=s,a=!1,r,l;if(Ra(n,o,i.target))r=n,l=o;else{let c=t.getBoundingClientRect();r=s.clientX-c.left,l=s.clientY-c.top,a=!0}return{x:r,y:l,box:a}}function Pt(i,t){if("native"in i)return i;let{canvas:e,currentDevicePixelRatio:s}=t,n=si(e),o=n.boxSizing==="border-box",a=Tt(n,"padding"),r=Tt(n,"border","width"),{x:l,y:c,box:h}=Ea(i,e),d=a.left+(h&&r.left),u=a.top+(h&&r.top),{width:f,height:g}=t;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*e.width/s),y:Math.round((c-u)/g*e.height/s)}}function Fa(i,t,e){let s,n;if(t===void 0||e===void 0){let o=ii(i);if(!o)t=i.clientWidth,e=i.clientHeight;else{let a=o.getBoundingClientRect(),r=si(o),l=Tt(r,"border","width"),c=Tt(r,"padding");t=a.width-c.width-l.width,e=a.height-c.height-l.height,s=Ue(r.maxWidth,o,"clientWidth"),n=Ue(r.maxHeight,o,"clientHeight")}}return{width:t,height:e,maxWidth:s||Ye,maxHeight:n||Ye}}var Pi=i=>Math.round(i*10)/10;function mn(i,t,e,s){let n=si(i),o=Tt(n,"margin"),a=Ue(n.maxWidth,i,"clientWidth")||Ye,r=Ue(n.maxHeight,i,"clientHeight")||Ye,l=Fa(i,t,e),{width:c,height:h}=l;if(n.boxSizing==="content-box"){let d=Tt(n,"border","width"),u=Tt(n,"padding");c-=u.width+d.width,h-=u.height+d.height}return c=Math.max(0,c-o.width),h=Math.max(0,s?Math.floor(c/s):h-o.height),c=Pi(Math.min(c,a,l.maxWidth)),h=Pi(Math.min(h,r,l.maxHeight)),c&&!h&&(h=Pi(c/2)),{width:c,height:h}}function Qi(i,t,e){let s=t||1,n=Math.floor(i.height*s),o=Math.floor(i.width*s);i.height=n/s,i.width=o/s;let a=i.canvas;return a.style&&(e||!a.style.height&&!a.style.width)&&(a.style.height=`${i.height}px`,a.style.width=`${i.width}px`),i.currentDevicePixelRatio!==s||a.height!==n||a.width!==o?(i.currentDevicePixelRatio=s,a.height=n,a.width=o,i.ctx.setTransform(s,0,0,s,0,0),!0):!1}var bn=function(){let i=!1;try{let t={get passive(){return i=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return i}();function ts(i,t){let e=Ta(i,t),s=e&&e.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function xt(i,t,e,s){return{x:i.x+e*(t.x-i.x),y:i.y+e*(t.y-i.y)}}function _n(i,t,e,s){return{x:i.x+e*(t.x-i.x),y:s==="middle"?e<.5?i.y:t.y:s==="after"?e<1?i.y:t.y:e>0?t.y:i.y}}function xn(i,t,e,s){let n={x:i.cp2x,y:i.cp2y},o={x:t.cp1x,y:t.cp1y},a=xt(i,n,e),r=xt(n,o,e),l=xt(o,t,e),c=xt(a,r,e),h=xt(r,l,e);return xt(c,h,e)}var Bs=new Map;function Ia(i,t){t=t||{};let e=i+JSON.stringify(t),s=Bs.get(e);return s||(s=new Intl.NumberFormat(i,t),Bs.set(e,s)),s}function Jt(i,t,e){return Ia(t,e).format(i)}var za=function(i,t){return{x(e){return i+i+t-e},setWidth(e){t=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,s){return e-s},leftForLtr(e,s){return e-s}}},Ba=function(){return{x(i){return i},setWidth(i){},textAlign(i){return i},xPlus(i,t){return i+t},leftForLtr(i,t){return i}}};function Et(i,t,e){return i?za(t,e):Ba()}function es(i,t){let e,s;(t==="ltr"||t==="rtl")&&(e=i.canvas.style,s=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",t,"important"),i.prevTextDirection=s)}function is(i,t){t!==void 0&&(delete i.prevTextDirection,i.canvas.style.setProperty("direction",t[0],t[1]))}function yn(i){return i==="angle"?{between:qt,compare:Wo,normalize:G}:{between:lt,compare:(t,e)=>t-e,normalize:t=>t}}function Vs({start:i,end:t,count:e,loop:s,style:n}){return{start:i%e,end:t%e,loop:s&&(t-i+1)%e===0,style:n}}function Va(i,t,e){let{property:s,start:n,end:o}=e,{between:a,normalize:r}=yn(s),l=t.length,{start:c,end:h,loop:d}=i,u,f;if(d){for(c+=l,h+=l,u=0,f=l;ul(n,v,b)&&r(n,v)!==0,x=()=>r(o,b)===0||l(o,v,b),M=()=>p||y(),w=()=>!p||x();for(let S=h,k=h;S<=d;++S)_=t[S%a],!_.skip&&(b=c(_[s]),b!==v&&(p=l(b,n,o),m===null&&M()&&(m=r(b,n)===0?S:k),m!==null&&w()&&(g.push(Vs({start:m,end:S,loop:u,count:a,style:f})),m=null),k=S,v=b));return m!==null&&g.push(Vs({start:m,end:d,loop:u,count:a,style:f})),g}function ns(i,t){let e=[],s=i.segments;for(let n=0;nn&&i[o%t].skip;)o--;return o%=t,{start:n,end:o}}function Na(i,t,e,s){let n=i.length,o=[],a=t,r=i[t],l;for(l=t+1;l<=e;++l){let c=i[l%n];c.skip||c.stop?r.skip||(s=!1,o.push({start:t%n,end:(l-1)%n,loop:s}),t=a=c.stop?l:null):(a=l,r.skip&&(t=l)),r=c}return a!==null&&o.push({start:t%n,end:a%n,loop:s}),o}function vn(i,t){let e=i.points,s=i.options.spanGaps,n=e.length;if(!n)return[];let o=!!i._loop,{start:a,end:r}=Wa(e,n,o,s);if(s===!0)return Ws(i,[{start:a,end:r,loop:o}],e,t);let l=rr({chart:t,initial:e.initial,numSteps:a,currentStep:Math.min(s-e.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=zi.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((s,n)=>{if(!s.running||!s.items.length)return;let o=s.items,a=o.length-1,r=!1,l;for(;a>=0;--a)l=o[a],l._active?(l._total>s.duration&&(s.duration=l._total),l.tick(t),r=!0):(o[a]=o[o.length-1],o.pop());r&&(n.draw(),this._notify(n,s,t,"progress")),o.length||(s.running=!1,this._notify(n,s,t,"complete"),s.initial=!1),e+=o.length}),this._lastDate=t,e===0&&(this._running=!1)}_getAnims(t){let e=this._charts,s=e.get(t);return s||(s={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,s)),s}listen(t,e,s){this._getAnims(t).listeners[e].push(s)}add(t,e){!e||!e.length||this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){let e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((s,n)=>Math.max(s,n._duration),0),this._refresh())}running(t){if(!this._running)return!1;let e=this._charts.get(t);return!(!e||!e.running||!e.items.length)}stop(t){let e=this._charts.get(t);if(!e||!e.items.length)return;let s=e.items,n=s.length-1;for(;n>=0;--n)s[n].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}},mt=new gs,Mn="transparent",$a={boolean(i,t,e){return e>.5?t:i},color(i,t,e){let s=$i(i||Mn),n=s.valid&&$i(t||Mn);return n&&n.valid?n.mix(s,e).hexString():t},number(i,t,e){return i+(t-i)*e}},ps=class{constructor(t,e,s,n){let o=e[s];n=Zt([t.to,n,o,t.from]);let a=Zt([t.from,o,n]);this._active=!0,this._fn=t.fn||$a[t.type||typeof a],this._easing=Ht[t.easing]||Ht.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=s,this._from=a,this._to=n,this._promises=void 0}active(){return this._active}update(t,e,s){if(this._active){this._notify(!1);let n=this._target[this._prop],o=s-this._start,a=this._duration-o;this._start=s,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=Zt([t.to,e,n,t.from]),this._from=Zt([t.from,n,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){let e=t-this._start,s=this._duration,n=this._prop,o=this._from,a=this._loop,r=this._to,l;if(this._active=o!==r&&(a||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[n]=this._fn(o,r,l)}wait(){let t=this._promises||(this._promises=[]);return new Promise((e,s)=>{t.push({res:e,rej:s})})}_notify(t){let e=t?"res":"rej",s=this._promises||[];for(let n=0;ni!=="onProgress"&&i!=="onComplete"&&i!=="fn"});O.set("animations",{colors:{type:"color",properties:Xa},numbers:{type:"number",properties:Ya}});O.describe("animations",{_fallback:"animation"});O.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:i=>i|0}}}});var di=class{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!D(t))return;let e=this._properties;Object.getOwnPropertyNames(t).forEach(s=>{let n=t[s];if(!D(n))return;let o={};for(let a of Ua)o[a]=n[a];(I(n.properties)&&n.properties||[s]).forEach(a=>{(a===s||!e.has(a))&&e.set(a,o)})})}_animateOptions(t,e){let s=e.options,n=qa(t,s);if(!n)return[];let o=this._createAnimations(n,s);return s.$shared&&Ka(t.options.$animations,s).then(()=>{t.options=s},()=>{}),o}_createAnimations(t,e){let s=this._properties,n=[],o=t.$animations||(t.$animations={}),a=Object.keys(e),r=Date.now(),l;for(l=a.length-1;l>=0;--l){let c=a[l];if(c.charAt(0)==="$")continue;if(c==="options"){n.push(...this._animateOptions(t,e));continue}let h=e[c],d=o[c],u=s.get(c);if(d)if(u&&d.active()){d.update(u,h,r);continue}else d.cancel();if(!u||!u.duration){t[c]=h;continue}o[c]=d=new ps(u,t,c,h),n.push(d)}return n}update(t,e){if(this._properties.size===0){Object.assign(t,e);return}let s=this._createAnimations(t,e);if(s.length)return mt.add(this._chart,s),!0}};function Ka(i,t){let e=[],s=Object.keys(t);for(let n=0;n0||!e&&o<0)return n.index}return null}function Cn(i,t){let{chart:e,_cachedMeta:s}=i,n=e._stacks||(e._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,c=a.axis,h=Qa(o,a,s),d=t.length,u;for(let f=0;fe[s].axis===t).shift()}function ir(i,t){return pt(i,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function sr(i,t,e){return pt(i,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:e,index:t,mode:"default",type:"data"})}function ve(i,t){let e=i.controller.index,s=i.vScale&&i.vScale.axis;if(s){t=t||i._parsed;for(let n of t){let o=n._stacks;if(!o||o[s]===void 0||o[s][e]===void 0)return;delete o[s][e]}}}var as=i=>i==="reset"||i==="none",Dn=(i,t)=>t?i:Object.assign({},i),nr=(i,t,e)=>i&&!t.hidden&&t._stacked&&{keys:go(e,!0),values:null},et=class{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){let t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Sn(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&ve(this._cachedMeta),this.index=t}linkScales(){let t=this.chart,e=this._cachedMeta,s=this.getDataset(),n=(d,u,f,g)=>d==="x"?u:d==="r"?g:f,o=e.xAxisID=C(s.xAxisID,os(t,"x")),a=e.yAxisID=C(s.yAxisID,os(t,"y")),r=e.rAxisID=C(s.rAxisID,os(t,"r")),l=e.indexAxis,c=e.iAxisID=n(l,o,a,r),h=e.vAxisID=n(l,a,o,r);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(a),e.rScale=this.getScaleForId(r),e.iScale=this.getScaleForId(c),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){let e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){let t=this._cachedMeta;this._data&&Fi(this._data,this),t._stacked&&ve(t)}_dataCheck(){let t=this.getDataset(),e=t.data||(t.data=[]),s=this._data;if(D(e))this._data=Ja(e);else if(s!==e){if(s){Fi(s,this);let n=this._cachedMeta;ve(n),n._parsed=[]}e&&Object.isExtensible(e)&&Js(e,this),this._syncList=[],this._data=e}}addElements(){let t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){let e=this._cachedMeta,s=this.getDataset(),n=!1;this._dataCheck();let o=e._stacked;e._stacked=Sn(e.vScale,e),e.stack!==s.stack&&(n=!0,ve(e),e.stack=s.stack),this._resyncElements(t),(n||o!==e._stacked)&&Cn(this,e._parsed)}configure(){let t=this.chart.config,e=t.datasetScopeKeys(this._type),s=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(s,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){let{_cachedMeta:s,_data:n}=this,{iScale:o,_stacked:a}=s,r=o.axis,l=t===0&&e===n.length?!0:s._sorted,c=t>0&&s._parsed[t-1],h,d,u;if(this._parsing===!1)s._parsed=n,s._sorted=!0,u=n;else{I(n[t])?u=this.parseArrayData(s,n,t,e):D(n[t])?u=this.parseObjectData(s,n,t,e):u=this.parsePrimitiveData(s,n,t,e);let f=()=>d[r]===null||c&&d[r]p||d=0;--u)if(!g()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){let e=this._cachedMeta._parsed,s=[],n,o,a;for(n=0,o=e.length;n=0&&tthis.getContext(s,n),p=c.resolveNamedOptions(u,f,g,d);return p.$shared&&(p.$shared=l,o[a]=Object.freeze(Dn(p,l))),p}_resolveAnimations(t,e,s){let n=this.chart,o=this._cachedDataOpts,a=`animation-${e}`,r=o[a];if(r)return r;let l;if(n.options.animation!==!1){let h=this.chart.config,d=h.datasetAnimationScopeKeys(this._type,e),u=h.getOptionScopes(this.getDataset(),d);l=h.createResolver(u,this.getContext(t,s,e))}let c=new di(n,l&&l.animations);return l&&l._cacheable&&(o[a]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||as(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){let s=this.resolveDataElementOptions(t,e),n=this._sharedOptions,o=this.getSharedOptions(s),a=this.includeOptions(e,o)||o!==n;return this.updateSharedOptions(o,e,s),{sharedOptions:o,includeOptions:a}}updateElement(t,e,s,n){as(n)?Object.assign(t,s):this._resolveAnimations(e,n).update(t,s)}updateSharedOptions(t,e,s){t&&!as(e)&&this._resolveAnimations(void 0,e).update(t,s)}_setStyle(t,e,s,n){t.active=n;let o=this.getStyle(e,n);this._resolveAnimations(e,s,n).update(t,{options:!n&&this.getSharedOptions(o)||o})}removeHoverStyle(t,e,s){this._setStyle(t,s,"active",!1)}setHoverStyle(t,e,s){this._setStyle(t,s,"active",!0)}_removeDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){let t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){let e=this._data,s=this._cachedMeta.data;for(let[r,l,c]of this._syncList)this[r](l,c);this._syncList=[];let n=s.length,o=e.length,a=Math.min(o,n);a&&this.parse(0,a),o>n?this._insertElements(n,o-n,t):o{for(c.length+=e,r=c.length-1;r>=a;r--)c[r]=c[r-e]};for(l(o),r=t;rn-o))}return i._cache.$bar}function ar(i){let t=i.iScale,e=or(t,i.type),s=t._length,n,o,a,r,l=()=>{a===32767||a===-32768||(J(r)&&(s=Math.min(s,Math.abs(a-r)||s)),r=a)};for(n=0,o=e.length;n0?n[i-1]:null,r=iMath.abs(r)&&(l=r,c=a),t[e.axis]=c,t._custom={barStart:l,barEnd:c,start:n,end:o,min:a,max:r}}function po(i,t,e,s){return I(i)?cr(i,t,e,s):t[e.axis]=e.parse(i,s),t}function On(i,t,e,s){let n=i.iScale,o=i.vScale,a=n.getLabels(),r=n===o,l=[],c,h,d,u;for(c=e,h=e+s;c=e?1:-1)}function dr(i){let t,e,s,n,o;return i.horizontal?(t=i.base>i.x,e="left",s="right"):(t=i.basel.controller.options.grouped),o=s.options.stacked,a=[],r=l=>{let c=l.controller.getParsed(e),h=c&&c[l.vScale.axis];if(T(h)||isNaN(h))return!0};for(let l of n)if(!(e!==void 0&&r(l))&&((o===!1||a.indexOf(l.stack)===-1||o===void 0&&l.stack===void 0)&&a.push(l.stack),l.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,s){let n=this._getStacks(t,s),o=e!==void 0?n.indexOf(e):-1;return o===-1?n.length-1:o}_getRuler(){let t=this.options,e=this._cachedMeta,s=e.iScale,n=[],o,a;for(o=0,a=e.data.length;o=0;--s)e=Math.max(e,t[s].size(this.resolveDataElementOptions(s))/2);return e>0&&e}getLabelAndValue(t){let e=this._cachedMeta,{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:e.label,value:"("+a+", "+r+(l?", "+l:"")+")"}}update(t){let e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,s,n){let o=n==="reset",{iScale:a,vScale:r}=this._cachedMeta,{sharedOptions:l,includeOptions:c}=this._getSharedOptions(e,n),h=a.axis,d=r.axis;for(let u=e;uqt(v,r,l,!0)?1:Math.max(y,y*e,x,x*e),g=(v,y,x)=>qt(v,r,l,!0)?-1:Math.min(y,y*e,x,x*e),p=f(0,c,d),m=f(V,h,u),b=g(B,c,d),_=g(B+V,h,u);s=(p-b)/2,n=(m-_)/2,o=-(p+b)/2,a=-(m+_)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}var Ot=class extends et{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){let s=this.getDataset().data,n=this._cachedMeta;if(this._parsing===!1)n._parsed=s;else{let o=l=>+s[l];if(D(s[t])){let{key:l="value"}=this._parsing;o=c=>+gt(s[c],l)}let a,r;for(a=t,r=t+e;a0&&!isNaN(t)?F*(Math.abs(t)/e):0}getLabelAndValue(t){let e=this._cachedMeta,s=this.chart,n=s.data.labels||[],o=Jt(e._parsed[t],s.options.locale);return{label:n[t]||"",value:o}}getMaxBorderWidth(t){let e=0,s=this.chart,n,o,a,r,l;if(!t){for(n=0,o=s.data.datasets.length;ni!=="spacing",_indexable:i=>i!=="spacing"};Ot.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(i){let t=i.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=i.legend.options;return t.labels.map((s,n)=>{let a=i.getDatasetMeta(0).controller.getStyle(n);return{text:s,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,lineWidth:a.borderWidth,pointStyle:e,hidden:!i.getDataVisibility(n),index:n}})}return[]}},onClick(i,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(i){let t=i.label,e=": "+i.formattedValue;return I(t)?(t=t.slice(),t[0]+=e):t+=e,t}}}}};var se=class extends et{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){let e=this._cachedMeta,{dataset:s,data:n=[],_dataset:o}=e,a=this.chart._animationsDisabled,{start:r,count:l}=Vi(e,n,a);this._drawStart=r,this._drawCount=l,Wi(e)&&(r=0,l=n.length),s._chart=this.chart,s._datasetIndex=this.index,s._decimated=!!o._decimated,s.points=n;let c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(s,void 0,{animated:!a,options:c},t),this.updateElements(n,r,l,t)}updateElements(t,e,s,n){let o=n==="reset",{iScale:a,vScale:r,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:h,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=Rt(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||n==="none",_=e>0&&this.getParsed(e-1);for(let v=e;v0&&Math.abs(x[u]-_[u])>m,p&&(M.parsed=x,M.raw=c.data[v]),d&&(M.options=h||this.resolveDataElementOptions(v,y.active?"active":n)),b||this.updateElement(y,v,M,n),_=x}}getMaxOverflow(){let t=this._cachedMeta,e=t.dataset,s=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return s;let o=n[0].size(this.resolveDataElementOptions(0)),a=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(s,o,a)/2}draw(){let t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}};se.id="line";se.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};se.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};var ne=class extends et{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){let e=this._cachedMeta,s=this.chart,n=s.data.labels||[],o=Jt(e._parsed[t].r,s.options.locale);return{label:n[t]||"",value:o}}parseObjectData(t,e,s,n){return Zi.bind(this)(t,e,s,n)}update(t){let e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){let t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((s,n)=>{let o=this.getParsed(n).r;!isNaN(o)&&this.chart.getDataVisibility(n)&&(oe.max&&(e.max=o))}),e}_updateRadius(){let t=this.chart,e=t.chartArea,s=t.options,n=Math.min(e.right-e.left,e.bottom-e.top),o=Math.max(n/2,0),a=Math.max(s.cutoutPercentage?o/100*s.cutoutPercentage:1,0),r=(o-a)/t.getVisibleDatasetCount();this.outerRadius=o-r*this.index,this.innerRadius=this.outerRadius-r}updateElements(t,e,s,n){let o=n==="reset",a=this.chart,l=a.options.animation,c=this._cachedMeta.rScale,h=c.xCenter,d=c.yCenter,u=c.getIndexAngle(0)-.5*B,f=u,g,p=360/this.countVisibleElements();for(g=0;g{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&e++}),e}_computeAngle(t,e,s){return this.chart.getDataVisibility(t)?nt(this.resolveDataElementOptions(t,e).angle||s):0}};ne.id="polarArea";ne.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};ne.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(i){let t=i.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:e}}=i.legend.options;return t.labels.map((s,n)=>{let a=i.getDatasetMeta(0).controller.getStyle(n);return{text:s,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,lineWidth:a.borderWidth,pointStyle:e,hidden:!i.getDataVisibility(n),index:n}})}return[]}},onClick(i,t,e){e.chart.toggleDataVisibility(t.index),e.chart.update()}},tooltip:{callbacks:{title(){return""},label(i){return i.chart.data.labels[i.dataIndex]+": "+i.formattedValue}}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};var De=class extends Ot{};De.id="pie";De.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};var oe=class extends et{getLabelAndValue(t){let e=this._cachedMeta.vScale,s=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(s[e.axis])}}parseObjectData(t,e,s,n){return Zi.bind(this)(t,e,s,n)}update(t){let e=this._cachedMeta,s=e.dataset,n=e.data||[],o=e.iScale.getLabels();if(s.points=n,t!=="resize"){let a=this.resolveDatasetElementOptions(t);this.options.showLine||(a.borderWidth=0);let r={_loop:!0,_fullLoop:o.length===n.length,options:a};this.updateElement(s,void 0,r,t)}this.updateElements(n,0,n.length,t)}updateElements(t,e,s,n){let o=this._cachedMeta.rScale,a=n==="reset";for(let r=e;r{n[o]=s[o]&&s[o].active()?s[o]._to:this[o]}),n}};it.defaults={};it.defaultRoutes=void 0;var mo={values(i){return I(i)?i:""+i},numeric(i,t,e){if(i===0)return"0";let s=this.chart.options.locale,n,o=i;if(e.length>1){let c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(n="scientific"),o=mr(i,e)}let a=tt(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),Jt(i,s,l)},logarithmic(i,t,e){if(i===0)return"0";let s=i/Math.pow(10,Math.floor(tt(i)));return s===1||s===2||s===5?mo.numeric.call(this,i,t,e):""}};function mr(i,t){let e=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(e)>=1&&i!==Math.floor(i)&&(e=i-Math.floor(i)),e}var bi={formatters:mo};O.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(i,t)=>t.lineWidth,tickColor:(i,t)=>t.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:bi.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}});O.route("scale.ticks","color","","color");O.route("scale.grid","color","","borderColor");O.route("scale.grid","borderColor","","borderColor");O.route("scale.title","color","","color");O.describe("scale",{_fallback:!1,_scriptable:i=>!i.startsWith("before")&&!i.startsWith("after")&&i!=="callback"&&i!=="parser",_indexable:i=>i!=="borderDash"&&i!=="tickBorderDash"});O.describe("scales",{_fallback:"scale"});O.describe("scale.ticks",{_scriptable:i=>i!=="backdropPadding"&&i!=="callback",_indexable:i=>i!=="backdropPadding"});function br(i,t){let e=i.options.ticks,s=e.maxTicksLimit||_r(i),n=e.major.enabled?yr(t):[],o=n.length,a=n[0],r=n[o-1],l=[];if(o>s)return vr(t,l,n,o/s),l;let c=xr(n,t,s);if(o>0){let h,d,u=o>1?Math.round((r-a)/(o-1)):null;for(ni(t,l,c,T(u)?0:a-u,a),h=0,d=o-1;hn)return l}return Math.max(n,1)}function yr(i){let t=[],e,s;for(e=0,s=i.length;ei==="left"?"right":i==="right"?"left":i,Ln=(i,t,e)=>t==="top"||t==="left"?i[t]+e:i[t]-e;function Rn(i,t){let e=[],s=i.length/t,n=i.length,o=0;for(;oa+r)))return l}function Sr(i,t){E(i,e=>{let s=e.gc,n=s.length/2,o;if(n>t){for(o=0;os?s:e,s=n&&e>s?e:s,{min:Q(e,Q(s,e)),max:Q(s,Q(e,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){z(this.options.beforeUpdate,[this])}update(t,e,s){let{beginAtZero:n,grace:o,ticks:a}=this.options,r=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=s=Object.assign({left:0,right:0,top:0,bottom:0},s),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+s.left+s.right:this.height+s.top+s.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=hn(this,o,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let l=r=o||s<=1||!this.isHorizontal()){this.labelRotation=n;return}let h=this._getLabelSizes(),d=h.widest.width,u=h.highest.height,f=Y(this.chart.width-d,0,this.maxWidth);r=t.offset?this.maxWidth/s:f/(s-1),d+6>r&&(r=f/(s-(t.offset?.5:1)),l=this.maxHeight-Me(t.grid)-e.padding-En(t.title,this.chart.options.font),c=Math.sqrt(d*d+u*u),a=qe(Math.min(Math.asin(Y((h.highest.height+6)/r,-1,1)),Math.asin(Y(l/c,-1,1))-Math.asin(Y(u/c,-1,1)))),a=Math.max(n,Math.min(o,a))),this.labelRotation=a}afterCalculateLabelRotation(){z(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){z(this.options.beforeFit,[this])}fit(){let t={width:0,height:0},{chart:e,options:{ticks:s,title:n,grid:o}}=this,a=this._isVisible(),r=this.isHorizontal();if(a){let l=En(n,e.options.font);if(r?(t.width=this.maxWidth,t.height=Me(o)+l):(t.height=this.maxHeight,t.width=Me(o)+l),s.display&&this.ticks.length){let{first:c,last:h,widest:d,highest:u}=this._getLabelSizes(),f=s.padding*2,g=nt(this.labelRotation),p=Math.cos(g),m=Math.sin(g);if(r){let b=s.mirror?0:m*d.width+p*u.height;t.height=Math.min(this.maxHeight,t.height+b+f)}else{let b=s.mirror?0:p*d.width+m*u.height;t.width=Math.min(this.maxWidth,t.width+b+f)}this._calculatePadding(c,h,m,p)}}this._handleMargins(),r?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,s,n){let{ticks:{align:o,padding:a},position:r}=this.options,l=this.labelRotation!==0,c=r!=="top"&&this.axis==="x";if(this.isHorizontal()){let h=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1),u=0,f=0;l?c?(u=n*t.width,f=s*e.height):(u=s*t.height,f=n*e.width):o==="start"?f=e.width:o==="end"?u=t.width:o!=="inner"&&(u=t.width/2,f=e.width/2),this.paddingLeft=Math.max((u-h+a)*this.width/(this.width-h),0),this.paddingRight=Math.max((f-d+a)*this.width/(this.width-d),0)}else{let h=e.height/2,d=t.height/2;o==="start"?(h=0,d=t.height):o==="end"&&(h=e.height,d=0),this.paddingTop=h+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){z(this.options.afterFit,[this])}isHorizontal(){let{axis:t,position:e}=this.options;return e==="top"||e==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let e,s;for(e=0,s=t.length;e({width:o[w]||0,height:a[w]||0});return{first:M(0),last:M(e-1),widest:M(y),highest:M(x),widths:o,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){let e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);let e=this._startPixel+t*this._length;return Ks(this._alignToPixels?wt(this.chart,e,0):e)}getDecimalForPixel(t){let e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){let e=this.ticks||[];if(t>=0&&tr*n?r/s:l/n:l*n0}_computeGridLineItems(t){let e=this.axis,s=this.chart,n=this.options,{grid:o,position:a}=n,r=o.offset,l=this.isHorizontal(),h=this.ticks.length+(r?1:0),d=Me(o),u=[],f=o.setContext(this.getContext()),g=f.drawBorder?f.borderWidth:0,p=g/2,m=function(P){return wt(s,P,g)},b,_,v,y,x,M,w,S,k,L,R,A;if(a==="top")b=m(this.bottom),M=this.bottom-d,S=b-p,L=m(t.top)+p,A=t.bottom;else if(a==="bottom")b=m(this.top),L=t.top,A=m(t.bottom)-p,M=b+p,S=this.top+d;else if(a==="left")b=m(this.right),x=this.right-d,w=b-p,k=m(t.left)+p,R=t.right;else if(a==="right")b=m(this.left),k=t.left,R=m(t.right)-p,x=b+p,w=this.left+d;else if(e==="x"){if(a==="center")b=m((t.top+t.bottom)/2+.5);else if(D(a)){let P=Object.keys(a)[0],j=a[P];b=m(this.chart.scales[P].getPixelForValue(j))}L=t.top,A=t.bottom,M=b+p,S=M+d}else if(e==="y"){if(a==="center")b=m((t.left+t.right)/2);else if(D(a)){let P=Object.keys(a)[0],j=a[P];b=m(this.chart.scales[P].getPixelForValue(j))}x=b-p,w=x-d,k=t.left,R=t.right}let H=C(n.ticks.maxTicksLimit,h),q=Math.max(1,Math.ceil(h/H));for(_=0;_o.value===t);return n>=0?e.setContext(this.getContext(n)).lineWidth:0}drawGrid(t){let e=this.options.grid,s=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t)),o,a,r=(l,c,h)=>{!h.width||!h.color||(s.save(),s.lineWidth=h.width,s.strokeStyle=h.color,s.setLineDash(h.borderDash||[]),s.lineDashOffset=h.borderDashOffset,s.beginPath(),s.moveTo(l.x,l.y),s.lineTo(c.x,c.y),s.stroke(),s.restore())};if(e.display)for(o=0,a=n.length;o{this.draw(n)}}]:[{z:s,draw:n=>{this.drawBackground(),this.drawGrid(n),this.drawTitle()}},{z:s+1,draw:()=>{this.drawBorder()}},{z:e,draw:n=>{this.drawLabels(n)}}]}getMatchingVisibleMetas(t){let e=this.chart.getSortedVisibleDatasetMetas(),s=this.axis+"AxisID",n=[],o,a;for(o=0,a=e.length;o{let s=e.split("."),n=s.pop(),o=[i].concat(s).join("."),a=t[e].split("."),r=a.pop(),l=a.join(".");O.route(o,n,l,r)})}function Lr(i){return"id"in i&&"defaults"in i}var ms=class{constructor(){this.controllers=new te(et,"datasets",!0),this.elements=new te(it,"elements"),this.plugins=new te(Object,"plugins"),this.scales=new te(_t,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,s){[...e].forEach(n=>{let o=s||this._getRegistryForType(n);s||o.isForType(n)||o===this.plugins&&n.id?this._exec(t,o,n):E(n,a=>{let r=s||this._getRegistryForType(a);this._exec(t,r,a)})})}_exec(t,e,s){let n=Ke(t);z(s["before"+n],[],s),e[t](s),z(s["after"+n],[],s)}_getRegistryForType(t){for(let e=0;e0&&this.getParsed(e-1);for(let y=e;y0&&Math.abs(M[f]-v[f])>b,m&&(w.parsed=M,w.raw=c.data[y]),u&&(w.options=d||this.resolveDataElementOptions(y,x.active?"active":n)),_||this.updateElement(x,y,w,n),v=M}this.updateSharedOptions(d,n,h)}getMaxOverflow(){let t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let r=0;for(let l=e.length-1;l>=0;--l)r=Math.max(r,e[l].size(this.resolveDataElementOptions(l))/2);return r>0&&r}let s=t.dataset,n=s.options&&s.options.borderWidth||0;if(!e.length)return n;let o=e[0].size(this.resolveDataElementOptions(0)),a=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(n,o,a)/2}};ae.id="scatter";ae.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};ae.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title(){return""},label(i){return"("+i.label+", "+i.formattedValue+")"}}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var Rr=Object.freeze({__proto__:null,BarController:ee,BubbleController:ie,DoughnutController:Ot,LineController:se,PolarAreaController:ne,PieController:De,RadarController:oe,ScatterController:ae});function Ft(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}var Oe=class{constructor(t){this.options=t||{}}init(t){}formats(){return Ft()}parse(t,e){return Ft()}format(t,e){return Ft()}add(t,e,s){return Ft()}diff(t,e,s){return Ft()}startOf(t,e,s){return Ft()}endOf(t,e){return Ft()}};Oe.override=function(i){Object.assign(Oe.prototype,i)};var Er={_date:Oe};function Fr(i,t,e,s){let{controller:n,data:o,_sorted:a}=i,r=n._cachedMeta.iScale;if(r&&t===r.axis&&t!=="r"&&a&&o.length){let l=r._reversePixels?qs:at;if(s){if(n._sharedOptions){let c=o[0],h=typeof c.getRange=="function"&&c.getRange(t);if(h){let d=l(o,t,e-h),u=l(o,t,e+h);return{lo:d.lo,hi:u.hi}}}}else return l(o,t,e)}return{lo:0,hi:o.length-1}}function Ie(i,t,e,s,n){let o=i.getSortedVisibleDatasetMetas(),a=e[t];for(let r=0,l=o.length;r{l[a](t[e],n)&&(o.push({element:l,datasetIndex:c,index:h}),r=r||l.inRange(t.x,t.y,n))}),s&&!r?[]:o}var Vr={evaluateInteractionItems:Ie,modes:{index(i,t,e,s){let n=Pt(t,i),o=e.axis||"x",a=e.includeInvisible||!1,r=e.intersect?ls(i,n,o,s,a):cs(i,n,o,!1,s,a),l=[];return r.length?(i.getSortedVisibleDatasetMetas().forEach(c=>{let h=r[0].index,d=c.data[h];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:h})}),l):[]},dataset(i,t,e,s){let n=Pt(t,i),o=e.axis||"xy",a=e.includeInvisible||!1,r=e.intersect?ls(i,n,o,s,a):cs(i,n,o,!1,s,a);if(r.length>0){let l=r[0].datasetIndex,c=i.getDatasetMeta(l).data;r=[];for(let h=0;he.pos===t)}function In(i,t){return i.filter(e=>bo.indexOf(e.pos)===-1&&e.box.axis===t)}function ke(i,t){return i.sort((e,s)=>{let n=t?s:e,o=t?e:s;return n.weight===o.weight?n.index-o.index:n.weight-o.weight})}function Wr(i){let t=[],e,s,n,o,a,r;for(e=0,s=(i||[]).length;ec.box.fullSize),!0),s=ke(we(t,"left"),!0),n=ke(we(t,"right")),o=ke(we(t,"top"),!0),a=ke(we(t,"bottom")),r=In(t,"x"),l=In(t,"y");return{fullSize:e,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:we(t,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}function zn(i,t,e,s){return Math.max(i[e],t[e])+Math.max(i[s],t[s])}function _o(i,t){i.top=Math.max(i.top,t.top),i.left=Math.max(i.left,t.left),i.bottom=Math.max(i.bottom,t.bottom),i.right=Math.max(i.right,t.right)}function $r(i,t,e,s){let{pos:n,box:o}=e,a=i.maxPadding;if(!D(n)){e.size&&(i[n]-=e.size);let d=s[e.stack]||{size:0,count:1};d.size=Math.max(d.size,e.horizontal?o.height:o.width),e.size=d.size/d.count,i[n]+=e.size}o.getPadding&&_o(a,o.getPadding());let r=Math.max(0,t.outerWidth-zn(a,i,"left","right")),l=Math.max(0,t.outerHeight-zn(a,i,"top","bottom")),c=r!==i.w,h=l!==i.h;return i.w=r,i.h=l,e.horizontal?{same:c,other:h}:{same:h,other:c}}function Yr(i){let t=i.maxPadding;function e(s){let n=Math.max(t[s]-i[s],0);return i[s]+=n,n}i.y+=e("top"),i.x+=e("left"),e("right"),e("bottom")}function Xr(i,t){let e=t.maxPadding;function s(n){let o={left:0,top:0,right:0,bottom:0};return n.forEach(a=>{o[a]=Math.max(t[a],e[a])}),o}return s(i?["left","right"]:["top","bottom"])}function Pe(i,t,e,s){let n=[],o,a,r,l,c,h;for(o=0,a=i.length,c=0;o{typeof p.beforeLayout=="function"&&p.beforeLayout()});let h=l.reduce((p,m)=>m.box.options&&m.box.options.display===!1?p:p+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:e,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/h,hBoxMaxHeight:a/2}),u=Object.assign({},n);_o(u,U(s));let f=Object.assign({maxPadding:u,w:o,h:a,x:n.left,y:n.top},n),g=Hr(l.concat(c),d);Pe(r.fullSize,f,d,g),Pe(l,f,d,g),Pe(c,f,d,g)&&Pe(l,f,d,g),Yr(f),Bn(r.leftAndTop,f,d,g),f.x+=f.w,f.y+=f.h,Bn(r.rightAndBottom,f,d,g),i.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},E(r.chartArea,p=>{let m=p.box;Object.assign(m,i.chartArea),m.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}},ui=class{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,s){}removeEventListener(t,e,s){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,s,n){return e=Math.max(0,e||t.width),s=s||t.height,{width:e,height:Math.max(0,n?Math.floor(e/n):s)}}isAttached(t){return!0}updateConfig(t){}},bs=class extends ui{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}},hi="$chartjs",Ur={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Vn=i=>i===null||i==="";function Kr(i,t){let e=i.style,s=i.getAttribute("height"),n=i.getAttribute("width");if(i[hi]={initial:{height:s,width:n,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",Vn(n)){let o=ts(i,"width");o!==void 0&&(i.width=o)}if(Vn(s))if(i.style.height==="")i.height=i.width/(t||2);else{let o=ts(i,"height");o!==void 0&&(i.height=o)}return i}var xo=bn?{passive:!0}:!1;function qr(i,t,e){i.addEventListener(t,e,xo)}function Gr(i,t,e){i.canvas.removeEventListener(t,e,xo)}function Zr(i,t){let e=Ur[i.type]||i.type,{x:s,y:n}=Pt(i,t);return{type:e,chart:t,native:i,x:s!==void 0?s:null,y:n!==void 0?n:null}}function fi(i,t){for(let e of i)if(e===t||e.contains(t))return!0}function Jr(i,t,e){let s=i.canvas,n=new MutationObserver(o=>{let a=!1;for(let r of o)a=a||fi(r.addedNodes,s),a=a&&!fi(r.removedNodes,s);a&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}function Qr(i,t,e){let s=i.canvas,n=new MutationObserver(o=>{let a=!1;for(let r of o)a=a||fi(r.removedNodes,s),a=a&&!fi(r.addedNodes,s);a&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}var Ae=new Map,Wn=0;function yo(){let i=window.devicePixelRatio;i!==Wn&&(Wn=i,Ae.forEach((t,e)=>{e.currentDevicePixelRatio!==i&&t()}))}function tl(i,t){Ae.size||window.addEventListener("resize",yo),Ae.set(i,t)}function el(i){Ae.delete(i),Ae.size||window.removeEventListener("resize",yo)}function il(i,t,e){let s=i.canvas,n=s&&ii(s);if(!n)return;let o=Bi((r,l)=>{let c=n.clientWidth;e(r,l),c{let l=r[0],c=l.contentRect.width,h=l.contentRect.height;c===0&&h===0||o(c,h)});return a.observe(n),tl(i,o),a}function hs(i,t,e){e&&e.disconnect(),t==="resize"&&el(i)}function sl(i,t,e){let s=i.canvas,n=Bi(o=>{i.ctx!==null&&e(Zr(o,i))},i,o=>{let a=o[0];return[a,a.offsetX,a.offsetY]});return qr(s,t,n),n}var _s=class extends ui{acquireContext(t,e){let s=t&&t.getContext&&t.getContext("2d");return s&&s.canvas===t?(Kr(t,e),s):null}releaseContext(t){let e=t.canvas;if(!e[hi])return!1;let s=e[hi].initial;["height","width"].forEach(o=>{let a=s[o];T(a)?e.removeAttribute(o):e.setAttribute(o,a)});let n=s.style||{};return Object.keys(n).forEach(o=>{e.style[o]=n[o]}),e.width=e.width,delete e[hi],!0}addEventListener(t,e,s){this.removeEventListener(t,e);let n=t.$proxies||(t.$proxies={}),a={attach:Jr,detach:Qr,resize:il}[e]||sl;n[e]=a(t,e,s)}removeEventListener(t,e){let s=t.$proxies||(t.$proxies={}),n=s[e];if(!n)return;({attach:hs,detach:hs,resize:hs}[e]||Gr)(t,e,n),s[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,s,n){return mn(t,e,s,n)}isAttached(t){let e=ii(t);return!!(e&&e.isConnected)}};function nl(i){return!Ji()||typeof OffscreenCanvas<"u"&&i instanceof OffscreenCanvas?bs:_s}var xs=class{constructor(){this._init=[]}notify(t,e,s,n){e==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));let o=n?this._descriptors(t).filter(n):this._descriptors(t),a=this._notify(o,t,e,s);return e==="afterDestroy"&&(this._notify(o,t,"stop"),this._notify(this._init,t,"uninstall")),a}_notify(t,e,s,n){n=n||{};for(let o of t){let a=o.plugin,r=a[s],l=[e,n,o.options];if(z(r,l,a)===!1&&n.cancelable)return!1}return!0}invalidate(){T(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;let e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){let s=t&&t.config,n=C(s.options&&s.options.plugins,{}),o=ol(s);return n===!1&&!e?[]:rl(t,o,n,e)}_notifyStateChanges(t){let e=this._oldCache||[],s=this._cache,n=(o,a)=>o.filter(r=>!a.some(l=>r.plugin.id===l.plugin.id));this._notify(n(e,s),t,"stop"),this._notify(n(s,e),t,"start")}};function ol(i){let t={},e=[],s=Object.keys(ht.plugins.items);for(let o=0;o{let l=s[r];if(!D(l))return console.error(`Invalid scale configuration for scale: ${r}`);if(l._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);let c=vs(r,l),h=hl(c,n),d=e.scales||{};o[c]=o[c]||r,a[r]=Ut(Object.create(null),[{axis:c},l,d[c],d[h]])}),i.data.datasets.forEach(r=>{let l=r.type||i.type,c=r.indexAxis||ys(l,t),d=(Mt[l]||{}).scales||{};Object.keys(d).forEach(u=>{let f=cl(u,c),g=r[f+"AxisID"]||o[f]||f;a[g]=a[g]||Object.create(null),Ut(a[g],[{axis:f},s[g],d[u]])})}),Object.keys(a).forEach(r=>{let l=a[r];Ut(l,[O.scales[l.type],O.scale])}),a}function vo(i){let t=i.options||(i.options={});t.plugins=C(t.plugins,{}),t.scales=ul(i,t)}function Mo(i){return i=i||{},i.datasets=i.datasets||[],i.labels=i.labels||[],i}function fl(i){return i=i||{},i.data=Mo(i.data),vo(i),i}var Nn=new Map,wo=new Set;function ai(i,t){let e=Nn.get(i);return e||(e=t(),Nn.set(i,e),wo.add(e)),e}var Se=(i,t,e)=>{let s=gt(t,e);s!==void 0&&i.add(s)},Ms=class{constructor(t){this._config=fl(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Mo(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){let t=this._config;this.clearCache(),vo(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return ai(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return ai(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return ai(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){let e=t.id,s=this.type;return ai(`${s}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){let s=this._scopeCache,n=s.get(t);return(!n||e)&&(n=new Map,s.set(t,n)),n}getOptionScopes(t,e,s){let{options:n,type:o}=this,a=this._cachedScopes(t,s),r=a.get(e);if(r)return r;let l=new Set;e.forEach(h=>{t&&(l.add(t),h.forEach(d=>Se(l,t,d))),h.forEach(d=>Se(l,n,d)),h.forEach(d=>Se(l,Mt[o]||{},d)),h.forEach(d=>Se(l,O,d)),h.forEach(d=>Se(l,Je,d))});let c=Array.from(l);return c.length===0&&c.push(Object.create(null)),wo.has(e)&&a.set(e,c),c}chartOptionScopes(){let{options:t,type:e}=this;return[t,Mt[e]||{},O.datasets[e]||{},{type:e},O,Je]}resolveNamedOptions(t,e,s,n=[""]){let o={$shared:!0},{resolver:a,subPrefixes:r}=Hn(this._resolverCache,t,n),l=a;if(pl(a,e)){o.$shared=!1,s=ft(s)?s():s;let c=this.createResolver(t,s,r);l=Lt(a,s,c)}for(let c of e)o[c]=l[c];return o}createResolver(t,e,s=[""],n){let{resolver:o}=Hn(this._resolverCache,t,s);return D(e)?Lt(o,e,void 0,n):o}};function Hn(i,t,e){let s=i.get(t);s||(s=new Map,i.set(t,s));let n=e.join(),o=s.get(n);return o||(o={resolver:ei(t,e),subPrefixes:e.filter(r=>!r.toLowerCase().includes("hover"))},s.set(n,o)),o}var gl=i=>D(i)&&Object.getOwnPropertyNames(i).reduce((t,e)=>t||ft(i[e]),!1);function pl(i,t){let{isScriptable:e,isIndexable:s}=Ki(i);for(let n of t){let o=e(n),a=s(n),r=(a||o)&&i[n];if(o&&(ft(r)||gl(r))||a&&I(r))return!0}return!1}var ml="3.9.1",bl=["top","bottom","left","right","chartArea"];function jn(i,t){return i==="top"||i==="bottom"||bl.indexOf(i)===-1&&t==="x"}function $n(i,t){return function(e,s){return e[i]===s[i]?e[t]-s[t]:e[i]-s[i]}}function Yn(i){let t=i.chart,e=t.options.animation;t.notifyPlugins("afterRender"),z(e&&e.onComplete,[i],t)}function _l(i){let t=i.chart,e=t.options.animation;z(e&&e.onProgress,[i],t)}function ko(i){return Ji()&&typeof i=="string"?i=document.getElementById(i):i&&i.length&&(i=i[0]),i&&i.canvas&&(i=i.canvas),i}var gi={},So=i=>{let t=ko(i);return Object.values(gi).filter(e=>e.canvas===t).pop()};function xl(i,t,e){let s=Object.keys(i);for(let n of s){let o=+n;if(o>=t){let a=i[n];delete i[n],(e>0||o>t)&&(i[o+e]=a)}}}function yl(i,t,e,s){return!e||i.type==="mouseout"?null:s?t:i}var It=class{constructor(t,e){let s=this.config=new Ms(e),n=ko(t),o=So(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");let a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||nl(n)),this.platform.updateConfig(s);let r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,c=l&&l.height,h=l&&l.width;if(this.id=Hs(),this.ctx=r,this.canvas=l,this.width=h,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new xs,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Qs(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],gi[this.id]=this,!r||!l){console.error("Failed to create chart: can't acquire context from the given item");return}mt.listen(this,"complete",Yn),mt.listen(this,"progress",_l),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:t,maintainAspectRatio:e},width:s,height:n,_aspectRatio:o}=this;return T(t)?e&&o?o:n?s/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Qi(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Yi(this.canvas,this.ctx),this}stop(){return mt.stop(this),this}resize(t,e){mt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){let s=this.options,n=this.canvas,o=s.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(n,t,e,o),r=s.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,Qi(this,r,!0)&&(this.notifyPlugins("resize",{size:a}),z(s.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){let e=this.options.scales||{};E(e,(s,n)=>{s.id=n})}buildOrUpdateScales(){let t=this.options,e=t.scales,s=this.scales,n=Object.keys(s).reduce((a,r)=>(a[r]=!1,a),{}),o=[];e&&(o=o.concat(Object.keys(e).map(a=>{let r=e[a],l=vs(a,r),c=l==="r",h=l==="x";return{options:r,dposition:c?"chartArea":h?"bottom":"left",dtype:c?"radialLinear":h?"category":"linear"}}))),E(o,a=>{let r=a.options,l=r.id,c=vs(l,r),h=C(r.type,a.dtype);(r.position===void 0||jn(r.position,c)!==jn(a.dposition))&&(r.position=a.dposition),n[l]=!0;let d=null;if(l in s&&s[l].type===h)d=s[l];else{let u=ht.getScale(h);d=new u({id:l,type:h,ctx:this.ctx,chart:this}),s[d.id]=d}d.init(r,t)}),E(n,(a,r)=>{a||delete s[r]}),E(s,a=>{K.configure(this,a,a.options),K.addBox(this,a)})}_updateMetasets(){let t=this._metasets,e=this.data.datasets.length,s=t.length;if(t.sort((n,o)=>n.index-o.index),s>e){for(let n=e;ne.length&&delete this._stacks,t.forEach((s,n)=>{e.filter(o=>o===s._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let t=[],e=this.data.datasets,s,n;for(this._removeUnreferencedMetasets(),s=0,n=e.length;s{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){let e=this.config;e.update();let s=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!s.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;let o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let c=0,h=this.data.datasets.length;c{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort($n("z","_idx"));let{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){E(this.scales,t=>{K.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let t=this.options,e=new Set(Object.keys(this._listeners)),s=new Set(t.events);(!Ai(e,s)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(let{method:s,start:n,count:o}of e){let a=s==="_removeElements"?-o:o;xl(t,n,a)}}_getUniformDataChanges(){let t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];let e=this.data.datasets.length,s=o=>new Set(t.filter(a=>a[0]===o).map((a,r)=>r+","+a.splice(1).join(","))),n=s(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;K.update(this,this.width,this.height,t);let e=this.chartArea,s=e.width<=0||e.height<=0;this._layers=[],E(this.boxes,n=>{s&&n.position==="chartArea"||(n.configure&&n.configure(),this._layers.push(...n._layers()))},this),this._layers.forEach((n,o)=>{n._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,s=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){let e=this.ctx,s=t._clip,n=!s.disabled,o=this.chartArea,a={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",a)!==!1&&(n&&xe(e,{left:s.left===!1?0:o.left-s.left,right:s.right===!1?this.width:o.right+s.right,top:s.top===!1?0:o.top-s.top,bottom:s.bottom===!1?this.height:o.bottom+s.bottom}),t.controller.draw(),n&&ye(e),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(t){return Yt(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,s,n){let o=Vr.modes[e];return typeof o=="function"?o(this,t,s,n):[]}getDatasetMeta(t){let e=this.data.datasets[t],s=this._metasets,n=s.filter(o=>o&&o._dataset===e).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},s.push(n)),n}getContext(){return this.$context||(this.$context=pt(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){let e=this.data.datasets[t];if(!e)return!1;let s=this.getDatasetMeta(t);return typeof s.hidden=="boolean"?!s.hidden:!e.hidden}setDatasetVisibility(t,e){let s=this.getDatasetMeta(t);s.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,s){let n=s?"show":"hide",o=this.getDatasetMeta(t),a=o.controller._resolveAnimations(void 0,n);J(e)?(o.data[e].hidden=!s,this.update()):(this.setDatasetVisibility(t,s),a.update(o,{visible:s}),this.update(r=>r.datasetIndex===t?n:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){let e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),mt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,a),t[o]=a},n=(o,a,r)=>{o.offsetX=a,o.offsetY=r,this._eventHandler(o)};E(this.options.events,o=>s(o,n))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});let t=this._responsiveListeners,e=this.platform,s=(l,c)=>{e.addEventListener(this,l,c),t[l]=c},n=(l,c)=>{t[l]&&(e.removeEventListener(this,l,c),delete t[l])},o=(l,c)=>{this.canvas&&this.resize(l,c)},a,r=()=>{n("attach",r),this.attached=!0,this.resize(),s("resize",o),s("detach",a)};a=()=>{this.attached=!1,n("resize",o),this._stop(),this._resize(0,0),s("attach",r)},e.isAttached(this.canvas)?r():a()}unbindEvents(){E(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},E(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,s){let n=s?"set":"remove",o,a,r,l;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+n+"DatasetHoverStyle"]()),r=0,l=t.length;r{let r=this.getDatasetMeta(o);if(!r)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:r.data[a],index:a}});!be(s,e)&&(this._active=s,this._lastEvent=null,this._updateHoverStyles(s,e))}notifyPlugins(t,e,s){return this._plugins.notify(this,t,e,s)}_updateHoverStyles(t,e,s){let n=this.options.hover,o=(l,c)=>l.filter(h=>!c.some(d=>h.datasetIndex===d.datasetIndex&&h.index===d.index)),a=o(e,t),r=s?t:o(t,e);a.length&&this.updateHoverStyle(a,n.mode,!1),r.length&&n.mode&&this.updateHoverStyle(r,n.mode,!0)}_eventHandler(t,e){let s={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},n=a=>(a.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",s,n)===!1)return;let o=this._handleEvent(t,e,s.inChartArea);return s.cancelable=!1,this.notifyPlugins("afterEvent",s,n),(o||s.changed)&&this.render(),this}_handleEvent(t,e,s){let{_active:n=[],options:o}=this,a=e,r=this._getActiveElements(t,n,s,a),l=Ys(t),c=yl(t,this._lastEvent,s,l);s&&(this._lastEvent=null,z(o.onHover,[t,r,this],this),l&&z(o.onClick,[t,r,this],this));let h=!be(r,n);return(h||e)&&(this._active=r,this._updateHoverStyles(r,n,e)),this._lastEvent=c,h}_getActiveElements(t,e,s,n){if(t.type==="mouseout")return[];if(!s)return e;let o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,n)}},Xn=()=>E(It.instances,i=>i._plugins.invalidate()),Ct=!0;Object.defineProperties(It,{defaults:{enumerable:Ct,value:O},instances:{enumerable:Ct,value:gi},overrides:{enumerable:Ct,value:Mt},registry:{enumerable:Ct,value:ht},version:{enumerable:Ct,value:ml},getChart:{enumerable:Ct,value:So},register:{enumerable:Ct,value:(...i)=>{ht.add(...i),Xn()}},unregister:{enumerable:Ct,value:(...i)=>{ht.remove(...i),Xn()}}});function Po(i,t,e){let{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=t,c=n/r;i.beginPath(),i.arc(o,a,r,s-c,e+c),l>n?(c=n/l,i.arc(o,a,l,e+c,s-c,!0)):i.arc(o,a,n,e+V,s-V),i.closePath(),i.clip()}function vl(i){return ti(i,["outerStart","outerEnd","innerStart","innerEnd"])}function Ml(i,t,e,s){let n=vl(i.options.borderRadius),o=(e-t)/2,a=Math.min(o,s*t/2),r=l=>{let c=(e-Math.min(o,l))*s/2;return Y(l,0,Math.min(o,c))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Y(n.innerStart,0,a),innerEnd:Y(n.innerEnd,0,a)}}function Qt(i,t,e,s){return{x:e+i*Math.cos(t),y:s+i*Math.sin(t)}}function ws(i,t,e,s,n,o){let{x:a,y:r,startAngle:l,pixelMargin:c,innerRadius:h}=t,d=Math.max(t.outerRadius+s+e-c,0),u=h>0?h+s+e+c:0,f=0,g=n-l;if(s){let P=h>0?h-s:0,j=d>0?d-s:0,N=(P+j)/2,At=N!==0?g*N/(N+s):g;f=(g-At)/2}let p=Math.max(.001,g*d-e/B)/d,m=(g-p)/2,b=l+m+f,_=n-m-f,{outerStart:v,outerEnd:y,innerStart:x,innerEnd:M}=Ml(t,u,d,_-b),w=d-v,S=d-y,k=b+v/w,L=_-y/S,R=u+x,A=u+M,H=b+x/R,q=_-M/A;if(i.beginPath(),o){if(i.arc(a,r,d,k,L),y>0){let N=Qt(S,L,a,r);i.arc(N.x,N.y,y,L,_+V)}let P=Qt(A,_,a,r);if(i.lineTo(P.x,P.y),M>0){let N=Qt(A,q,a,r);i.arc(N.x,N.y,M,_+V,q+Math.PI)}if(i.arc(a,r,u,_-M/u,b+x/u,!0),x>0){let N=Qt(R,H,a,r);i.arc(N.x,N.y,x,H+Math.PI,b-V)}let j=Qt(w,b,a,r);if(i.lineTo(j.x,j.y),v>0){let N=Qt(w,k,a,r);i.arc(N.x,N.y,v,b-V,k)}}else{i.moveTo(a,r);let P=Math.cos(k)*d+a,j=Math.sin(k)*d+r;i.lineTo(P,j);let N=Math.cos(L)*d+a,At=Math.sin(L)*d+r;i.lineTo(N,At)}i.closePath()}function wl(i,t,e,s,n){let{fullCircles:o,startAngle:a,circumference:r}=t,l=t.endAngle;if(o){ws(i,t,e,s,a+F,n);for(let c=0;c=F||qt(o,r,l),p=lt(a,c+u,h+u);return g&&p}getCenterPoint(t){let{x:e,y:s,startAngle:n,endAngle:o,innerRadius:a,outerRadius:r}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:l,spacing:c}=this.options,h=(n+o)/2,d=(a+r+c+l)/2;return{x:e+Math.cos(h)*d,y:s+Math.sin(h)*d}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){let{options:e,circumference:s}=this,n=(e.offset||0)/2,o=(e.spacing||0)/2,a=e.circular;if(this.pixelMargin=e.borderAlign==="inner"?.33:0,this.fullCircles=s>F?Math.floor(s/F):0,s===0||this.innerRadius<0||this.outerRadius<0)return;t.save();let r=0;if(n){r=n/2;let c=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(c)*r,Math.sin(c)*r),this.circumference>=B&&(r=n)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;let l=wl(t,this,r,o,a);Sl(t,this,r,o,l,a),t.restore()}};re.id="arc";re.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0};re.defaultRoutes={backgroundColor:"backgroundColor"};function Co(i,t,e=t){i.lineCap=C(e.borderCapStyle,t.borderCapStyle),i.setLineDash(C(e.borderDash,t.borderDash)),i.lineDashOffset=C(e.borderDashOffset,t.borderDashOffset),i.lineJoin=C(e.borderJoinStyle,t.borderJoinStyle),i.lineWidth=C(e.borderWidth,t.borderWidth),i.strokeStyle=C(e.borderColor,t.borderColor)}function Pl(i,t,e){i.lineTo(e.x,e.y)}function Cl(i){return i.stepped?ln:i.tension||i.cubicInterpolationMode==="monotone"?cn:Pl}function Do(i,t,e={}){let s=i.length,{start:n=0,end:o=s-1}=e,{start:a,end:r}=t,l=Math.max(n,a),c=Math.min(o,r),h=nr&&o>r;return{count:s,start:l,loop:t.loop,ilen:c(a+(c?r-y:y))%o,v=()=>{p!==m&&(i.lineTo(h,m),i.lineTo(h,p),i.lineTo(h,b))};for(l&&(f=n[_(0)],i.moveTo(f.x,f.y)),u=0;u<=r;++u){if(f=n[_(u)],f.skip)continue;let y=f.x,x=f.y,M=y|0;M===g?(xm&&(m=x),h=(d*h+y)/++d):(v(),i.lineTo(y,x),g=M,d=0,p=m=x),b=x}v()}function ks(i){let t=i.options,e=t.borderDash&&t.borderDash.length;return!i._decimated&&!i._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?Ol:Dl}function Al(i){return i.stepped?_n:i.tension||i.cubicInterpolationMode==="monotone"?xn:xt}function Tl(i,t,e,s){let n=t._path;n||(n=t._path=new Path2D,t.path(n,e,s)&&n.closePath()),Co(i,t.options),i.stroke(n)}function Ll(i,t,e,s){let{segments:n,options:o}=t,a=ks(t);for(let r of n)Co(i,o,r.style),i.beginPath(),a(i,t,r,{start:e,end:e+s-1})&&i.closePath(),i.stroke()}var Rl=typeof Path2D=="function";function El(i,t,e,s){Rl&&!t.options.segment?Tl(i,t,e,s):Ll(i,t,e,s)}var dt=class extends it{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){let s=this.options;if((s.tension||s.cubicInterpolationMode==="monotone")&&!s.stepped&&!this._pointsUpdated){let n=s.spanGaps?this._loop:this._fullLoop;pn(this._points,s,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=vn(this,this.options.segment))}first(){let t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){let t=this.segments,e=this.points,s=t.length;return s&&e[t[s-1].end]}interpolate(t,e){let s=this.options,n=t[e],o=this.points,a=ns(this,{property:e,start:n,end:n});if(!a.length)return;let r=[],l=Al(s),c,h;for(c=0,h=a.length;ci!=="borderDash"&&i!=="fill"};function Un(i,t,e,s){let n=i.options,{[e]:o}=i.getProps([e],s);return Math.abs(t-o)=e)return i.slice(t,t+e);let a=[],r=(e-2)/(o-2),l=0,c=t+e-1,h=t,d,u,f,g,p;for(a[l++]=i[h],d=0;df&&(f=g,u=i[_],p=_);a[l++]=u,h=p}return a[l++]=i[c],a}function Hl(i,t,e,s){let n=0,o=0,a,r,l,c,h,d,u,f,g,p,m=[],b=t+e-1,_=i[t].x,y=i[b].x-_;for(a=t;ap&&(p=c,u=a),n=(o*n+r.x)/++o;else{let M=a-1;if(!T(d)&&!T(u)){let w=Math.min(d,u),S=Math.max(d,u);w!==f&&w!==M&&m.push({...i[w],x:n}),S!==f&&S!==M&&m.push({...i[S],x:n})}a>0&&M!==f&&m.push(i[M]),m.push(r),h=x,o=0,g=p=c,d=u=f=a}}return m}function Ao(i){if(i._decimated){let t=i._data;delete i._decimated,delete i._data,Object.defineProperty(i,"data",{value:t})}}function Kn(i){i.data.datasets.forEach(t=>{Ao(t)})}function jl(i,t){let e=t.length,s=0,n,{iScale:o}=i,{min:a,max:r,minDefined:l,maxDefined:c}=o.getUserBounds();return l&&(s=Y(at(t,o.axis,a).lo,0,e-1)),c?n=Y(at(t,o.axis,r).hi+1,s,e)-s:n=e-s,{start:s,count:n}}var $l={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(i,t,e)=>{if(!e.enabled){Kn(i);return}let s=i.width;i.data.datasets.forEach((n,o)=>{let{_data:a,indexAxis:r}=n,l=i.getDatasetMeta(o),c=a||n.data;if(Zt([r,i.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;let h=i.scales[l.xAxisID];if(h.type!=="linear"&&h.type!=="time"||i.options.parsing)return;let{start:d,count:u}=jl(l,c),f=e.threshold||4*s;if(u<=f){Ao(n);return}T(a)&&(n._data=c,delete n.data,Object.defineProperty(n,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(p){this._data=p}}));let g;switch(e.algorithm){case"lttb":g=Nl(c,d,u,s,e);break;case"min-max":g=Hl(c,d,u,s);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}n._decimated=g})},destroy(i){Kn(i)}};function Yl(i,t,e){let s=i.segments,n=i.points,o=t.points,a=[];for(let r of s){let{start:l,end:c}=r;c=Cs(l,c,n);let h=Ss(e,n[l],n[c],r.loop);if(!t.segments){a.push({source:r,target:h,start:n[l],end:n[c]});continue}let d=ns(t,h);for(let u of d){let f=Ss(e,o[u.start],o[u.end],u.loop),g=ss(r,n,f);for(let p of g)a.push({source:p,target:u,start:{[e]:qn(h,f,"start",Math.max)},end:{[e]:qn(h,f,"end",Math.min)}})}}return a}function Ss(i,t,e,s){if(s)return;let n=t[i],o=e[i];return i==="angle"&&(n=G(n),o=G(o)),{property:i,start:n,end:o}}function Xl(i,t){let{x:e=null,y:s=null}=i||{},n=t.points,o=[];return t.segments.forEach(({start:a,end:r})=>{r=Cs(a,r,n);let l=n[a],c=n[r];s!==null?(o.push({x:l.x,y:s}),o.push({x:c.x,y:s})):e!==null&&(o.push({x:e,y:l.y}),o.push({x:e,y:c.y}))}),o}function Cs(i,t,e){for(;t>i;t--){let s=e[t];if(!isNaN(s.x)&&!isNaN(s.y))break}return t}function qn(i,t,e,s){return i&&t?s(i[e],t[e]):i?i[e]:t?t[e]:0}function To(i,t){let e=[],s=!1;return I(i)?(s=!0,e=i):e=Xl(i,t),e.length?new dt({points:e,options:{tension:0},_loop:s,_fullLoop:s}):null}function Gn(i){return i&&i.fill!==!1}function Ul(i,t,e){let n=i[t].fill,o=[t],a;if(!e)return n;for(;n!==!1&&o.indexOf(n)===-1;){if(!W(n))return n;if(a=i[n],!a)return!1;if(a.visible)return n;o.push(n),n=a.fill}return!1}function Kl(i,t,e){let s=Jl(i);if(D(s))return isNaN(s.value)?!1:s;let n=parseFloat(s);return W(n)&&Math.floor(n)===n?ql(s[0],t,n,e):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function ql(i,t,e,s){return(i==="-"||i==="+")&&(e=t+e),e===t||e<0||e>=s?!1:e}function Gl(i,t){let e=null;return i==="start"?e=t.bottom:i==="end"?e=t.top:D(i)?e=t.getPixelForValue(i.value):t.getBasePixel&&(e=t.getBasePixel()),e}function Zl(i,t,e){let s;return i==="start"?s=e:i==="end"?s=t.options.reverse?t.min:t.max:D(i)?s=i.value:s=t.getBaseValue(),s}function Jl(i){let t=i.options,e=t.fill,s=C(e&&e.target,e);return s===void 0&&(s=!!t.backgroundColor),s===!1||s===null?!1:s===!0?"origin":s}function Ql(i){let{scale:t,index:e,line:s}=i,n=[],o=s.segments,a=s.points,r=tc(t,e);r.push(To({x:null,y:t.bottom},s));for(let l=0;l=0;--a){let r=n[a].$filler;r&&(r.line.updateControlPoints(o,r.axis),s&&r.fill&&fs(i.ctx,r,o))}},beforeDatasetsDraw(i,t,e){if(e.drawTime!=="beforeDatasetsDraw")return;let s=i.getSortedVisibleDatasetMetas();for(let n=s.length-1;n>=0;--n){let o=s[n].$filler;Gn(o)&&fs(i.ctx,o,i.chartArea)}},beforeDatasetDraw(i,t,e){let s=t.meta.$filler;!Gn(s)||e.drawTime!=="beforeDatasetDraw"||fs(i.ctx,s,i.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}},to=(i,t)=>{let{boxHeight:e=t,boxWidth:s=t}=i;return i.usePointStyle&&(e=Math.min(e,t),s=i.pointStyleWidth||Math.min(s,t)),{boxWidth:s,boxHeight:e,itemHeight:Math.max(t,e)}},dc=(i,t)=>i!==null&&t!==null&&i.datasetIndex===t.datasetIndex&&i.index===t.index,mi=class extends it{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,s){this.maxWidth=t,this.maxHeight=e,this._margins=s,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let t=this.options.labels||{},e=z(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(s=>t.filter(s,this.chart.data))),t.sort&&(e=e.sort((s,n)=>t.sort(s,n,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){let{options:t,ctx:e}=this;if(!t.display){this.width=this.height=0;return}let s=t.labels,n=$(s.font),o=n.size,a=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=to(s,o),c,h;e.font=n.string,this.isHorizontal()?(c=this.maxWidth,h=this._fitRows(a,o,r,l)+10):(h=this.maxHeight,c=this._fitCols(a,o,r,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,s,n){let{ctx:o,maxWidth:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],h=n+r,d=t;o.textAlign="left",o.textBaseline="middle";let u=-1,f=-h;return this.legendItems.forEach((g,p)=>{let m=s+e/2+o.measureText(g.text).width;(p===0||c[c.length-1]+m+2*r>a)&&(d+=h,c[c.length-(p>0?0:1)]=0,f+=h,u++),l[p]={left:0,top:f,row:u,width:m,height:n},c[c.length-1]+=m+r}),d}_fitCols(t,e,s,n){let{ctx:o,maxHeight:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],h=a-t,d=r,u=0,f=0,g=0,p=0;return this.legendItems.forEach((m,b)=>{let _=s+e/2+o.measureText(m.text).width;b>0&&f+n+2*r>h&&(d+=u+r,c.push({width:u,height:f}),g+=u+r,p++,u=f=0),l[b]={left:g,top:f,col:p,width:_,height:n},u=Math.max(u,_),f+=n+r}),d+=u,c.push({width:u,height:f}),d}adjustHitBoxes(){if(!this.options.display)return;let t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:s,labels:{padding:n},rtl:o}}=this,a=Et(o,this.left,this.width);if(this.isHorizontal()){let r=0,l=X(s,this.left+n,this.right-this.lineWidths[r]);for(let c of e)r!==c.row&&(r=c.row,l=X(s,this.left+n,this.right-this.lineWidths[r])),c.top+=this.top+t+n,c.left=a.leftForLtr(a.x(l),c.width),l+=c.width+n}else{let r=0,l=X(s,this.top+t+n,this.bottom-this.columnSizes[r].height);for(let c of e)c.col!==r&&(r=c.col,l=X(s,this.top+t+n,this.bottom-this.columnSizes[r].height)),c.top=l,c.left+=this.left+n,c.left=a.leftForLtr(a.x(c.left),c.width),l+=c.height+n}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){let t=this.ctx;xe(t,this),this._draw(),ye(t)}}_draw(){let{options:t,columnSizes:e,lineWidths:s,ctx:n}=this,{align:o,labels:a}=t,r=O.color,l=Et(t.rtl,this.left,this.width),c=$(a.font),{color:h,padding:d}=a,u=c.size,f=u/2,g;this.drawTitle(),n.textAlign=l.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=c.string;let{boxWidth:p,boxHeight:m,itemHeight:b}=to(a,u),_=function(w,S,k){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;n.save();let L=C(k.lineWidth,1);if(n.fillStyle=C(k.fillStyle,r),n.lineCap=C(k.lineCap,"butt"),n.lineDashOffset=C(k.lineDashOffset,0),n.lineJoin=C(k.lineJoin,"miter"),n.lineWidth=L,n.strokeStyle=C(k.strokeStyle,r),n.setLineDash(C(k.lineDash,[])),a.usePointStyle){let R={radius:m*Math.SQRT2/2,pointStyle:k.pointStyle,rotation:k.rotation,borderWidth:L},A=l.xPlus(w,p/2),H=S+f;Xi(n,R,A,H,a.pointStyleWidth&&p)}else{let R=S+Math.max((u-m)/2,0),A=l.leftForLtr(w,p),H=St(k.borderRadius);n.beginPath(),Object.values(H).some(q=>q!==0)?Gt(n,{x:A,y:R,w:p,h:m,radius:H}):n.rect(A,R,p,m),n.fill(),L!==0&&n.stroke()}n.restore()},v=function(w,S,k){kt(n,k.text,w,S+b/2,c,{strikethrough:k.hidden,textAlign:l.textAlign(k.textAlign)})},y=this.isHorizontal(),x=this._computeTitleHeight();y?g={x:X(o,this.left+d,this.right-s[0]),y:this.top+d+x,line:0}:g={x:this.left+d,y:X(o,this.top+x+d,this.bottom-e[0].height),line:0},es(this.ctx,t.textDirection);let M=b+d;this.legendItems.forEach((w,S)=>{n.strokeStyle=w.fontColor||h,n.fillStyle=w.fontColor||h;let k=n.measureText(w.text).width,L=l.textAlign(w.textAlign||(w.textAlign=a.textAlign)),R=p+f+k,A=g.x,H=g.y;l.setWidth(this.width),y?S>0&&A+R+d>this.right&&(H=g.y+=M,g.line++,A=g.x=X(o,this.left+d,this.right-s[g.line])):S>0&&H+M>this.bottom&&(A=g.x=A+e[g.line].width+d,g.line++,H=g.y=X(o,this.top+x+d,this.bottom-e[g.line].height));let q=l.x(A);_(q,H,w),A=tn(L,A+p+f,y?A+R:this.right,t.rtl),v(l.x(A),H,w),y?g.x+=R+d:g.y+=M}),is(this.ctx,t.textDirection)}drawTitle(){let t=this.options,e=t.title,s=$(e.font),n=U(e.padding);if(!e.display)return;let o=Et(t.rtl,this.left,this.width),a=this.ctx,r=e.position,l=s.size/2,c=n.top+l,h,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),h=this.top+c,d=X(t.align,d,this.right-u);else{let g=this.columnSizes.reduce((p,m)=>Math.max(p,m.height),0);h=c+X(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}let f=X(r,d,d+u);a.textAlign=o.textAlign(Ze(r)),a.textBaseline="middle",a.strokeStyle=e.color,a.fillStyle=e.color,a.font=s.string,kt(a,e.text,f,h,s)}_computeTitleHeight(){let t=this.options.title,e=$(t.font),s=U(t.padding);return t.display?e.lineHeight+s.height:0}_getLegendItemAt(t,e){let s,n,o;if(lt(t,this.left,this.right)&<(e,this.top,this.bottom)){for(o=this.legendHitBoxes,s=0;si.chart.options.color,boxWidth:40,padding:10,generateLabels(i){let t=i.data.datasets,{labels:{usePointStyle:e,pointStyle:s,textAlign:n,color:o}}=i.legend.options;return i._getSortedDatasetMetas().map(a=>{let r=a.controller.getStyle(e?0:void 0),l=U(r.borderWidth);return{text:t[a.index].label,fillStyle:r.backgroundColor,fontColor:o,hidden:!a.visible,lineCap:r.borderCapStyle,lineDash:r.borderDash,lineDashOffset:r.borderDashOffset,lineJoin:r.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:r.borderColor,pointStyle:s||r.pointStyle,rotation:r.rotation,textAlign:n||r.textAlign,borderRadius:0,datasetIndex:a.index}},this)}},title:{color:i=>i.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:i=>!i.startsWith("on"),labels:{_scriptable:i=>!["generateLabels","filter","sort"].includes(i)}}},Te=class extends it{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){let s=this.options;if(this.left=0,this.top=0,!s.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=e;let n=I(s.text)?s.text.length:1;this._padding=U(s.padding);let o=n*$(s.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){let t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){let{top:e,left:s,bottom:n,right:o,options:a}=this,r=a.align,l=0,c,h,d;return this.isHorizontal()?(h=X(r,s,o),d=e+t,c=o-s):(a.position==="left"?(h=s+t,d=X(r,n,e),l=B*-.5):(h=o-t,d=X(r,e,n),l=B*.5),c=n-e),{titleX:h,titleY:d,maxWidth:c,rotation:l}}draw(){let t=this.ctx,e=this.options;if(!e.display)return;let s=$(e.font),o=s.lineHeight/2+this._padding.top,{titleX:a,titleY:r,maxWidth:l,rotation:c}=this._drawArgs(o);kt(t,e.text,0,0,s,{color:e.color,maxWidth:l,rotation:c,textAlign:Ze(e.align),textBaseline:"middle",translation:[a,r]})}};function gc(i,t){let e=new Te({ctx:i.ctx,options:t,chart:i});K.configure(i,e,t),K.addBox(i,e),i.titleBlock=e}var pc={id:"title",_element:Te,start(i,t,e){gc(i,e)},stop(i){let t=i.titleBlock;K.removeBox(i,t),delete i.titleBlock},beforeUpdate(i,t,e){let s=i.titleBlock;K.configure(i,s,e),s.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},ri=new WeakMap,mc={id:"subtitle",start(i,t,e){let s=new Te({ctx:i.ctx,options:e,chart:i});K.configure(i,s,e),K.addBox(i,s),ri.set(i,s)},stop(i){K.removeBox(i,ri.get(i)),ri.delete(i)},beforeUpdate(i,t,e){let s=ri.get(i);K.configure(i,s,e),s.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Ce={average(i){if(!i.length)return!1;let t,e,s=0,n=0,o=0;for(t=0,e=i.length;t-1?i.split(` +`):i}function bc(i,t){let{element:e,datasetIndex:s,index:n}=t,o=i.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:i,label:a,parsed:o.getParsed(n),raw:i.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:e}}function eo(i,t){let e=i.chart.ctx,{body:s,footer:n,title:o}=i,{boxWidth:a,boxHeight:r}=t,l=$(t.bodyFont),c=$(t.titleFont),h=$(t.footerFont),d=o.length,u=n.length,f=s.length,g=U(t.padding),p=g.height,m=0,b=s.reduce((y,x)=>y+x.before.length+x.lines.length+x.after.length,0);if(b+=i.beforeBody.length+i.afterBody.length,d&&(p+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),b){let y=t.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=f*y+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}u&&(p+=t.footerMarginTop+u*h.lineHeight+(u-1)*t.footerSpacing);let _=0,v=function(y){m=Math.max(m,e.measureText(y).width+_)};return e.save(),e.font=c.string,E(i.title,v),e.font=l.string,E(i.beforeBody.concat(i.afterBody),v),_=t.displayColors?a+2+t.boxPadding:0,E(s,y=>{E(y.before,v),E(y.lines,v),E(y.after,v)}),_=0,e.font=h.string,E(i.footer,v),e.restore(),m+=g.width,{width:m,height:p}}function _c(i,t){let{y:e,height:s}=t;return ei.height-s/2?"bottom":"center"}function xc(i,t,e,s){let{x:n,width:o}=s,a=e.caretSize+e.caretPadding;if(i==="left"&&n+o+a>t.width||i==="right"&&n-o-a<0)return!0}function yc(i,t,e,s){let{x:n,width:o}=e,{width:a,chartArea:{left:r,right:l}}=i,c="center";return s==="center"?c=n<=(r+l)/2?"left":"right":n<=o/2?c="left":n>=a-o/2&&(c="right"),xc(c,i,t,e)&&(c="center"),c}function io(i,t,e){let s=e.yAlign||t.yAlign||_c(i,e);return{xAlign:e.xAlign||t.xAlign||yc(i,t,e,s),yAlign:s}}function vc(i,t){let{x:e,width:s}=i;return t==="right"?e-=s:t==="center"&&(e-=s/2),e}function Mc(i,t,e){let{y:s,height:n}=i;return t==="top"?s+=e:t==="bottom"?s-=n+e:s-=n/2,s}function so(i,t,e,s){let{caretSize:n,caretPadding:o,cornerRadius:a}=i,{xAlign:r,yAlign:l}=e,c=n+o,{topLeft:h,topRight:d,bottomLeft:u,bottomRight:f}=St(a),g=vc(t,r),p=Mc(t,l,c);return l==="center"?r==="left"?g+=c:r==="right"&&(g-=c):r==="left"?g-=Math.max(h,u)+n:r==="right"&&(g+=Math.max(d,f)+n),{x:Y(g,0,s.width-t.width),y:Y(p,0,s.height-t.height)}}function li(i,t,e){let s=U(e.padding);return t==="center"?i.x+i.width/2:t==="right"?i.x+i.width-s.right:i.x+s.left}function no(i){return ct([],bt(i))}function wc(i,t,e){return pt(i,{tooltip:t,tooltipItems:e,type:"tooltip"})}function oo(i,t){let e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?i.override(e):i}var Le=class extends it{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let t=this._cachedAnimations;if(t)return t;let e=this.chart,s=this.options.setContext(this.getContext()),n=s.enabled&&e.options.animation&&s.animations,o=new di(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=wc(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){let{callbacks:s}=e,n=s.beforeTitle.apply(this,[t]),o=s.title.apply(this,[t]),a=s.afterTitle.apply(this,[t]),r=[];return r=ct(r,bt(n)),r=ct(r,bt(o)),r=ct(r,bt(a)),r}getBeforeBody(t,e){return no(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){let{callbacks:s}=e,n=[];return E(t,o=>{let a={before:[],lines:[],after:[]},r=oo(s,o);ct(a.before,bt(r.beforeLabel.call(this,o))),ct(a.lines,r.label.call(this,o)),ct(a.after,bt(r.afterLabel.call(this,o))),n.push(a)}),n}getAfterBody(t,e){return no(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){let{callbacks:s}=e,n=s.beforeFooter.apply(this,[t]),o=s.footer.apply(this,[t]),a=s.afterFooter.apply(this,[t]),r=[];return r=ct(r,bt(n)),r=ct(r,bt(o)),r=ct(r,bt(a)),r}_createItems(t){let e=this._active,s=this.chart.data,n=[],o=[],a=[],r=[],l,c;for(l=0,c=e.length;lt.filter(h,d,u,s))),t.itemSort&&(r=r.sort((h,d)=>t.itemSort(h,d,s))),E(r,h=>{let d=oo(t.callbacks,h);n.push(d.labelColor.call(this,h)),o.push(d.labelPointStyle.call(this,h)),a.push(d.labelTextColor.call(this,h))}),this.labelColors=n,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=r,r}update(t,e){let s=this.options.setContext(this.getContext()),n=this._active,o,a=[];if(!n.length)this.opacity!==0&&(o={opacity:0});else{let r=Ce[s.position].call(this,n,this._eventPosition);a=this._createItems(s),this.title=this.getTitle(a,s),this.beforeBody=this.getBeforeBody(a,s),this.body=this.getBody(a,s),this.afterBody=this.getAfterBody(a,s),this.footer=this.getFooter(a,s);let l=this._size=eo(this,s),c=Object.assign({},r,l),h=io(this.chart,s,c),d=so(s,c,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,o={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:r.x,caretY:r.y}}this._tooltipItems=a,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&s.external&&s.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,s,n){let o=this.getCaretPosition(t,s,n);e.lineTo(o.x1,o.y1),e.lineTo(o.x2,o.y2),e.lineTo(o.x3,o.y3)}getCaretPosition(t,e,s){let{xAlign:n,yAlign:o}=this,{caretSize:a,cornerRadius:r}=s,{topLeft:l,topRight:c,bottomLeft:h,bottomRight:d}=St(r),{x:u,y:f}=t,{width:g,height:p}=e,m,b,_,v,y,x;return o==="center"?(y=f+p/2,n==="left"?(m=u,b=m-a,v=y+a,x=y-a):(m=u+g,b=m+a,v=y-a,x=y+a),_=m):(n==="left"?b=u+Math.max(l,h)+a:n==="right"?b=u+g-Math.max(c,d)-a:b=this.caretX,o==="top"?(v=f,y=v-a,m=b-a,_=b+a):(v=f+p,y=v+a,m=b+a,_=b-a),x=v),{x1:m,x2:b,x3:_,y1:v,y2:y,y3:x}}drawTitle(t,e,s){let n=this.title,o=n.length,a,r,l;if(o){let c=Et(s.rtl,this.x,this.width);for(t.x=li(this,s.titleAlign,s),e.textAlign=c.textAlign(s.titleAlign),e.textBaseline="middle",a=$(s.titleFont),r=s.titleSpacing,e.fillStyle=s.titleColor,e.font=a.string,l=0;lv!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,Gt(t,{x:m,y:p,w:c,h:l,radius:_}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),Gt(t,{x:b,y:p+1,w:c-2,h:l-2,radius:_}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(m,p,c,l),t.strokeRect(m,p,c,l),t.fillStyle=a.backgroundColor,t.fillRect(b,p+1,c-2,l-2))}t.fillStyle=this.labelTextColors[s]}drawBody(t,e,s){let{body:n}=this,{bodySpacing:o,bodyAlign:a,displayColors:r,boxHeight:l,boxWidth:c,boxPadding:h}=s,d=$(s.bodyFont),u=d.lineHeight,f=0,g=Et(s.rtl,this.x,this.width),p=function(S){e.fillText(S,g.x(t.x+f),t.y+u/2),t.y+=u+o},m=g.textAlign(a),b,_,v,y,x,M,w;for(e.textAlign=a,e.textBaseline="middle",e.font=d.string,t.x=li(this,m,s),e.fillStyle=s.bodyColor,E(this.beforeBody,p),f=r&&m!=="right"?a==="center"?c/2+h:c+2+h:0,y=0,M=n.length;y0&&e.stroke()}_updateAnimationTarget(t){let e=this.chart,s=this.$animations,n=s&&s.x,o=s&&s.y;if(n||o){let a=Ce[t.position].call(this,this._active,this._eventPosition);if(!a)return;let r=this._size=eo(this,t),l=Object.assign({},a,this._size),c=io(e,t,l),h=so(t,l,c,e);(n._to!==h.x||o._to!==h.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=r.width,this.height=r.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){let e=this.options.setContext(this.getContext()),s=this.opacity;if(!s)return;this._updateAnimationTarget(e);let n={width:this.width,height:this.height},o={x:this.x,y:this.y};s=Math.abs(s)<.001?0:s;let a=U(e.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&r&&(t.save(),t.globalAlpha=s,this.drawBackground(o,t,n,e),es(t,e.textDirection),o.y+=a.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),is(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){let s=this._active,n=t.map(({datasetIndex:r,index:l})=>{let c=this.chart.getDatasetMeta(r);if(!c)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:c.data[l],index:l}}),o=!be(s,n),a=this._positionChanged(n,e);(o||a)&&(this._active=n,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,s=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let n=this.options,o=this._active||[],a=this._getActiveElements(t,o,e,s),r=this._positionChanged(a,t),l=e||!be(a,o)||r;return l&&(this._active=a,(n.enabled||n.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,s,n){let o=this.options;if(t.type==="mouseout")return[];if(!n)return e;let a=this.chart.getElementsAtEventForMode(t,o.mode,o,s);return o.reverse&&a.reverse(),a}_positionChanged(t,e){let{caretX:s,caretY:n,options:o}=this,a=Ce[o.position].call(this,t,e);return a!==!1&&(s!==a.x||n!==a.y)}};Le.positioners=Ce;var kc={id:"tooltip",_element:Le,positioners:Ce,afterInit(i,t,e){e&&(i.tooltip=new Le({chart:i,options:e}))},beforeUpdate(i,t,e){i.tooltip&&i.tooltip.initialize(e)},reset(i,t,e){i.tooltip&&i.tooltip.initialize(e)},afterDraw(i){let t=i.tooltip;if(t&&t._willRender()){let e={tooltip:t};if(i.notifyPlugins("beforeTooltipDraw",e)===!1)return;t.draw(i.ctx),i.notifyPlugins("afterTooltipDraw",e)}},afterEvent(i,t){if(i.tooltip){let e=t.replay;i.tooltip.handleEvent(t.event,e,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(i,t)=>t.bodyFont.size,boxWidth:(i,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:rt,title(i){if(i.length>0){let t=i[0],e=t.chart.data.labels,s=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(s>0&&t.dataIndexi!=="filter"&&i!=="itemSort"&&i!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Sc=Object.freeze({__proto__:null,Decimation:$l,Filler:hc,Legend:fc,SubTitle:mc,Title:pc,Tooltip:kc}),Pc=(i,t,e,s)=>(typeof t=="string"?(e=i.push(t)-1,s.unshift({index:e,label:t})):isNaN(t)&&(e=null),e);function Cc(i,t,e,s){let n=i.indexOf(t);if(n===-1)return Pc(i,t,e,s);let o=i.lastIndexOf(t);return n!==o?e:n}var Dc=(i,t)=>i===null?null:Y(Math.round(i),0,t),he=class extends _t{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){let e=this._addedLabels;if(e.length){let s=this.getLabels();for(let{index:n,label:o}of e)s[n]===o&&s.splice(n,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(T(t))return null;let s=this.getLabels();return e=isFinite(e)&&s[e]===t?e:Cc(s,t,C(e,t),this._addedLabels),Dc(e,s.length-1)}determineDataLimits(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),{min:s,max:n}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(s=0),e||(n=this.getLabels().length-1)),this.min=s,this.max=n}buildTicks(){let t=this.min,e=this.max,s=this.options.offset,n=[],o=this.getLabels();o=t===0&&e===o.length-1?o:o.slice(t,e+1),this._valueRange=Math.max(o.length-(s?0:1),1),this._startValue=this.min-(s?.5:0);for(let a=t;a<=e;a++)n.push({value:a});return n}getLabelForValue(t){let e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}};he.id="category";he.defaults={ticks:{callback:he.prototype.getLabelForValue}};function Oc(i,t){let e=[],{bounds:n,step:o,min:a,max:r,precision:l,count:c,maxTicks:h,maxDigits:d,includeBounds:u}=i,f=o||1,g=h-1,{min:p,max:m}=t,b=!T(a),_=!T(r),v=!T(c),y=(m-p)/(d+1),x=Ti((m-p)/g/f)*f,M,w,S,k;if(x<1e-14&&!b&&!_)return[{value:p},{value:m}];k=Math.ceil(m/x)-Math.floor(p/x),k>g&&(x=Ti(k*x/g/f)*f),T(l)||(M=Math.pow(10,l),x=Math.ceil(x*M)/M),n==="ticks"?(w=Math.floor(p/x)*x,S=Math.ceil(m/x)*x):(w=p,S=m),b&&_&&o&&Us((r-a)/o,x/1e3)?(k=Math.round(Math.min((r-a)/x,h)),x=(r-a)/k,w=a,S=r):v?(w=b?a:w,S=_?r:S,k=c-1,x=(S-w)/k):(k=(S-w)/x,Kt(k,Math.round(k),x/1e3)?k=Math.round(k):k=Math.ceil(k));let L=Math.max(Ri(x),Ri(w));M=Math.pow(10,T(l)?L:l),w=Math.round(w*M)/M,S=Math.round(S*M)/M;let R=0;for(b&&(u&&w!==a?(e.push({value:a}),wn=e?n:l,r=l=>o=s?o:l;if(t){let l=ot(n),c=ot(o);l<0&&c<0?r(0):l>0&&c>0&&a(0)}if(n===o){let l=1;(o>=Number.MAX_SAFE_INTEGER||n<=Number.MIN_SAFE_INTEGER)&&(l=Math.abs(o*.05)),r(o+l),t||a(n-l)}this.min=n,this.max=o}getTickLimit(){let t=this.options.ticks,{maxTicksLimit:e,stepSize:s}=t,n;return s?(n=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e=e||11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){let t=this.options,e=t.ticks,s=this.getTickLimit();s=Math.max(2,s);let n={maxTicks:s,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},o=this._range||this,a=Oc(n,o);return t.bounds==="ticks"&&Li(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){let t=this.ticks,e=this.min,s=this.max;if(super.configure(),this.options.offset&&t.length){let n=(s-e)/Math.max(t.length-1,1)/2;e-=n,s+=n}this._startValue=e,this._endValue=s,this._valueRange=s-e}getLabelForValue(t){return Jt(t,this.chart.options.locale,this.options.ticks.format)}},Re=class extends de{determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=W(t)?t:0,this.max=W(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){let t=this.isHorizontal(),e=t?this.width:this.height,s=nt(this.options.ticks.minRotation),n=(t?Math.sin(s):Math.cos(s))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/n))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}};Re.id="linear";Re.defaults={ticks:{callback:bi.formatters.numeric}};function ro(i){return i/Math.pow(10,Math.floor(tt(i)))===1}function Ac(i,t){let e=Math.floor(tt(t.max)),s=Math.ceil(t.max/Math.pow(10,e)),n=[],o=Q(i.min,Math.pow(10,Math.floor(tt(t.min)))),a=Math.floor(tt(o)),r=Math.floor(o/Math.pow(10,a)),l=a<0?Math.pow(10,Math.abs(a)):1;do n.push({value:o,major:ro(o)}),++r,r===10&&(r=1,++a,l=a>=0?1:l),o=Math.round(r*Math.pow(10,a)*l)/l;while(a0?s:null}determineDataLimits(){let{min:t,max:e}=this.getMinMax(!0);this.min=W(t)?Math.max(0,t):null,this.max=W(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:t,maxDefined:e}=this.getUserBounds(),s=this.min,n=this.max,o=l=>s=t?s:l,a=l=>n=e?n:l,r=(l,c)=>Math.pow(10,Math.floor(tt(l))+c);s===n&&(s<=0?(o(1),a(10)):(o(r(s,-1)),a(r(n,1)))),s<=0&&o(r(n,-1)),n<=0&&a(r(s,1)),this._zero&&this.min!==this._suggestedMin&&s===r(this.min,0)&&o(r(s,-1)),this.min=s,this.max=n}buildTicks(){let t=this.options,e={min:this._userMin,max:this._userMax},s=Ac(e,this);return t.bounds==="ticks"&&Li(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}getLabelForValue(t){return t===void 0?"0":Jt(t,this.chart.options.locale,this.options.ticks.format)}configure(){let t=this.min;super.configure(),this._startValue=tt(t),this._valueRange=tt(this.max)-tt(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(tt(t)-this._startValue)/this._valueRange)}getValueForPixel(t){let e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}};Ee.id="logarithmic";Ee.defaults={ticks:{callback:bi.formatters.logarithmic,major:{enabled:!0}}};function Ps(i){let t=i.ticks;if(t.display&&i.display){let e=U(t.backdropPadding);return C(t.font&&t.font.size,O.font.size)+e.height}return 0}function Tc(i,t,e){return e=I(e)?e:[e],{w:rn(i,t.string,e),h:e.length*t.lineHeight}}function lo(i,t,e,s,n){return i===s||i===n?{start:t-e/2,end:t+e/2}:in?{start:t-e,end:t}:{start:t,end:t+e}}function Lc(i){let t={l:i.left+i._padding.left,r:i.right-i._padding.right,t:i.top+i._padding.top,b:i.bottom-i._padding.bottom},e=Object.assign({},t),s=[],n=[],o=i._pointLabels.length,a=i.options.pointLabels,r=a.centerPointLabels?B/o:0;for(let l=0;lt.r&&(r=(s.end-t.r)/o,i.r=Math.max(i.r,t.r+r)),n.startt.b&&(l=(n.end-t.b)/a,i.b=Math.max(i.b,t.b+l))}function Ec(i,t,e){let s=[],n=i._pointLabels.length,o=i.options,a=Ps(o)/2,r=i.drawingArea,l=o.pointLabels.centerPointLabels?B/n:0;for(let c=0;c270||e<90)&&(i-=t),i}function Bc(i,t){let{ctx:e,options:{pointLabels:s}}=i;for(let n=t-1;n>=0;n--){let o=s.setContext(i.getPointLabelContext(n)),a=$(o.font),{x:r,y:l,textAlign:c,left:h,top:d,right:u,bottom:f}=i._pointLabelItems[n],{backdropColor:g}=o;if(!T(g)){let p=St(o.borderRadius),m=U(o.backdropPadding);e.fillStyle=g;let b=h-m.left,_=d-m.top,v=u-h+m.width,y=f-d+m.height;Object.values(p).some(x=>x!==0)?(e.beginPath(),Gt(e,{x:b,y:_,w:v,h:y,radius:p}),e.fill()):e.fillRect(b,_,v,y)}kt(e,i._pointLabels[n],r,l+a.lineHeight/2,a,{color:o.color,textAlign:c,textBaseline:"middle"})}}function Lo(i,t,e,s){let{ctx:n}=i;if(e)n.arc(i.xCenter,i.yCenter,t,0,F);else{let o=i.getPointPosition(0,t);n.moveTo(o.x,o.y);for(let a=1;a{let n=z(this.options.pointLabels.callback,[e,s],this);return n||n===0?n:""}).filter((e,s)=>this.chart.getDataVisibility(s))}fit(){let t=this.options;t.display&&t.pointLabels.display?Lc(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,s,n){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((s-n)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,s,n))}getIndexAngle(t){let e=F/(this._pointLabels.length||1),s=this.options.startAngle||0;return G(t*e+nt(s))}getDistanceFromCenterForValue(t){if(T(t))return NaN;let e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(T(t))return NaN;let e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){let e=this._pointLabels||[];if(t>=0&&t{if(h!==0){r=this.getDistanceFromCenterForValue(c.value);let d=n.setContext(this.getContext(h-1));Vc(this,d,r,o)}}),s.display){for(t.save(),a=o-1;a>=0;a--){let c=s.setContext(this.getPointLabelContext(a)),{color:h,lineWidth:d}=c;!d||!h||(t.lineWidth=d,t.strokeStyle=h,t.setLineDash(c.borderDash),t.lineDashOffset=c.borderDashOffset,r=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){let t=this.ctx,e=this.options,s=e.ticks;if(!s.display)return;let n=this.getIndexAngle(0),o,a;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(n),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((r,l)=>{if(l===0&&!e.reverse)return;let c=s.setContext(this.getContext(l)),h=$(c.font);if(o=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){t.font=h.string,a=t.measureText(r.label).width,t.fillStyle=c.backdropColor;let d=U(c.backdropPadding);t.fillRect(-a/2-d.left,-o-h.size/2-d.top,a+d.width,h.size+d.height)}kt(t,r.label,0,-o,h,{color:c.color})}),t.restore()}drawTitle(){}};zt.id="radialLinear";zt.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:bi.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(i){return i},padding:5,centerPointLabels:!1}};zt.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};zt.descriptors={angleLines:{_fallback:"grid"}};var _i={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Z=Object.keys(_i);function Nc(i,t){return i-t}function co(i,t){if(T(t))return null;let e=i._adapter,{parser:s,round:n,isoWeekday:o}=i._parseOpts,a=t;return typeof s=="function"&&(a=s(a)),W(a)||(a=typeof s=="string"?e.parse(a,s):e.parse(a)),a===null?null:(n&&(a=n==="week"&&(Rt(o)||o===!0)?e.startOf(a,"isoWeek",o):e.startOf(a,n)),+a)}function ho(i,t,e,s){let n=Z.length;for(let o=Z.indexOf(i);o=Z.indexOf(e);o--){let a=Z[o];if(_i[a].common&&i._adapter.diff(n,s,a)>=t-1)return a}return Z[e?Z.indexOf(e):0]}function jc(i){for(let t=Z.indexOf(i)+1,e=Z.length;t=t?e[s]:e[n];i[o]=!0}}function $c(i,t,e,s){let n=i._adapter,o=+n.startOf(t[0].value,s),a=t[t.length-1].value,r,l;for(r=o;r<=a;r=+n.add(r,1,s))l=e[r],l>=0&&(t[l].major=!0);return t}function fo(i,t,e){let s=[],n={},o=t.length,a,r;for(a=0;a+t.value))}initOffsets(t){let e=0,s=0,n,o;this.options.offset&&t.length&&(n=this.getDecimalForValue(t[0]),t.length===1?e=1-n:e=(this.getDecimalForValue(t[1])-n)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?s=o:s=(o-this.getDecimalForValue(t[t.length-2]))/2);let a=t.length<3?.5:.25;e=Y(e,0,a),s=Y(s,0,a),this._offsets={start:e,end:s,factor:1/(e+1+s)}}_generate(){let t=this._adapter,e=this.min,s=this.max,n=this.options,o=n.time,a=o.unit||ho(o.minUnit,e,s,this._getLabelCapacity(e)),r=C(o.stepSize,1),l=a==="week"?o.isoWeekday:!1,c=Rt(l)||l===!0,h={},d=e,u,f;if(c&&(d=+t.startOf(d,"isoWeek",l)),d=+t.startOf(d,c?"day":a),t.diff(s,e,a)>1e5*r)throw new Error(e+" and "+s+" are too far apart with stepSize of "+r+" "+a);let g=n.ticks.source==="data"&&this.getDataTimestamps();for(u=d,f=0;up-m).map(p=>+p)}getLabelForValue(t){let e=this._adapter,s=this.options.time;return s.tooltipFormat?e.format(t,s.tooltipFormat):e.format(t,s.displayFormats.datetime)}_tickFormatFunction(t,e,s,n){let o=this.options,a=o.time.displayFormats,r=this._unit,l=this._majorUnit,c=r&&a[r],h=l&&a[l],d=s[e],u=l&&h&&d&&d.major,f=this._adapter.format(t,n||(u?h:c)),g=o.ticks.callback;return g?z(g,[f,e,s],this):f}generateTickLabels(t){let e,s,n;for(e=0,s=t.length;e0?r:1}getDataTimestamps(){let t=this._cache.data||[],e,s;if(t.length)return t;let n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(e=0,s=n.length;e=i[s].pos&&t<=i[n].pos&&({lo:s,hi:n}=at(i,"pos",t)),{pos:o,time:r}=i[s],{pos:a,time:l}=i[n]):(t>=i[s].time&&t<=i[n].time&&({lo:s,hi:n}=at(i,"time",t)),{time:o,pos:r}=i[s],{time:a,pos:l}=i[n]);let c=a-o;return c?r+(l-r)*(t-o)/c:r}var Fe=class extends Bt{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=ci(e,this.min),this._tableRange=ci(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){let{min:e,max:s}=this,n=[],o=[],a,r,l,c,h;for(a=0,r=t.length;a=e&&c<=s&&n.push(c);if(n.length<2)return[{time:e,pos:0},{time:s,pos:1}];for(a=0,r=n.length;a{Alpine.store("theme");let s=this.getChart();s&&s.destroy(),this.initChart()}),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{Alpine.store("theme")==="system"&&this.$nextTick(()=>{let s=this.getChart();s&&s.destroy(),this.initChart()})})},initChart:function(){return ze.defaults.backgroundColor=getComputedStyle(this.$refs.backgroundColorElement).color,ze.defaults.borderColor=getComputedStyle(this.$refs.borderColorElement).color,new ze(this.$refs.canvas,{type:"line",data:{labels:t,datasets:[{data:e,borderWidth:2,fill:"start",tension:.5}]},options:{animation:{duration:0},elements:{point:{radius:0}},maintainAspectRatio:!1,plugins:{legend:{display:!1}},scales:{x:{display:!1},y:{display:!1}},tooltips:{enabled:!1}}})},getChart:function(){return ze.getChart(this.$refs.canvas)}}}export{Xc as default}; +/*! Bundled license information: + +chart.js/dist/chunks/helpers.segment.mjs: + (*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + *) + +chart.js/dist/chunks/helpers.segment.mjs: + (*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + *) + +chart.js/dist/chart.mjs: + (*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + *) +*/ diff --git a/resources/views/filament/components/select.blade.php b/resources/views/filament/components/select.blade.php new file mode 100644 index 000000000..18a055f28 --- /dev/null +++ b/resources/views/filament/components/select.blade.php @@ -0,0 +1,17 @@ +
+
+ @if ($image !== null) +
+
+ +
+
+ @endif +
+

{{ $name }}

+
+

{{ $subtitle }}

+
+
+
+
\ No newline at end of file diff --git a/tests/Feature/Console/Commands/Repositories/Storage/Admin/DumpReconcileTest.php b/tests/Feature/Console/Commands/Repositories/Storage/Admin/DumpReconcileTest.php index adfb52920..3474c04d9 100644 --- a/tests/Feature/Console/Commands/Repositories/Storage/Admin/DumpReconcileTest.php +++ b/tests/Feature/Console/Commands/Repositories/Storage/Admin/DumpReconcileTest.php @@ -29,8 +29,6 @@ class DumpReconcileTest extends TestCase */ public function testNoResults(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $this->mock(DumpRepository::class, function (MockInterface $mock) { $mock->shouldReceive('get')->once()->andReturn(Collection::make()); }); @@ -49,8 +47,6 @@ class DumpReconcileTest extends TestCase { Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $createdDumpCount = $this->faker->numberBetween(2, 9); $dumps = Dump::factory()->count($createdDumpCount)->make(); diff --git a/tests/Feature/Console/Commands/Repositories/Storage/Wiki/AudioReconcileTest.php b/tests/Feature/Console/Commands/Repositories/Storage/Wiki/AudioReconcileTest.php index 1df9951fe..9ee135768 100644 --- a/tests/Feature/Console/Commands/Repositories/Storage/Wiki/AudioReconcileTest.php +++ b/tests/Feature/Console/Commands/Repositories/Storage/Wiki/AudioReconcileTest.php @@ -26,8 +26,6 @@ class AudioReconcileTest extends TestCase */ public function testNoResults(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $this->mock(AudioRepository::class, function (MockInterface $mock) { $mock->shouldReceive('get')->once()->andReturn(Collection::make()); }); @@ -44,8 +42,6 @@ class AudioReconcileTest extends TestCase */ public function testCreated(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $createdAudioCount = $this->faker->numberBetween(2, 9); $audios = Audio::factory()->count($createdAudioCount)->make(); diff --git a/tests/Feature/Console/Commands/Repositories/Storage/Wiki/Video/ScriptReconcileTest.php b/tests/Feature/Console/Commands/Repositories/Storage/Wiki/Video/ScriptReconcileTest.php index 16ff8d9f9..8f5087b11 100644 --- a/tests/Feature/Console/Commands/Repositories/Storage/Wiki/Video/ScriptReconcileTest.php +++ b/tests/Feature/Console/Commands/Repositories/Storage/Wiki/Video/ScriptReconcileTest.php @@ -31,8 +31,6 @@ class ScriptReconcileTest extends TestCase { Storage::fake(Config::get(VideoConstants::SCRIPT_DISK_QUALIFIED)); - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $this->mock(ScriptRepository::class, function (MockInterface $mock) { $mock->shouldReceive('get')->once()->andReturn(Collection::make()); }); @@ -51,8 +49,6 @@ class ScriptReconcileTest extends TestCase { Storage::fake(Config::get(VideoConstants::SCRIPT_DISK_QUALIFIED)); - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $createdScriptCount = $this->faker->numberBetween(2, 9); $scripts = VideoScript::factory()->count($createdScriptCount)->make(); diff --git a/tests/Feature/Console/Commands/Repositories/Storage/Wiki/VideoReconcileTest.php b/tests/Feature/Console/Commands/Repositories/Storage/Wiki/VideoReconcileTest.php index f4b98aec3..47592676f 100644 --- a/tests/Feature/Console/Commands/Repositories/Storage/Wiki/VideoReconcileTest.php +++ b/tests/Feature/Console/Commands/Repositories/Storage/Wiki/VideoReconcileTest.php @@ -31,8 +31,6 @@ class VideoReconcileTest extends TestCase { Storage::fake(Config::get(VideoConstants::DEFAULT_DISK_QUALIFIED)); - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $this->mock(VideoRepository::class, function (MockInterface $mock) { $mock->shouldReceive('get')->once()->andReturn(Collection::make()); }); @@ -51,8 +49,6 @@ class VideoReconcileTest extends TestCase { Storage::fake(Config::get(VideoConstants::DEFAULT_DISK_QUALIFIED)); - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $createdVideoCount = $this->faker->numberBetween(2, 9); $videos = Video::factory()->count($createdVideoCount)->make(); diff --git a/tests/Feature/Console/Commands/Storage/Admin/DocumentDumpTest.php b/tests/Feature/Console/Commands/Storage/Admin/DocumentDumpTest.php index 3f3a31585..0ca44ee3e 100644 --- a/tests/Feature/Console/Commands/Storage/Admin/DocumentDumpTest.php +++ b/tests/Feature/Console/Commands/Storage/Admin/DocumentDumpTest.php @@ -26,8 +26,6 @@ class DocumentDumpTest extends TestCase */ public function testDataBaseDumpOutput(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - Storage::fake('local'); Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); @@ -45,8 +43,6 @@ class DocumentDumpTest extends TestCase */ public function testDataBaseDumpFile(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $local = Storage::fake('local'); $fs = Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); diff --git a/tests/Feature/Console/Commands/Storage/Admin/DumpPruneTest.php b/tests/Feature/Console/Commands/Storage/Admin/DumpPruneTest.php index b35e9c2f3..5e4ef4980 100644 --- a/tests/Feature/Console/Commands/Storage/Admin/DumpPruneTest.php +++ b/tests/Feature/Console/Commands/Storage/Admin/DumpPruneTest.php @@ -28,8 +28,6 @@ class DumpPruneTest extends TestCase */ public function testNoResults(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); $this->artisan(DumpPruneCommand::class, ['--hours' => 0]) @@ -44,8 +42,6 @@ class DumpPruneTest extends TestCase */ public function testDeleted(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); $prunedCount = $this->faker->randomDigitNotNull(); diff --git a/tests/Feature/Console/Commands/Storage/Admin/WikiDumpTest.php b/tests/Feature/Console/Commands/Storage/Admin/WikiDumpTest.php index 3b41c2159..a5624c51e 100644 --- a/tests/Feature/Console/Commands/Storage/Admin/WikiDumpTest.php +++ b/tests/Feature/Console/Commands/Storage/Admin/WikiDumpTest.php @@ -26,8 +26,6 @@ class WikiDumpTest extends TestCase */ public function testDataBaseDumpOutput(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); Date::setTestNow($this->faker->iso8601()); @@ -44,8 +42,6 @@ class WikiDumpTest extends TestCase */ public function testDataBaseDumpFile(): void { - $this->baseRefreshDatabase(); // Cannot lazily refresh database within pending command - $local = Storage::fake('local'); $fs = Storage::fake(Config::get(DumpConstants::DISK_QUALIFIED)); diff --git a/tests/Unit/Models/Admin/AnnouncementTest.php b/tests/Unit/Models/Admin/AnnouncementTest.php index f68a4fa12..949f419ff 100644 --- a/tests/Unit/Models/Admin/AnnouncementTest.php +++ b/tests/Unit/Models/Admin/AnnouncementTest.php @@ -23,4 +23,16 @@ class AnnouncementTest extends TestCase static::assertIsString($announcement->getName()); } + + /** + * Announcements shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $announcement = Announcement::factory()->createOne(); + + static::assertIsString($announcement->getSubtitle()); + } } diff --git a/tests/Unit/Models/Admin/DumpTest.php b/tests/Unit/Models/Admin/DumpTest.php index abdb813a2..edd1dba6a 100644 --- a/tests/Unit/Models/Admin/DumpTest.php +++ b/tests/Unit/Models/Admin/DumpTest.php @@ -23,4 +23,16 @@ class DumpTest extends TestCase static::assertIsString($dump->getName()); } + + /** + * Dumps shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $dump = Dump::factory()->createOne(); + + static::assertIsString($dump->getSubtitle()); + } } diff --git a/tests/Unit/Models/Admin/FeatureTest.php b/tests/Unit/Models/Admin/FeatureTest.php index 9cbd528c7..a4b8426e3 100644 --- a/tests/Unit/Models/Admin/FeatureTest.php +++ b/tests/Unit/Models/Admin/FeatureTest.php @@ -27,6 +27,18 @@ class FeatureTest extends TestCase static::assertIsString($feature->getName()); } + /** + * Features shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $feature = Feature::factory()->createOne(); + + static::assertIsString($feature->getSubtitle()); + } + /** * Feature shall indicate if the scope is null. * diff --git a/tests/Unit/Models/Admin/FeaturedThemeTest.php b/tests/Unit/Models/Admin/FeaturedThemeTest.php index 451bec059..4c6cb396c 100644 --- a/tests/Unit/Models/Admin/FeaturedThemeTest.php +++ b/tests/Unit/Models/Admin/FeaturedThemeTest.php @@ -31,6 +31,20 @@ class FeaturedThemeTest extends TestCase static::assertIsString($featuredTheme->getName()); } + /** + * Featured Themes shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $featuredTheme = FeaturedTheme::factory() + ->for(AnimeThemeEntry::factory()->for(AnimeTheme::factory()->for(Anime::factory()))) + ->createOne(); + + static::assertIsString($featuredTheme->getSubtitle()); + } + /** * Featured Themes shall cast the end_at attribute to datetime. * diff --git a/tests/Unit/Models/Auth/UserTest.php b/tests/Unit/Models/Auth/UserTest.php index 44c09eed7..48016d271 100644 --- a/tests/Unit/Models/Auth/UserTest.php +++ b/tests/Unit/Models/Auth/UserTest.php @@ -63,6 +63,18 @@ class UserTest extends TestCase static::assertIsString($user->getName()); } + /** + * Users shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $user = User::factory()->createOne(); + + static::assertIsString($user->getSubtitle()); + } + /** * User shall have a one-to-many relationship with the type Playlist. * diff --git a/tests/Unit/Models/Document/PageTest.php b/tests/Unit/Models/Document/PageTest.php index fea518abb..553ee7422 100644 --- a/tests/Unit/Models/Document/PageTest.php +++ b/tests/Unit/Models/Document/PageTest.php @@ -23,4 +23,16 @@ class PageTest extends TestCase static::assertIsString($page->getName()); } + + /** + * Pages shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $page = Page::factory()->createOne(); + + static::assertIsString($page->getSubtitle()); + } } diff --git a/tests/Unit/Models/List/Playlist/TrackTest.php b/tests/Unit/Models/List/Playlist/TrackTest.php index 2d3dbcb0d..462de25dc 100644 --- a/tests/Unit/Models/List/Playlist/TrackTest.php +++ b/tests/Unit/Models/List/Playlist/TrackTest.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Tests\Unit\Models\List\Playlist; +use App\Models\Auth\User; use App\Models\List\Playlist; use App\Models\List\Playlist\PlaylistTrack; use App\Models\Wiki\Video; @@ -16,7 +17,7 @@ use Tests\TestCase; class TrackTest extends TestCase { /** - * Anime shall be nameable. + * Playlist Tracks shall be nameable. * * @return void */ @@ -29,6 +30,20 @@ class TrackTest extends TestCase static::assertIsString($track->getName()); } + /** + * Playlist Tracks shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $track = PlaylistTrack::factory() + ->for(Playlist::factory()->for(User::factory())) + ->createOne(); + + static::assertIsString($track->getSubtitle()); + } + /** * Playlists shall include playlist and track ids for hashids encoding. * diff --git a/tests/Unit/Models/List/PlaylistTest.php b/tests/Unit/Models/List/PlaylistTest.php index a7a04c089..41b438c84 100644 --- a/tests/Unit/Models/List/PlaylistTest.php +++ b/tests/Unit/Models/List/PlaylistTest.php @@ -41,7 +41,7 @@ class PlaylistTest extends TestCase } /** - * Anime shall be nameable. + * Playlist shall be nameable. * * @return void */ @@ -52,6 +52,20 @@ class PlaylistTest extends TestCase static::assertIsString($playlist->getName()); } + /** + * Playlist shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $playlist = Playlist::factory() + ->for(User::factory()) + ->createOne(); + + static::assertIsString($playlist->getSubtitle()); + } + /** * Public playlists shall be searchable. * diff --git a/tests/Unit/Models/Wiki/Anime/AnimeSynonymTest.php b/tests/Unit/Models/Wiki/Anime/AnimeSynonymTest.php index 01d814264..76bb77388 100644 --- a/tests/Unit/Models/Wiki/Anime/AnimeSynonymTest.php +++ b/tests/Unit/Models/Wiki/Anime/AnimeSynonymTest.php @@ -76,6 +76,20 @@ class AnimeSynonymTest extends TestCase static::assertIsString($synonym->getName()); } + /** + * Synonyms shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $synonym = AnimeSynonym::factory() + ->for(Anime::factory()) + ->createOne(); + + static::assertIsString($synonym->getSubtitle()); + } + /** * Synonyms shall belong to an Anime. * diff --git a/tests/Unit/Models/Wiki/Anime/AnimeThemeTest.php b/tests/Unit/Models/Wiki/Anime/AnimeThemeTest.php index 7c18802ef..8042083db 100644 --- a/tests/Unit/Models/Wiki/Anime/AnimeThemeTest.php +++ b/tests/Unit/Models/Wiki/Anime/AnimeThemeTest.php @@ -80,6 +80,20 @@ class AnimeThemeTest extends TestCase static::assertIsString($theme->getName()); } + /** + * Themes shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $theme = AnimeTheme::factory() + ->for(Anime::factory()) + ->createOne(); + + static::assertIsString($theme->getSubtitle()); + } + /** * Themes shall belong to an Anime. * diff --git a/tests/Unit/Models/Wiki/Anime/Theme/AnimeThemeEntryTest.php b/tests/Unit/Models/Wiki/Anime/Theme/AnimeThemeEntryTest.php index cccba098e..d71acd549 100644 --- a/tests/Unit/Models/Wiki/Anime/Theme/AnimeThemeEntryTest.php +++ b/tests/Unit/Models/Wiki/Anime/Theme/AnimeThemeEntryTest.php @@ -64,6 +64,20 @@ class AnimeThemeEntryTest extends TestCase static::assertIsString($entry->getName()); } + /** + * Entries shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $entry = AnimeThemeEntry::factory() + ->for(AnimeTheme::factory()->for(Anime::factory())) + ->createOne(); + + static::assertIsString($entry->getSubtitle()); + } + /** * Entries shall belong to a Theme. * diff --git a/tests/Unit/Models/Wiki/AnimeTest.php b/tests/Unit/Models/Wiki/AnimeTest.php index 3cadf63bc..90e8f2400 100644 --- a/tests/Unit/Models/Wiki/AnimeTest.php +++ b/tests/Unit/Models/Wiki/AnimeTest.php @@ -93,6 +93,18 @@ class AnimeTest extends TestCase static::assertIsString($anime->getName()); } + /** + * Anime shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $anime = Anime::factory()->createOne(); + + static::assertIsString($anime->getSubtitle()); + } + /** * Anime shall have a one-to-many relationship with the type Synonym. * diff --git a/tests/Unit/Models/Wiki/ArtistTest.php b/tests/Unit/Models/Wiki/ArtistTest.php index ac19e2245..db7b1d1ee 100644 --- a/tests/Unit/Models/Wiki/ArtistTest.php +++ b/tests/Unit/Models/Wiki/ArtistTest.php @@ -59,6 +59,18 @@ class ArtistTest extends TestCase static::assertIsString($artist->getName()); } + /** + * Artists shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $artist = Artist::factory()->createOne(); + + static::assertIsString($artist->getSubtitle()); + } + /** * Artist shall have a many-to-many relationship with the type Song. * diff --git a/tests/Unit/Models/Wiki/AudioTest.php b/tests/Unit/Models/Wiki/AudioTest.php index a37cff835..4746b32c4 100644 --- a/tests/Unit/Models/Wiki/AudioTest.php +++ b/tests/Unit/Models/Wiki/AudioTest.php @@ -31,6 +31,18 @@ class AudioTest extends TestCase static::assertIsString($audio->getName()); } + /** + * Audios shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $audio = Audio::factory()->createOne(); + + static::assertIsString($audio->getSubtitle()); + } + /** * Audio shall have a one-to-many relationship with the type Video. * diff --git a/tests/Unit/Models/Wiki/ExternalResourceTest.php b/tests/Unit/Models/Wiki/ExternalResourceTest.php index c534b6175..2dc4e6ae1 100644 --- a/tests/Unit/Models/Wiki/ExternalResourceTest.php +++ b/tests/Unit/Models/Wiki/ExternalResourceTest.php @@ -51,6 +51,18 @@ class ExternalResourceTest extends TestCase static::assertIsString($resource->getName()); } + /** + * Resources shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $resource = ExternalResource::factory()->createOne(); + + static::assertIsString($resource->getSubtitle()); + } + /** * Resource shall have a many-to-many relationship with the type Anime. * diff --git a/tests/Unit/Models/Wiki/GroupTest.php b/tests/Unit/Models/Wiki/GroupTest.php index f71061680..b5442efd7 100644 --- a/tests/Unit/Models/Wiki/GroupTest.php +++ b/tests/Unit/Models/Wiki/GroupTest.php @@ -18,30 +18,6 @@ class GroupTest extends TestCase { use WithFaker; - /** - * Group shall be a searchable resource. - * - * @return void - */ - public function testSearchableAs(): void - { - $group = Group::factory()->createOne(); - - static::assertIsString($group->searchableAs()); - } - - /** - * Group shall be a searchable resource. - * - * @return void - */ - public function testToSearchableArray(): void - { - $group = Group::factory()->createOne(); - - static::assertIsArray($group->toSearchableArray()); - } - /** * Groups shall be nameable. * @@ -54,6 +30,18 @@ class GroupTest extends TestCase static::assertIsString($group->getName()); } + /** + * Groups shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $group = Group::factory()->createOne(); + + static::assertIsString($group->getSubtitle()); + } + /** * Group shall have a one-to-many relationship with the type Theme. * diff --git a/tests/Unit/Models/Wiki/ImageTest.php b/tests/Unit/Models/Wiki/ImageTest.php index 63e7c9083..ab14bd1b6 100644 --- a/tests/Unit/Models/Wiki/ImageTest.php +++ b/tests/Unit/Models/Wiki/ImageTest.php @@ -56,6 +56,18 @@ class ImageTest extends TestCase static::assertIsString($image->getName()); } + /** + * Images shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $image = Image::factory()->createOne(); + + static::assertIsString($image->getSubtitle()); + } + /** * Image shall have a many-to-many relationship with the type Anime. * diff --git a/tests/Unit/Models/Wiki/SeriesTest.php b/tests/Unit/Models/Wiki/SeriesTest.php index ec88fb801..e0cfb0de6 100644 --- a/tests/Unit/Models/Wiki/SeriesTest.php +++ b/tests/Unit/Models/Wiki/SeriesTest.php @@ -54,6 +54,18 @@ class SeriesTest extends TestCase static::assertIsString($series->getName()); } + /** + * Series shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $series = Series::factory()->createOne(); + + static::assertIsString($series->getSubtitle()); + } + /** * Series shall have a many-to-many relationship with the type Anime. * diff --git a/tests/Unit/Models/Wiki/SongTest.php b/tests/Unit/Models/Wiki/SongTest.php index e5731a7bc..9185c83a8 100644 --- a/tests/Unit/Models/Wiki/SongTest.php +++ b/tests/Unit/Models/Wiki/SongTest.php @@ -59,6 +59,20 @@ class SongTest extends TestCase static::assertIsString($song->getName()); } + /** + * Songs shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $song = Song::factory() + ->has(AnimeTheme::factory()->for(Anime::factory())) + ->createOne(); + + static::assertIsString($song->getSubtitle()); + } + /** * Song shall have a one-to-many relationship with the type Theme. * diff --git a/tests/Unit/Models/Wiki/StudioTest.php b/tests/Unit/Models/Wiki/StudioTest.php index 4240e7b28..39e1f61b7 100644 --- a/tests/Unit/Models/Wiki/StudioTest.php +++ b/tests/Unit/Models/Wiki/StudioTest.php @@ -58,6 +58,18 @@ class StudioTest extends TestCase static::assertIsString($studio->getName()); } + /** + * Studio shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $studio = Studio::factory()->createOne(); + + static::assertIsString($studio->getSubtitle()); + } + /** * Studio shall have a many-to-many relationship with the type Anime. * diff --git a/tests/Unit/Models/Wiki/Video/ScriptTest.php b/tests/Unit/Models/Wiki/Video/ScriptTest.php index 540967dc0..4f5a577da 100644 --- a/tests/Unit/Models/Wiki/Video/ScriptTest.php +++ b/tests/Unit/Models/Wiki/Video/ScriptTest.php @@ -15,7 +15,7 @@ use Tests\TestCase; class ScriptTest extends TestCase { /** - * Dumps shall be nameable. + * Scripts shall be nameable. * * @return void */ @@ -26,6 +26,18 @@ class ScriptTest extends TestCase static::assertIsString($script->getName()); } + /** + * Scripts shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $script = VideoScript::factory()->createOne(); + + static::assertIsString($script->getSubtitle()); + } + /** * Scripts shall belong to a Video. * diff --git a/tests/Unit/Models/Wiki/VideoTest.php b/tests/Unit/Models/Wiki/VideoTest.php index 5f7cce37a..268cb8543 100644 --- a/tests/Unit/Models/Wiki/VideoTest.php +++ b/tests/Unit/Models/Wiki/VideoTest.php @@ -98,6 +98,18 @@ class VideoTest extends TestCase static::assertIsString($video->getName()); } + /** + * Videos shall have subtitle. + * + * @return void + */ + public function testHasSubtitle(): void + { + $video = Video::factory()->createOne(); + + static::assertIsString($video->getSubtitle()); + } + /** * Videos shall have a one-to-many polymorphic relationship to View. *